Download

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
bloom1 bloom2
Depth of Field Depth of Field
dof1 dof2

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_list parameter 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

View commits since 17.0 | View milestone

Thanks to