Update 26.02.04

A developer heavy week, with more focus on editor tooling, crashes, profiling and rendering fixes

Navmesh Bakingby Lorenz


Previously, the Navmesh was always generated from scratch on scene load, this could be slow especially on larger maps.
We added the ability to bake the navmesh to disk. Scenes with baked navmesh data will load significantly faster.
04_10-52-SecondhandTuna.mp4 9.06 MB

Navmesh Optimizationsby Lorenz

Memory Optimizations

We drastically reduced navmesh memory usage by packing & compressing the cached navmesh data. This means much larger scenes can now generate successfully.
For example, a very large map (~4km x 4km) now generates fine, before it would just run out of memory and crash.

Polymesh Generation Optimizations

Navmesh generation has two steps: heightfield generation, then polymesh generation.
We optimized the second step, polymesh generation, which directly translates into faster navmesh loads from baked data.

Fixes

  • Fixed a race condition that would cause an infinite stall when loading navmesh in the editor
  • Fixed CalculatePath giving up early on complex paths

GPU Profiler Overlayby Sam Pavlovic

Using RenderDoc captures to check timings is painful. Source 2 has an awesome backend to measure GPU timings with Timestamp Manager, but it was buried deep in the engine.

I integrated it to work with our stuff and our command lists API design.
543932449-170df267-1b30-403c-9bd8-56fb625819da.png 149.66 KB


Can very simply just toggle it from the game.

Now you can see what's killing your performance at a glance, makes it much easier to actually tackle the problem.

VRby alex

We've cleaned up our VR code internally again, and fixed a bunch of things in the process:
  • Fixed some of our VR components:
    • VR hand stuff is now correctly transformed using anchor-relative space
    • Our VR components now correctly check IsProxy so they run properly when networked
  • Fixed the VR projection matrix being broken whenever z-near for a camera isn't set to 1
  • Removed the unused VR stats editor widget
  • Added the ability to use both aim and grip poses for VR controllers
  • OpenXR compositor instances are now created / destroyed for individual game instances - rather than being shared. This mainly helps to improve compatibility with different OpenXR runtimes inside the editor, namely the Meta OpenXR runtime.
We'll still be iterating on our VR feature set heavily over time, which should be a lot easier with a cleaner codebase for this stuff.

Indirect Light Volume Iterationby Sam Pavlovic

Slowly iterating on Indirect Light Volumes to start to feel awesome, still a long way to go to deal with all edge cases but I have a clear roadmap.

Probes are generated starting from your eyes' view and do two passes for more accurate bounces and quicker iteration.

Editor UX with them is overall better specially across sessions.

TheRedPixel ( https://x.com/theredpix ) kindly contributed with a PR reviewing some things and I iterated on it, helps to better adjust backfacing probes without needing manual adjustment.
ezgif-45af2699792aef40.gif 1.4 MB

Foliage MSAAby Sam Pavlovic

New cool foliage stuff was using clip(); and discard; directly instead of adjusting for Alpha to Coverage, this makes MSAA cry.

firefox_oJ79WhiWsG.mp4 2.03 MB


All sorted now, has A2C and doesn't turn translucent at distance.
sbox-dev_Y89zUr2gm4.mp4 3.07 MB


Ortho Glassby Sam Pavlovic

Orthographic View didn't support our fancy glass properly, now it does.

544025298-a3a81dfb-9689-49f0-95e6-4ed77a3ac941.mp4 932.6 KB

Mapping Snappingby bakscratch

We now support Vertex Snapping in the mapping tools, Enabling it allows you to snap your selection to a vertex.
sbox-dev_SnzKvJCEll.mp4 2.61 MB

Also you can now snap any of your selection to the grid.
sbox-dev_qOew23s5Mg.mp4 1.27 MB

Resource type limit crashby Lorenz

We fixed a crash that occurred when joining multiple games in succession.

Source 2 only supported up to 64 resource types, joining multiple games exceeded that limit and caused a crash. 
We've removed the limit, so you're now much more likely to play more than two games in succession without crashing.

Mapping Box Select & Lassoby bakscratch

We have Lasso selection in the mapping tools, allowing for more precise selections.
sbox-dev_o38R0fapch.mp4 1.24 MB
Box select also got some more love, allowing you to add and remove selection, as well support the select through geometry option.
sbox-dev_85UvUVLlF4.mp4 913.7 KB

Fix Quad Overdrawby Sam Pavlovic

Quad Overdraw debug vis broke at some point when we dealt with changes on stencil buffers, that was an oversight, fixed now.

544063946-ba4f2573-c5cf-40a4-bc3d-4dc8c72880cd.png 330.86 KB