Source 2 Viewer v15.0
Realistic water and swaying foliage in CS2 maps, a wireframe view of map collision, and the first support for writing resources back to files.
Resource Serialization
This release adds a first but important step in being able to serialize resources back to binary files
by just calling resource.Serialize(stream). Not all block types are supported, but most importantly
binary keyvalues3, plaintext blocks, and raw binary blocks (meshes) are supported.
This already allows writing a majority of modern files that do not require legacy blocks.
CS2 Water
Thanks to @H7perus for reverse engineering the CS2 Water Shader. This shader features refraction, ray marching, caustics, screen space reflections.
CS2 Foliage
Assets using the foliage shader now react to wind.
GUI
- Improved water shader rendering for CS2 maps
- Added transmissive lighting for CS2 foliage materials
- Added foliage vertex animation support
- Fixed CS2 models being fully transparent in screenshots
- Added physics wireframe rendering with line polygon mode
- Improved entity handling - entities without classnames are now ignored
- Added lightmap specular occlusion viewing
- Pressing Escape now unselects any selected nodes
- Added support for Layer 3 in CS2 Environment shader
- Improved physics (clipbrush) renderer with better lighting and reduced flicker
CLI
- Added Windows ARM64 build
- Added VCS (shader) decompilation support
- Added OS architecture to --version output
Library
- Enabled AOT for the VRF library
- As a test, added a
ConvertBinaryKV3ToTextmethod for unmanaged callers
- As a test, added a
- Added KV3 Shaders support (vcs3)
- Added resource serialization support for KV3 blocks
- Added
NmSkeldecompilation and extendedNmClipdecompilation - Added WebP texture support
- Added basic serialization support:
- Added binary KV3 serialization to v4
- Improved KV3 text parsing with format/encoding preservation
- Added
KV3IDstruct and lookup system - Added serialization for
RERL,MIDX, andMVTXblocks - Added support for plaintext block serialization
- Moved SPIRV reflections from GUI to VRF library
- Performance optimizations:
- Improve FPS by rendering dense meshes first
- Precompute linear material colors in CPU
- Improved
SrgbGammaToLinearperformance - Reduced memory allocations in various parsers
- Added tools asset info v14 support
- Added entity_name KV3 flag support
- Added KeyValues property to Model (Source 1
$keyvalues) ResourceDatais now abstract- Fixed gltf serialization to not perform a pointless deep clone