1,775 Commits over 1,491 Days - 0.05cph!
Initialize SSR to null on 3d skybox
Revert "Include ReflectionTextureColor in all the layers", it's unlikely we can manage to do SSR with roughness fast on translucents, and this causes the issue that SSR reflections from opaques will be drawn over smoke or translucents
This reverts commit 8cce50baf03cd7f93e7c89c75dde46319412aff9.
Water uses Emission & Schlick fresnel rather than Albedo for refraction
Remove Reflection mode from water, do it all inline, it's overcomplicating things and the way to do this is being changed, it's unlikely we can manage to do SSR with roughness fast on translucents, go back to Albedo rather than Emission for now
Add ScreenSpaceTrace as a generic, simpler class for doing screen space ray tracing, move reflections.hlsl to use it
Fix overriding SSR with a black texture when it should be initialized with a translucent one
Remove unused shit from lightbinner and make everything enums
Adjustments to cubemap normalization, make cubemap feathering happen from center of cubemap, and in world units, rather than inner, math is much simpler
Clamp cube box parallax projection to actual bounds box the box, cleanup
Our both our envmap filters uses linear roughness instead of sqrt roughness
Gizmo for scale in envmaps, adjust default for feathering in world units
Sort envmaps also by size, giving higher priority to smaller ones if it's in a draw condition
tiled light culling with edge feathering additions
vLevel isn't const
Update path of build-shaders, upload all shaders as artifacts
Fix EnvironmentMapLight::GetEnvMapColor using deprecated variable
Gamma correct samples during accumulated ggx, makes highlight less blown out and makes the cubemap more vibrant
Reenable MSAA fetching for SSAO compositing, don't use loops
Depthresolve takes first MSAA sample rather than doing min/max calculation, if we want depth::get we'd want the proper sample to compare perfectly on the screen
GTAO temporal filter uses edge detection to filter out edge ghosting
https://i.imgur.com/EzfclG7.mp4
Ao proxies removal (#1678)
* Remove aoproxies ambient occlusion, it never looked too right and it's stupid to have artists authoring them manually, almost no one did
I still think SDF AO works better than SSAO in most cases, but they should live as a renderhook and artists don't need to touch anything, the way it is now is very hard to maintain, it could be 10x simpler
* Remove sdf.hlsl (until we meet again 🫡 )
Remove aoproxies ambient occlusion, it never looked too right and it's stupid to have artists authoring them manually, almost no one did
I still think SDF AO works better than SSAO in most cases, but they should live as a renderhook and artists don't need to touch anything, the way it is now is very hard to maintain, it could be 10x simpler
Remove sdf.hlsl (until we meet again 🫡 )
Update shaders
Gamma correct samples during accumulated ggx, makes highlight less blown out and makes the cubemap more vibrant
Start moving same fast ggx filtering code to cpu for resourcecompiler also for consistency
Adjustments to cubemap normalization, make cubemap feathering happen from center of cubemap, and in world units, rather than inner, math is much simpler
Clamp cube box parallax projection to actual bounds box the box, cleanup
Our both our envmap filters uses linear roughness instead of sqrt roughness
Gizmo for scale in envmaps, adjust default for feathering in world units
Sort envmaps also by size, giving higher priority to smaller ones if it's in a draw condition
tiled light culling with edge feathering additions
vLevel isn't const
Update path of build-shaders, upload all shaders as artifacts
Fix EnvironmentMapLight::GetEnvMapColor using deprecated variable
Compiled shaders with ao viewporting changes
CommandLists SetConstantBuffer and be able to specify mip
Motion::TemporalFilter is converting from Pixel Coordinates to UV not the other way around
Fix ambient occlusion in offsetted viewports
Calculate aspect ratio from viewport size rather than screen size, fixes splitscreen viewports being fucked up
https://files.facepunch.com/sampavlovic/1b2811b1/sbox-dev_19tjSjbPcm.png
Ssao.scene tests both ao techniques at once
Compiled shaders with ao viewporting changes
CommandList.SetData > CommandList.SetConstantBuffer
[Pick] Calculate aspect ratio from viewport size rather than screen size, fixes splitscreen viewports being fucked up
https://files.facepunch.com/sampavlovic/1b2811b1/sbox-dev_19tjSjbPcm.png
Fix ambient occlusion in offsetted viewports
Adjustments, default old components to ssao
Move AmbientOcclusion to Command Lists
Constant Buffers in Command List
Iterate minimum Camera.hlsl, no Time.hlsl for now
Camera.hlsl and Time.hlsl stubs
Fix EnvironmentMapLight::GetEnvMapColor using deprecated variable
Update path of build-shaders, upload all shaders as artifacts
Adjustments to cubemap normalization, make cubemap feathering happen from center of cubemap, and in world units, rather than inner, math is much simpler
Clamp cube box parallax projection to actual bounds box the box, cleanup
Our both our envmap filters uses linear roughness instead of sqrt roughness
Gizmo for scale in envmaps, adjust default for feathering in world units
Sort envmaps also by size, giving higher priority to smaller ones if it's in a draw condition
tiled light culling with edge feathering additions
vLevel isn't const
Update shaders, might get stumped with AO changes but i'll just build them back
Squashed commit of the following:
-GTAO
-Aoproxy removal
Split between SSAO and GTAO
Start moving gtao to command lists, adjustments
Start moving gtao to command lists, adjustments
Adjustments to cubemap normalization, make cubemap feathering happen from center of cubemap, and in world units, rather than inner, math is much simpler
Clamp cube box parallax projection to actual bounds box the box, cleanup
Our both our envmap filters uses linear roughness instead of sqrt roughness
Gizmo for scale in envmaps, adjust default for feathering in world units
Sort envmaps also by size, giving higher priority to smaller ones if it's in a draw condition
Squashed commit of the following:
-GTAO
-Aoproxy removal
Split between SSAO and GTAO
Squashed commit of the following:
-GTAO
-Aoproxy removal
Split between SSAO and GTAO
Composite SSAO on Lighting rather than Blitting (#1677)
Update shaders, might get stumped with AO changes but i'll just build them back
Replace AO on shader with a single, non-directional AO but that composites properly, older shaders wont have incompatibility problems, also makes Dynamic Reflection work without ao
SampleScreenSsMSAA to composite non-MSAA screen effects ( SSR, AO, etc ) into an MSAA buffer
https://files.facepunch.com/sampavlovic/1b1711b1/05csVIYZJM.png
Fix AO compositing for custom shaders
https://files.facepunch.com/sampavlovic/1b2111b1/CRqx99maFj.png
Add compiled shaders for AO including for Material shaders
Composite AO to pipeline rather than blitting, cleanup
AddHookAfterTranslucent > AddHookAfterDepthPrepass
[Pick] Add internal Graphics.FrameAttributes, up to review
Remove hack for clearing AO and use FrameAttributes instead
[pick] GetBindlessRWTextureXXX if compute shader
Move all ambient occlusion sampling to AmbientOcclusion.hlsl, bindless sampling
RWTextureCubeArray doesnt exist, should just be a RWTexture2DArray
[pick] Fog.hlsl cant be sampled from compute shaders in compute shaders that also ref lighting.fxc
[pick] Fix include guards for hlsl classes, fixes declaration in both standard and material shaders, fix AO sampling
Update shaders with bindless SSAO sampling
Do a simple texture fetch for AmbientOcclusion::Sample, simplify SampleScreenSsMSAA
Compile shaders without MSAA sampling for AO
Child camera executes command lists from camera it's taking attributes from
Internal CommandList with calling action directly
Temp pass RenderEffect inside the command list directly
Fix validaiton error in old AO where we were writing normals when never bound
Execute procedural layers ( managed hooks ) before threaded action to set up geometry, this fixes race condition in viewattributes from hooks
Previously FrameAttributes/ViewAttributes were working to pass to the rest of the pipeline merely because of a race condition and would break down in low framerates and wouldn't actually pass changed view attributes to those partitions in the correct order ( https://i.imgur.com/fW4VPVJ.mp4 ), this does it properly
Adjustments to cubemap normalization, make cubemap feathering happen from center of cubemap, and in world units, rather than inner, math is much simpler
Clamp cube box parallax projection to actual bounds box the box, cleanup
Our both our envmap filters uses linear roughness instead of sqrt roughness
Gizmo for scale in envmaps, adjust default for feathering in world units
Sort envmaps also by size, giving higher priority to smaller ones if it's in a draw condition
tiled light culling with edge feathering additions
Envmap feathering defaults to much tighter
SkyIndirectLighting param in hammer env_sky since it seems it never was there
Fix validaiton error in old AO where we were writing normals when never bound
Execute procedural layers ( managed hooks ) before threaded action to set up geometry, this fixes race condition in viewattributes from hooks
Previously FrameAttributes/ViewAttributes were working to pass to the rest of the pipeline merely because of a race condition and would break down in low framerates and wouldn't actually pass changed view attributes to those partitions in the correct order ( https://i.imgur.com/fW4VPVJ.mp4 ), this does it properly
Internal CommandList with calling action directly
Temp pass RenderEffect inside the command list directly
Clear volumetric fog texture on creation, this seems to could've caused problems even back on Alyx but issue is bigger now that we don't write to all volumetric fog froxels at once
Fix ClearUnorderedAccessViewUint not clearing properly for Texture2DArray and Texture3D
Child camera executes command lists from camera it's taking attributes from
Replace AO on shader with a single, non-directional AO but that composites properly, older shaders wont have incompatibility problems, also makes Dynamic Reflection work without ao
SampleScreenSsMSAA to composite non-MSAA screen effects ( SSR, AO, etc ) into an MSAA buffer
https://files.facepunch.com/sampavlovic/1b1711b1/05csVIYZJM.png
Fix AO compositing for custom shaders
https://files.facepunch.com/sampavlovic/1b2111b1/CRqx99maFj.png
Add compiled shaders for AO including for Material shaders
Composite AO to pipeline rather than blitting, cleanup
AddHookAfterTranslucent > AddHookAfterDepthPrepass
[Pick] Add internal Graphics.FrameAttributes, up to review
Remove hack for clearing AO and use FrameAttributes instead
[pick] GetBindlessRWTextureXXX if compute shader
Move all ambient occlusion sampling to AmbientOcclusion.hlsl, bindless sampling
RWTextureCubeArray doesnt exist, should just be a RWTexture2DArray
[pick] Fog.hlsl cant be sampled from compute shaders in compute shaders that also ref lighting.fxc
[pick] Fix include guards for hlsl classes, fixes declaration in both standard and material shaders, fix AO sampling
Update shaders with bindless SSAO sampling
Do a simple texture fetch for AmbientOcclusion::Sample, simplify SampleScreenSsMSAA
Compile shaders without MSAA sampling for AO
Specify .net 9 for shaders.yml
Fix sampletexture_bicubic (is anything using it)?
Compiled shaders with correct specular brdf
Fix sampletexture_bicubic (is anything using it)?
Specify .net 9 for shaders.yml
Penguin: Don't undefine lerp on expressioncalculator, we should see where it's using namespace std to get std::lerp wrongly, make it ifdef linux if all else fails
Readd inline source compilation to renderdevicevulkan, do conversion to wchar directly
Specify setup-dotnet version for shaders.yml
[DONT MERGE] Cupertino: Hardcode some paths and fix trailing slashes, note that outside windows steam_api64 dll is just called steam_api
Cupertino: Libvideo, libSkiasharp, libmpg123 binaries
Cupertino: libHarfBuzz and libdxcompiler, configdefaults.osx.vcfg ( do we need this? :S )
Game boots again
Cupertino: Add libs and missing dependencies for GameNetworkingSockets, update GameNetworkingSockets