Skip to content

6.0

Compare
Choose a tag to compare
@github-actions github-actions released this 12 Oct 12:17
· 982 commits to master since this release
6.0

View commits since 5.0

Highlights

The GUI application was renamed to Source 2 Viewer, including a new icon by Gabe Follower, and website was redesigned.

Improved frame times

We have optimized away a lot of heap allocations during frame rendering, which practically removes garbage collection.
We have also reduced memory usage by not keeping some things in memory after loading them.

Register VPK file association

It is now possible to make Windows Explorer open vpk files in Source 2 Viewer with a single click of a button.
This also registers vpk: protocol handler (used by Source 2 workshop tools), so links like vpk:path/to/pak.vpk:file/inside/thing.vmdl_c will open directly to that file.

As a reminder, you do not have to look for _dir.vpk file, if you open any numbered archive (like _001.vpk), it will correctly open _dir.vpk

Create VPK archives from a folder on disk in a single click

Our ValvePak library gained functionality to pack files into a new VPK archive,
and to dogfood (?) this code, we have added this as a feature in Source 2 Viewer.

Added fog rendering

Fog No fog (old)

New text viewer

We have replaced our basic text viewer with a more advanced one, it has an improved find window (Ctrl+F), and allows folding matching brackets.

Bookmarks in explorer

You can now add files to bookmarks.

GUI

  • Removed a lot of heap allocations during frame rendering
    • Stabilizes frame times and FPS due to no garbage collection
  • Reduced heap memory size up to 2x in some cases
  • Multiple improvements to rendering performance
  • Added support for rendering gradient and cubemap fog in map viewer
  • Added an option to create VPK archives from a folder on disk (in File menu)
  • Added a button to register VPK file association and vpk: protocol in Windows Explorer
  • Added a button to validate VPKs by verifying hashes and checksums (right click on the root vpk)
  • Added bookmarks in explorer tab (right on a file)
  • Added a button to check for updates
  • Added a checkbox to view skeleton in model viewer
  • Added panning and zooming in texture viewer
  • Added entity lines similar in map viewer similar to Hammer (path_track for example)
  • Added basic support for rendering smart prop files (vsmart)
  • Added setting to toggle vsync (also enabled by default)
  • Added button to clear console history in console tab context menu
  • Added a checkbox to render wireframes
  • Replaced text tabs with a better text box which has line numbers and folds
  • Allow exporting vmap_c into glTF (by loading vwrld)
  • Moved settings.txt to %LocalAppData%/Source2Viewer/settings.vdf
  • Moved recover deleted files button to vpk context menu
  • Audio player volume will now be remembered in the settings file
  • Improved infinity grid axis lines
  • Improved rendering overlays in map viewer
  • Cursor will now wrap around the viewport while dragging (similar to Blender)
  • Fixed shader variants loading twice in map viewer
  • Fixed tinted aggregate meshes in map viewer
  • Fixed sun color and brightness
  • Display workshop addon title in bookmarks and recent files
  • Hide bakeresourcecache.vpk files in explorer
  • Multiple vpk: are now supported when passed in as arguments to the exe
  • Improved skybox loading
  • Enabled ServerGarbageCollection

CLI

  • Improved file loader to be on par with the GUI, exporting maps to glTF will now discover assets from other VPKs and files on disk
  • Added --stats_vbib to collect vertex attributes
  • Expanded tools_asset_info file dump, and --tools_asset_info_short to only print filenames

Library

  • Added GameFileLoader which was only previously available in the GUI
    • Automatically discovers game content on disk by finding gameinfo.gi files
  • Rewritten how glTF attributes are exported (custom accessors are now prefixed with underscores as per the spec)
  • Implemented exporting multi-depth and cubemap textures into individual files
  • Textures will now extract raw PNG and JPEG data without re-encoding them with Skia
  • Simplified prettifying panorama stylesheet (vcss) files
  • Added PanoramaDynamicImages.ToString (vdpi)
  • Added STAT block
  • Added DXBC and SPRV block support in s&box shaders
  • Recreate some nodes from embedded $keyvalues and refAnimIncludeModels in model extract
  • Changed model extract to use modeldoc28 format instead of modeldoc32
  • Fixed Texture keeping a reference to resource stream even after it was disposed
  • Fixed extracting RGBA16161616(F) formats
  • Fixed crash with missing friendly shape name in vphys extract
  • Fixed decompressing normals
  • Fixed normals exporting in orange color
  • Fixed RTX shader parsing
  • Fixed "missing texture" reflections by removing compiler-filled properties in relfection probes
  • Fixed broken vertex buffers in map decompilation
  • Fixed missing bones in glTF export if they were never directly used