Source 2 Viewer v8.0
A rewritten, faster texture viewer with SVG and cubemap support, morph animations in the model viewer, and copying the viewport with Ctrl+C.
Highlights
Model viewer now supports morphs
Texture viewer has been rewritten
It is now more powerful and faster.
GUI
- New texture viewer with more features
- Hardware accelerated decoding and rendering
- Smoother mooving and scaling experience
- Support SVG files
- Switch channels, opaque, transparent, or opaque with split alpha, mip levels, depth, cubemap faces
- Cubemaps allow switching between individual face, cube projection, and equirectangular projections
- Save (Ctrl-S) or copy (Ctrl-C) to save currently visible texture
- Textures are now decoded with GPU for faster exporting and more correctness
- Creating new vpk now uses rudimentary editing ui where you can add or remove files before saving
- Added morph composite rendering
- Added Ctrl-C keybind for any model/map viewer which copies current viewport to clipboard
- Added confirmation dialog when trying to open over 5 files in the default app
- Improved physics/clip brush rendering
- Fixed cubemap fog rendering on maps like de_inferno
- Partially fixed Half-Life: Alyx character animations to play correctly
- Multiple improvements and fixes to our shaders
- Renderer now uses separate framebuffer for more precise depth buffer
- Renderer now uses reverse-Z and infinite far plane
- Replaced our default HDRi cubemap in the model viewer
- Converted all textures to immutable storage
- 3D skybox is now prescaled to simplify some things and avoid jittering on some maps like de_mirage
- FPS counter is now rendered with OpenGL with addition of CPU and GPU times (can be disabled in settings)
CLI
- Added support for dumping closed captions
- Used array pool during vpk dump for less memory use in certain cases
--vpk_verifynow verifies hashes of every archive (or every file checksum if hashes are unavailable)
Library
- Added model morph flex rules
- Reduced png encoder zlib compression to 4 (from default 6) for faster encodes
- Added
ClosedCaptions.ToString - Added
Texture.RetrieveCodecFromResourceEditInfoto get specific decoder instructions - Added Dota herolist resource type
- Added skeleton to vmdl export
- Added animation root motion to vmdl export
- Added extracted animations as simple AnimFile nodes to vmdl export
- Added
mipLevelparameter toTexture.GenerateBitmap - Removed
GetDecompressedTextureAtMipLevel(mipLevel) - Map decompiles now include particle snapshots
- Map decompiles now set aggregate props contribute to vis and disable merging
- Split aggregate draw calls in map export for correct tints
- Renamed
VTexExtraData.DATA_METADATAtoMETADATA - Optimized
RubikonPhysics.Shapes.Mesh.Triangleto be a XYZ struct - Fixed game file loader not finding main game vpks when opening a file from {game}_addons folder
- Fixed decoding issues with certain RGBA16161616F textures
- Fixed some textures exporting as 1x1
- Fixed jittery animations caused by
CompressedDeltaVector3andCompressedAnimVector3decoder - Added
IHardwareTextureDecoderwhich is implemented by the GUI - Switched to
System.IO.Hashing.Crc32 - Optimized memory allocations in multiple places, including
BinaryKV3reading KVObjectnow has a debugger display