1,838 Commits over 1,522 Days - 0.05cph!
Depth Resolve writes to both channels correctly
Final cleanups for dof2
update depth of field scene
Final tweaks, add depth gap for adding an area where u might want more focus
https://files.facepunch.com/sam/1b0211b1/sbox-dev_VBIoPeaBWP.mp4
DoF2 Downsample with bias based on depth, cleanup
https://files.facepunch.com/sam/1b0211b1/sbox-dev_rXaN2wxsmC.mp4
Disable volumetric fog clipmaps by default, they're fucked right now with massive frame drops and they feel overengineered
LatticeDeform stub
WIP Lattice Deform
https://files.facepunch.com/sam/1b2911b1/sbox-dev_5LFnSp7Xlr.mp4
updated depth of field scene to better benchmark against dof2
Wave intrinsics to do early out for far dof
Smooth fade DoF from composite shader
Iterate dof, needs cleanup, almost perfect
Fix Depth::GetLinear, be expressive about it for correctness before all, precompute these values later
Start fixing up dof https://files.facepunch.com/sam/1b2211b1/ombChoX97P.png
Iterate DoF
Internal AfterDepthPrepass hooks
CSM doesn't suck anymore
Texel snap cascade shadow map matrix so lights never shimmer when you're moving
Cleanup
Use the frustum from the previous shadow map to cull the current shadow map, m_pLightObject neverr used
Transparency Sorting Test Scene
Pass rotation to cubemapper so rotated envmap probes captures are rotated the correct way
Fix Cubemap Brightness Normalization, uses prefiltered envmap instead of spherical harmonics, fixes overbrightened envmaps in dark areas, and increases overall contrast of envmaps
Update transform for skybox envmap
Shadow maps were stripped out for testing, readded
Expose Screen Space Shadows as a parameter for Directional Light
SSR uses our generic ScreenSpaceTrace methods 🙏
Correct curve for static_overlay custom fog blending for fog HDR values above 1.0f
https://files.facepunch.com/sam/1b1611b1/pl0WF6eu5Q.png
Move albedo chart to bottom right corner, make it scale more aggresively to not take away screen space
Add button to toggle albedo chart
https://files.facepunch.com/sampavlovic/1b1611b1/CkUDe1JWMc.png
Compile shaders with SSR fixes
SampleLevel so the two shaders that use lighting.fxc on VS can read it proper, let's also start getting rid of these texture macros
Complex Reflections as Devshader
Stub for shadow class, enumize lightflags
Move pixel.raytrace.ssr.hlsl to ScreenSpaceTrace and make it a class, move crap from it to be all shared
More adjustments for screenspace shadowing, fix valid hit test always returning true
Iteration on screenspace shadows, make screenspace tracing work half res again
Rebase fixes
Fix screen trace depth function for reverse-z
Multi-sampled shadow trace, apply free antialiasing using derivatives of dFdx and dFdy
Dont need bend_sss anymore
Use bayer directions rather than blue noise for screenspace shadows
Use QuadRead to blur value acrosss waves, proper ordering for parameters of ScreenSpace::Trace
https://files.facepunch.com/sam/1b1411b1/8ljWk6LsYF.png
[Pick] Compile shaders with Vulkan 1.2 ( wave intrinsics support ) Microsoft/DirectXShaderCompiler/wiki/Wave-Intrinsics
[Pick] Target Vulkan 1.1 instead, certain it won't be an issue unless you have drivers from 2016
3D Bayer Sequence, use perceptual penumbra so it always looks relatively soft and nice instead of aiming for just accuract
[Pick] Target Vulkan 1.1 instead, certain it won't be an issue unless you have drivers from 2016
Fix truncation warning on shadingmodel.hlsl
Fix complex_reflections, remove any dependencies to valve code
Use inline reflections for complex
Composite SSR always, might create some artifacts but will be dealt with
Detangle reflections api and document it
Adjustments, fix normals on complex reflections
Use bayer directions rather than blue noise for screenspace shadows
Use QuadRead to blur value acrosss waves, proper ordering for parameters of ScreenSpace::Trace
https://files.facepunch.com/sam/1b1411b1/8ljWk6LsYF.png
[Pick] Compile shaders with Vulkan 1.2 ( wave intrinsics support ) Microsoft/DirectXShaderCompiler/wiki/Wave-Intrinsics
Fix screen trace depth function for reverse-z
Multi-sampled shadow trace, apply free antialiasing using derivatives of dFdx and dFdy
Dont need bend_sss anymore
[Pick] Bind RenderAttributes.SetParent, this is a method to pass arguments around that doesn't involve overriding/copying, this fixes not being able to set render attributes properly in child cameras like editor viewport, needs wide testing but should be fine, also fix looking for parent attributes on the attribute chain used on the pipeline
Remove SSAOEnabled, just needs a ref if DynamicAmbientOcclusionPP is initialized
Update shaders with AO on lighting pass
Stub for shadow class, enumize lightflags
Move pixel.raytrace.ssr.hlsl to ScreenSpaceTrace and make it a class, move crap from it to be all shared
More adjustments for screenspace shadowing, fix valid hit test always returning true
Iteration on screenspace shadows, make screenspace tracing work half res again
Rebase fixes
Internal HookAfterDepthPrepass
Darken AO texture since we're compositing to ambient lighting properly now
[Pick] Add SceneCamera.InternalAttributes for things that should never be overriden
[Pick] Add RenderAttributes.Remove
[Pick] Child cameras in UpdateSceneCamera also gets parent camera attributes
Remove renderhook hack on AmbientOcclusion, just pass attributes directly
Fuck any bridging code, let's handle VDB files all on managed, allow loading nvdb files too
Iterate NanoVDB file handling and dependencies
Use BaseFileSystem for reading NanoVDB files
Parse NanoVDB files properly
Handle DynamicAmbientOcclusionPP enabling/disabling for mark
Remove OpenVDB for TinyVDBIO instead (jesus christ), use latest version of NanoVDB, clean it all up, don't use glue, make all bridge between native in a def file
openvdbglue stub for compiling openvdb into nanovdb, VolumetricMaterial component and attributes for it, don't generate thumbnails for OpenVDB source files
OpenVDB Source Asset Type, rename VolumetricData to VolumetricMaterial
Add OpenVDB libraries
Add OpenVDB headers ( And boost, contained in the folder 🤢 )
VolumetricData GameResource stub
Better document lightbinner and add a few asserts
Version tiled rendering if we ever make breaking changes to it's structure, makes sure that rendering doesn't break if we upgrade it in the future
Fix black cubemap fog on hammer
Cubemap Fog can be tinted, takes tint from main skybox as well https://files.facepunch.com/sam/1b3111b1/XWpxvX189A.png
sky.shader: g_flBrightnessExposureBias and g_flRenderOnlyExposureBias makes no sense when there's tint, barely any existing skyboxes used it properly
Update SkyBox2D component to apply tint to IBL environment probe
https://files.facepunch.com/sam/1b3111b1/G0298YogbO.png
OnRenderDepthPrepass on SceneCamera
Add AfterDepthPrepassHooks, make AO composite to lighting rather than blitting to screen
Terrain_Normal: dY was inverted
Reenable terrain specular and recompile it with normal fixes
Terrain_Normal calculates world space normals properly now, remove sobel filter to just a simple bilinear
https://files.facepunch.com/sam/1b2711b1/qNolcysYRH.png
Add Cornel Box with Fog for testing dynamic indirect fog lighting
Enable indirect lighting from IBL in volumetric fog shader, can be toggled with volume_fog_ibl_indirect
https://files.facepunch.com/sam/1b2711b1/PIwbCCNGYB.png