20,804 Commits over 1,522 Days - 0.57cph!
Detect hand tracking, if not available (meta runtime) fallback to /input/grip/pose
Update Facepunch.XR to 915dcf5
Fix poses not working if you didn't have fully tracked hands
WIP - Added bloom color
ditto
Add BytePack handlers for Vector2Int, Vector3Int
WIP - Using Mips on downsamples. Plus other WIP misc. changes
ditto
Add json type converter safely through TypeLibrary
Remove unused convar refs
Disable launcher maximize button
LineEdit for creating new actions instead of having to edit the action afterwards
https://files.facepunch.com/tony/1b0411b1/sbox-dev_duZ3bhoZdb.png
When adding an input action, add it to the final group, not "Other", less annoying
Detangle all this from Cubemapper, make it able to render inline rather than on a render block
Redo update strategies from envmapprobe, much simpler, works everywhere now
Fix Depth::GetWorldPosition dividing by zero on skyboxes, pass epsilon to it
use Depth::GetWorldPosition on Motion Blur, fix darkening/overbrightening of it based on sample count
Remove VR suffixes from enums
Split Input.Vr.cs out into separate files within a VR folder
Don't try to compile shaders that have missing source files
Update menu scene
Hand tracking elements
Pull velocity up into TrackedObject, calculate manually
Move input related enums into their own files
VRController -> TrackedController
Remove TrackedControllerType, HMDType - not supported by OpenXR
VR anchor sets Input.VR.Scale based on transform scale (so that IPD matches)
Remove `Finger`, `FingerValue` already exists
Add ListControlWidget handle context menu with duplicate option
Reverse Z (#1581)
Every other modern engine uses a reversed depth buffer,
Unity DX11+
UE4+
Godot
It brings a massive improvement to depth buffer precision helping to prevent z-fighting and other depth precision issues.
Source 2 has always had support for it but was not forced because of DX9.
We should have turned this on long ago and will have to rip the band aid off at some point. It will break peoples custom shaders.
The other ways their shaders would break that I'm unsure if we could provide compatability are rare:
Interact with the depth buffer directly or through Depth::Get etc.
Perform operations in clip space like gizmo_grid.shader does.
I don't see why we'd ever change clip space direction again after this.
Bloom2 WIP
Work in progress C# component Bloom.
Process particles in a GameSystem, all at the same time, to benefit from multithreading
DynamicSceneObject can take vertex span instead of one at a time
Fix NRE in Collider.RebuildImmediately
Fix SoundEvent.GetNextSound random not using the full range of sounds
GameObjectSystem metrics
Look for eligible types in ResourceControlWidget, so it works with inherited types (resolves Facepunch/sbox-issues#5609)
https://files.facepunch.com/tony/1b0211b1/sbox-dev_YJS6hP69DC.png
Start pending components before physics step - fixes physics step running before joints are created
ByteStream Rewrite (#1610)
* Added failing ByteStream stress test
* Rewrite ByteStream to use Span / ReadOnlySpan where possible
Add basic support for using right CTRL/SHIFT keys for input actions, I didn't include RALT because my keyboard doesn't seem to work with it (resolves Facepunch/sbox-issues#5506)
Update Facepunch.ActionGraphs
* Optimization when cloning
* Nicer error messages with invalid pure methods (Facepunch/sbox-issues#5743)
Fixed Facepunch/sbox-issues#5752
Fix OnComponentUpdate / OnComponentFixedUpdate not running
Allow model inspector to preview animations https://files.facepunch.com/layla/1b0211b1/sbox-dev_fdrQka7PNG.mp4
Dictionary control widgets can't be edited when readonly
Hotload: Skip some System.Text.Json types
Fix some files (.razor) not opening in code editor from compile status window
Simplify scene ref gizmos, fix leak when closing scene
Terrain can import splatmap from png, tga, jpg, psd
Remove SceneFile.LastSaved, use existing hash check to check for external changes for scenes, much cleaner
Add algorithmVersion to vtex crc if GGXCubeMapBlur
Increment sky shader version, forces material rebuild, which forces a texture rebuild
Restore Toggle Gizmos shortcut (not sure if this was done on purpose)
Fix incorrect min max for int AnimParam
Add option names to enum AnimParam
Package.Type.Gamemode becomes Package.Type.Game
Can publish any asset, scene + prefab previewers
Published assets can optionally include source files
Fix Warnings
Fix GetParameterInt and GetParameterFloat not working for ANIMPARAM_ENUM
Preview animgraph parameters on model preview https://files.facepunch.com/layla/1b0311b1/sbox-dev_orVYPmENxI.mp4
Make sure any scene light properties ask native for their value so they can never go out of sync
Add binds we'll need for sceneobject serialization
Bind light desc so we can create a light directly from desc
Merge branch 'master' into reverse-z
Revert changes to sky.shader now that g_flFarPlane has the correct value in reverse-z
Add binds we'll need for sceneobject serialization
Bind light desc so we can create a light directly from desc
Make sure any scene light properties ask native for their value so they can never go out of sync
Preview animgraph parameters on model preview https://files.facepunch.com/layla/1b0311b1/sbox-dev_orVYPmENxI.mp4
Initial support for skeletal data, supports both SteamVR skeleton estimate (controllers) and full hand tracking (leap motion, virtual desktop)
https://files.facepunch.com/alexguthrie/1b0311b1/Desktop%202024.07.03%20-%2018.56.33.85.mp4
Fix GetParameterInt and GetParameterFloat not working for ANIMPARAM_ENUM
Bloom2 - new Bloom component C# - WIP
Intended to provide a more flexible bloom as C# component
Add support for finger curls, update Facepunch.XR to 98dab99
Hand joint data
Obsolte VR Model Renderer
Initial support for full hand skeleton on VR Hand component
Rename VRHand to VRHandSkeleton
Start adding support to edit Network Orphaned and Owner Transfer options in Inspector (visible when Network Mode is set to Object) https://files.facepunch.com/conna/1b0311b1/sbox-dev_I7Fk7tfs6K.png
Package.Type.Gamemode becomes Package.Type.Game
Can publish any asset, scene + prefab previewers
Published assets can optionally include source files
Fix incorrect min max for int AnimParam
Add option names to enum AnimParam
Restore Toggle Gizmos shortcut (not sure if this was done on purpose)
Add algorithmVersion to vtex crc if GGXCubeMapBlur
Increment sky shader version, forces material rebuild, which forces a texture rebuild
Remove SceneFile.LastSaved, use existing hash check to check for external changes for scenes, much cleaner
Terrain can import splatmap from png, tga, jpg, psd
Fix shadow bias with new Reverse-Z shadow compatibility
Fix SSAO with Reverse-Z
Update shaders with new Reverse-Z shadow compatibility
Fix shadow bias with new Reverse-Z shadow compatibility
Simplify scene ref gizmos, fix leak when closing scene
Fix some files (.razor) not opening in code editor from compile status window
Hotload: Skip some System.Text.Json types
Do Reverse-Z worldtoshadow in lightbinner rather than in shader code, makes existing old shaders have proper shadows with just our compatibility mode
https://files.facepunch.com/sam/1b0211b1/kzfuxUK73z.png
Dictionary control widgets can't be edited when readonly
Allow model inspector to preview animations https://files.facepunch.com/layla/1b0211b1/sbox-dev_fdrQka7PNG.mp4
renderdevicevulkan: enable reverse depth
Reverse the DepthFunc on all shaders GREATER <-> LESS
gizmo_grid: reverse manual depth bias
We need to change the depth clear value from 1->0 (in 3 different places of course)
Recompiled core shaders
Fix r_depth_debug
Default RenderState DepthFunc to RS_CMP_GREATER_EQUAL, makes shaders without a RenderState set default to it
https://files.facepunch.com/sam/1b0711b1/tt3.png
Readjust depth bias on debug shaders for reverse depth
Fix shadow in reversed depth
https://files.facepunch.com/sam/1b0711b1/tt2.png
Adjust depth bias for gizmo shaders for the increased depth precision
Tiled light culling with reverse-z
SSR with inverted z ( Way more stable )
Fix (3D) Skybox with inverse depth range
Fix SSR backtracing on reverse depth
Remove shadow depth bias from shader, it should be controlled by shadow matrix on lightbinner
DoF with reverse depth
Shaders for reverse depth
Fix glass and decal overlays depth bias
Shaders with depth bias fixes
Add shadow depth bias on matrix
Compile UI shaders for inverse depth
Reverse depth comparison on the sampler rather than on the shader for shadows, makes this more lean
Fix SSR backtracing and confidence check ( and Depth::GetLinear() )
https://files.facepunch.com/sam/1b1111b1/cxXjDfQ2g5.png
Update shaders
Reverse-Z Compatibility: Serialize depth stencil state version and reverse the depth comparison of old shaders
Update shaders with stencil state versioning https://files.facepunch.com/sam/1b2111b1/ZCuq7swn9v.png
Shaders with reverse-z and IBL
Fix OnComponentUpdate / OnComponentFixedUpdate not running
Fixed Facepunch/sbox-issues#5752
Initial VR scene for main menu
https://files.facepunch.com/alexguthrie/1b2011b1/sbox_pKFaTyqkgq.png
Remap worldpanel depth correctly, fixes depth issues
Treat worldpanels as layers
Render VR menu at 4k, scale down to fit
Basic VR world input component, menu works properly
https://files.facepunch.com/alexguthrie/1b2511b1/Desktop%202024.06.25%20-%2015.51.37.05.mp4
Update Facepunch.XR to 92bea5f
Provide poses for Facepunch.XR submit, prevents jittery and spongey tracking
Line hands up better in VR menu scene
Quick little test map just so I'm not staring at an orange texture
Init package string table before loading menu
Main menu panel has background if running in VR
Update map, add references (ideally we should be shipping these with the game, but this is easier to iterate with)
Update Facepunch.XR to 8839c8e
Remove unused InputSource and InputSourceHandle properties on TrackedDevice
Make headset a tracked object, means it can appear in Input.VR.TrackedObjects & matches controllers
Changes the API without breaking it, e.g.:
`var headTransform = Input.VR.Head;`
becomes:
`var headTransform = Input.VR.HMD.Transform;`
Update Facepunch.ActionGraphs
* Optimization when cloning
* Nicer error messages with invalid pure methods (Facepunch/sbox-issues#5743)
Add basic support for using right CTRL/SHIFT keys for input actions, I didn't include RALT because my keyboard doesn't seem to work with it (resolves Facepunch/sbox-issues#5506)