Browse Source

Update release post;

bjorn 1 year ago
parent
commit
695e8f3666
1 changed files with 29 additions and 9 deletions
  1. 29 9
      guides/v0.17.0.md

+ 29 - 9
guides/v0.17.0.md

@@ -15,8 +15,8 @@ with the following new features:
 - Rounded rectangles with thickness, great for VR UI
 - Rounded rectangles with thickness, great for VR UI
 - Mouse input
 - Mouse input
 
 
-This is a massive release with lots to chew on, so let's try to break things down into atomic,
-bite-sized pieces!
+This is a massive release with lots to chew on, so let's break things down into atomic, bite-sized
+pieces!
 
 
 Passthrough
 Passthrough
 ---
 ---
@@ -35,10 +35,13 @@ Blend Shapes
 squishing, which is difficult to implement with skeletal animation.  `Model:setBlendShapeWeight`
 squishing, which is difficult to implement with skeletal animation.  `Model:setBlendShapeWeight`
 sets the weight of a blend shape, and weights can be animated with keyframe animations as well.
 sets the weight of a blend shape, and weights can be animated with keyframe animations as well.
 
 
+<video controls loop src="/img/blend-shapes.mp4"></video>
+
 They also use compute shaders instead of vertex shaders.  This means:
 They also use compute shaders instead of vertex shaders.  This means:
 
 
 - There's no limit on the number of active blend shapes
 - There's no limit on the number of active blend shapes
-- They won't be evaluated multiple times when there are multiple cameras
+- They won't be evaluated multiple times when there are multiple cameras, or when a model is drawn
+  multiple times in the same pose
 - Extra style points
 - Extra style points
 
 
 Roundrect
 Roundrect
@@ -48,12 +51,19 @@ Thick rounded rectangles are a very common shape to use for UI in VR.  Previousl
 generate meshes, import them as models, use SDF shaders, or piece them together with cylinders and
 generate meshes, import them as models, use SDF shaders, or piece them together with cylinders and
 boxes.  Now, `Pass:roundrect` is built in!
 boxes.  Now, `Pass:roundrect` is built in!
 
 
+<img src="/img/vqwerty.png" alt="A virtual keyboard made of rounded rectangles" class="flat"/>
+
+Pictured above is [chui](https://github.com/jmiskovic/chui), a UI library made entirely of these
+rounded rectangles!
+
 TerrainShape
 TerrainShape
 ---
 ---
 
 
 `TerrainShape` is a new physics shape that lets you add heightfields to physics simulations. Terrain
 `TerrainShape` is a new physics shape that lets you add heightfields to physics simulations. Terrain
 can be provided as an `Image`, or as a Lua function for procedural terrain.
 can be provided as an `Image`, or as a Lua function for procedural terrain.
 
 
+<video controls loop src="/img/terrain.mp4"></video>
+
 Frustum Culling
 Frustum Culling
 ---
 ---
 
 
@@ -61,9 +71,11 @@ Frustum culling is an optimization that skips rendering objects that are out of
 with content surrounding the player, this is a quick way to reduce GPU overhead, especially when
 with content surrounding the player, this is a quick way to reduce GPU overhead, especially when
 objects have lots of vertices.
 objects have lots of vertices.
 
 
-Frustum culling can be enabled using `Pass:setViewCull(true)`, which will cull objects that have
-bounding boxes.  `Model` objects and most shape primitives have bounding boxes, and a `Mesh` can
-compute its bounds using `Mesh:computeBoundingBox`.
+<video controls loop src="/img/frustum-culling.mp4"></video>
+
+Frustum culling can be enabled using `Pass:setViewCull`.  Any object with a bounding box will be
+culled against the cameras, including `Model` objects and most shape primitives.  `Mesh` objects can
+compute their bounding boxes with `Mesh:computeBoundingBox`.
 
 
 Plugins
 Plugins
 ---
 ---
@@ -101,6 +113,8 @@ also have names, and buffer data can be given as key-value pairs instead of only
 Finally, you can also send a table directly to a uniform buffer variable instead of needing to
 Finally, you can also send a table directly to a uniform buffer variable instead of needing to
 create a buffer first.
 create a buffer first.
 
 
+    pass:send('lightData', { position = vec3(x, y, z), color = 0xffffee })
+
 Graphics Improvements
 Graphics Improvements
 ---
 ---
 
 
@@ -151,6 +165,12 @@ compute shader dispatches within a pass.  Since computes within a pass all ran a
 previously had to use multiple Pass objects to get computes to wait for each other, which is costly.
 previously had to use multiple Pass objects to get computes to wait for each other, which is costly.
 With `Pass:barrier`, all computes before the barrier will finish before further compute work starts.
 With `Pass:barrier`, all computes before the barrier will finish before further compute work starts.
 
 
+    pass:setShader(computer)
+    pass:compute()
+    pass:compute()
+    pass:barrier()
+    pass:compute() --> this compute will wait for the first two
+
 Headless VR
 Headless VR
 ---
 ---
 
 
@@ -231,15 +251,15 @@ volume.
 Community
 Community
 ---
 ---
 
 
-LÖVR's Slack is now deprecated because it held our messages hostage!  We migrated all the chat
+LÖVR's Slack is now deprecated because Slack held our messages hostage!  We migrated all the chat
 history over to a [Matrix](https://matrix.org) homeserver hosted on `#community:lovr.org` and
 history over to a [Matrix](https://matrix.org) homeserver hosted on `#community:lovr.org` and
 bridged everything to a new Discord server.  Keeping the source of truth for chat on a self-hosted,
 bridged everything to a new Discord server.  Keeping the source of truth for chat on a self-hosted,
 open source platform ensures the community is hopefully a bit more resilient to future corporate
 open source platform ensures the community is hopefully a bit more resilient to future corporate
 monkey business.
 monkey business.
 
 
 Speaking of corporate monkey business, LÖVR has entrenched itself further into the GitHub ecosystem
 Speaking of corporate monkey business, LÖVR has entrenched itself further into the GitHub ecosystem
-by adding continuous releases via GitHub Actions!  This means us mere mortals can have up-to-date
-builds for all platforms without needing to touch CMake or anything related to Android Studio.
+by adding continuous builds via GitHub Actions!  This means us mere mortals can have up-to-date
+builds for all platforms without touching CMake or the Android SDK.
 
 
 For the remaining masochists among us who choose to build LÖVR from source, there has been a change
 For the remaining masochists among us who choose to build LÖVR from source, there has been a change
 to the branching system.  The `dev` branch is now the default branch, and `master` has been renamed
 to the branching system.  The `dev` branch is now the default branch, and `master` has been renamed