Source 2 Viewer v18.0
Bloom and depth of field effects, a color view of baked map lighting, and an experimental first-person walk mode for exploring maps.
Renderer Project Split
The rendering engine has been extracted into a separate Renderer project, now published as a standalone NuGet package. This enables external applications to leverage all of our Source 2 rendering capabilities. See Misc/RenderTest for an example project.
Bloom and Depth of Field Post-Processing
Implemented bloom and depth of field post-processing effects.
| Bloom (New) | No Bloom |
|---|---|
![]() |
![]() |
| Depth of Field | Depth of Field |
|---|---|
![]() |
![]() |
Irradiance Color Debug Mode
Compiled maps include a colored representation of the light map, and now it can be viewed directly using the IrradianceDebug render mode.

First-Person Walk Mode
We have added a basic experimental first-person movement controls with world geometry collision support. It is roughly based on Counter-Strike movement, but is not exactly the same.
If you are a movement enjoyer, help us polish and improve this new system.
GUI
- Enabled single file compression which results in smaller executable size
- Added experimental first-person walk mode with collision detection
- Added keybindings display to bottom bar
- Added icons to entity list
- Added faceposer_folders support for animation list
- Added entity info window position memory
- Added parent folder name to root VPK node names
- Added ability to export the raw spirv binary from shader treeview
- Added ability to open spirv binary files, viewed as cross compiled HLSL
- Improved model viewer to enable orbiting around the model
- Material viewer property sliders use shader defined range
- Improved asset info view display
- Improved window position restoration using SetWindowPlacement
- Changed external references to tree view display
- Fixed texture viewer not re-rendering on tab visibility changes
- Fixed camera interpolation incorrectly going in a circle
- Fixed Ctrl+plus/minus zoom shortcuts
- Fixed frame time jump when unpausing
- Fixed aliased file type icons missing in release builds
- Fixed app logo blurriness
- Running in Wine will now use default WM_NCCALCSIZE
Renderer
- Now a standalone library published on NuGet
- Added bloom post-processing effect
- Added depth of field post-processing effect
- Added auto exposure support
- Added compute shader support
- Added irradiance debug mode
- Improved visual quality for outline and infinite grid
- Enabled cubemap normalization using a simple formula
- Scenes without lightmaps will now sample diffuse from IBL
- Fixed dynamic shadow jitters when moving
- Improved parallel loading of resources in map viewer for faster load times
- Changed shader file extension to
.slang(.frag.slang,.vert.slang) - Fixed some particle operators
CLI
- Added
--gltf_mesh_listparameter to filter out unwanted meshes during export - Improved shader extraction to show DXBC shader hash
Library
- Added support for newer NavMeshFile versions
- Added OnDiskBufferData.TotalSizeInBytes property
- Added tools asset info v15 support
- Added vpcf64 to KV3IDLookup
- Corrected all VfxEval function names
- Improved .vmdl animation decompilation:
- Pose parameters
- Animation sequences with bind pose extraction
- Auto-layer nodes
- Blend layer parameters and nodes
- Cycle override nodes
- Secondary animgraph2 animations now export to glTF
- Improved vmap export to stringify all KV objects
- Improved vmap folder export filter
- Fixed nmclip subfile paths
- Fixed vsnd not being exported to correct folder
- Fixed crash when decompiling geometry shaders with missing dynamic combos
- Fixed autolayer flag reading



