20,806 Commits over 1,522 Days - 0.57cph!
Add padding for LegacyAmbientLightColor, let's not make our lovely existing community games have red ambient color
https://files.facepunch.com/sam/1b2811b1/FLkIjvjdgH.png
Remove AmbientLightSH from lightbinner, Directional Light doesn't control ambient color anymore, this is a visually breaking change, I'll see to put a better replacement to existing things
Set skybox as global cubemap
Be able to sample cubemaps from any resolution, use diffuse cubemap as diffuse indirect illumination if no GI in scene
[Pick] Implement "GGXCubeMapBlur" filter on CPU, previously it did not work at all in CI since require RenderSystem which isn't ideal since it's the only thing that did so and is completely different from our Cubemapper GGX filter, this makes all filters consistent and much cleaner, remove Convolve Envmap shader
I want to start using GGX filtering on skyboxes but this wouldn't work on CI because of that requirement
Skyboxes compile wid GGXCubeMapBlur instead of Box filter, adjustments for GGXCubemapBlurHelper
Cubemap fog just takes material from current skybox
https://files.facepunch.com/sam/1b1511b1/sbox-dev_k6CScBsqcF.mp4
Make CubemapFog material still be configurable, take it straight from the skybox if it's null
Separate Ambient Light into it's own component from Directional Light, add upgrader for it
Use black cube if texture passed to lightbinner is invalid (eg non-sky material from SceneSkybox )
Fix World.AmbientLight, make flat ambient light lerp between IBL and what we have, make it artist accessible with ambientlight component
Delete these skybox vtexes
Remove convolve_environment_map.shader from shader ci
Don't change flTargetLuminanceOfCubemap, it's bullshit
Skybox envmap has lowest priority
https://files.facepunch.com/sam/1b1911b1/yipICq2VMI.jpg
Swap tools stuff that uses DirectionalLight.SkyColor to either IBL or AmbientLight
Better description of obsolecence
update shaders with IBL
Default ambient color on SceneThumbnails
Add padding to buffer
Fix IBL not applying to transmissive
Use faster Scene.GetAllComponents<SkyBox2D>() for fetching skybox texture on CubemapFog to not iterate over all gameobjects
Revert SkyColor to control ambient light on DirectionalLight again, but pipe it to scene's ambient light color
Sun prefab now comes with no skycolor ( Takes from IBL )
Revert SkyColor to control ambient light on DirectionalLight again, but pipe it to scene's ambient light color
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
Remove alphatest layers and unused attributes, all done in opaque pass
Depth Fast Path was fucked up with material overrides, disable depth fast path on that batch if we're using material overrides then, this whole system seems complicated to begin with too, additionally material flags were not being updated when you did a SetMaterialOverride
This fixes translucent material overrides rendering as if they were opaque
https://files.facepunch.com/sam/1b2811b1/UNobtq1Qnd.png
Handle translucency flags for material overrides in renderingpipeline
Nullcheck bMaterialOverride
Moved asset.party to sbox.game
map instance adds tags from object entry
Console no longer errors when clicking on objects that can't be serialized. Resolves Facepunch/sbox-issues#5737
VR: revert back to using grip pose because it's closer to what we want
VR haptic bindings
VR: Use aim instead of grip pose for controller positions + update fpxr to 8839c8e
Look for matching source file when creating component from template
Use ClassName when serializing types generated with compedit
Maybe we'll want to always serialize as ClassName if the attrib is present?
Added various editor events to ActionGraph editor
For component editor library to hook into
Expose a way to deserialize ActionGraphs with a cache
Add ActionGraphTargetAttribute
Use first SourceLocationAttribute if multiple found
Fix overlapping Reset to Default on ControlSheet with Reset Transform context menu. Add individual reset Position/Scale/Rotation on Transform context menu (Fixes Facepunch/sbox-issues#4867)
Update Facepunch.XR to 8d9bfbf, re-work pose submit
Save off the exact same poses we get from Facepunch.XR when syncing + only call beginframe/endframe/sync if we're rendering in VR
Use first SourceLocationAttribute if multiple found
Rigidbody transforms physics body position and rotation independently only if game object position and rotation has changed
Use local space for VR render poses, update Facepunch.XR to c537b77
Added various editor events to ActionGraph editor
For component editor library to hook into
Expose a way to deserialize ActionGraphs with a cache
Add ActionGraphTargetAttribute
Don't make joint ExecuteInEditor, I don't know why it was in the first place
Hinge joint uses physics body transforms to calculate local frames
Add public helper for caching ActionGraph instances on deserialize
Update Facepunch.XR to e0d5682, makes it so that we use local space for headset view/projection rather than stage space
Might help fix things on SteamVR headsets that use SteamVR for room-scale tracking?
Hinge joint calculates and saves local frames if they haven't been set, fixes snapshot stomping local frames making them go out of sync
Added various editor events to ActionGraph editor
For component editor library to hook into
Remove isteamapplist.h from vpc
Update to steam sdk 1.60
Make game focus when playing in editor consistent, instead of having to click on it sometimes
Check physics joint is valid before accessing these
Push scene scope when setting up camera, fixes sbox-issues/issues/5730
Add target velocity motor mode for hinge joints, multiply max torque by body2 mass (should we?)
Fix issue with new local instance on "local" package to do with small network files
Update 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)
Fixed logic for motion enabled and root only networking
Fix summary in hinge joint
Add target angle motor to hinge joint https://files.facepunch.com/layla/1b2611b1/sbox-dev_QfAznFLsZh.mp4
Keep world position when parenting map collider only when not using world origin
Use faster Scene.GetAllComponents<SkyBox2D>() for fetching skybox texture on CubemapFog to not iterate over all gameobjects
Added various editor events to ActionGraph editor
For component editor library to hook into
Don't transform map colliders for maps that don't use world origin
GameObjectFlags.DontDestroyOnLoad works
Session hash is a guid
Benchmark service
Remove debug
Benchmark api input
Dirty model physics when renderer changes
Allow editor projects to reference actiongraph / shadergraph
Some extra safety in TypeLibrary.IsAllowedType
Disable world origin for map instances with old component version - to stop existing games from loading the map at object position
Don't use MakeDirty for joint body change, this recreates the joint, we want to use dirty for properties
Fix likely infinite loop in ball joint