1,819 Commits over 1,491 Days - 0.05cph!
Change dynamic envmapprobe to use 7 mips which is the calibrated value for Cubemapper, change default feathering value to a tighter .25f
Use parallax for ambient envmap lighting https://files.facepunch.com/sam/1b1511b1/sbox-dev_a6lt3mNtWW.mp4
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
Don't try to compile shaders that have missing source files
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
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
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
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
Do draw opaque objects flagged with no depth prepass, also set correct behaviour for SCENEOBJECTFLAG_NO_Z_PREPASS on actual depth prepass layer
Use conservative alphatest discard for depth prepass in goback_material instead of opaquefade, fixes blue stripes in overlays
Envmap Ambient Lighting + Sky Envmaps (#1568)
Envmap Ambient Lighting + Sky Envmaps (#1568)
Update shaders with legacy ambient lighting padding
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
Use faster Scene.GetAllComponents<SkyBox2D>() for fetching skybox texture on CubemapFog to not iterate over all gameobjects
Update shaders with stencil state versioning https://files.facepunch.com/sam/1b2111b1/ZCuq7swn9v.png
Reverse-Z Compatibility: Serialize depth stencil state version and reverse the depth comparison of old shaders
Default ambient color on SceneThumbnails
Add padding to buffer
Fix IBL not applying to transmissive
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
Default ambient color on SceneThumbnails
Null checks on Scene.AmbientLightColor
AmbientLight component is killed, update Obsolete documentation
Add padding to buffer
Fix IBL not applying to transmissive
Remove AmbientLight component, just pass to scene, make it a property
Update Fog.Cubemap test scene https://files.facepunch.com/sam/1b1911b1/sbox-dev_ktnlWsCs24.mp4
Readd Skyballs an ambient light test scene https://files.facepunch.com/sam/1b1911b1/JYx0E9JbyL.jpg
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
Swap tools stuff that uses DirectionalLight.SkyColor to either IBL or AmbientLight
Skybox envmap has lowest priority
https://files.facepunch.com/sam/1b1911b1/yipICq2VMI.jpg
Don't change flTargetLuminanceOfCubemap, it's bullshit
Remove convolve_environment_map.shader from shader ci
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
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 )
Make CubemapFog material still be configurable, take it straight from the skybox if it's null
Cubemap fog just takes material from current skybox
https://files.facepunch.com/sam/1b1511b1/sbox-dev_k6CScBsqcF.mp4
Skyboxes compile wid GGXCubeMapBlur instead of Box filter, adjustments for GGXCubemapBlurHelper
[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
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
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
Add shadow depth bias on matrix
Compile UI shaders for inverse depth
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
Fix glass and decal overlays depth bias
DoF with reverse depth
Shaders for reverse depth
Remove shadow depth bias from shader, it should be controlled by shadow matrix on lightbinner
Fix (3D) Skybox with inverse depth range
Fix SSR backtracing on reverse depth