1,819 Commits over 1,491 Days - 0.05cph!
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
rendersystemvulkan builds on all platforms
lzma has inconsistent binary output dir
Vulkan: Exclusive fullscreen is only a thing on windows
Vulkan: Pretty sure this compilation step in renderdevicevulkan goes unused now, checking once game boots again
Add dxc & dxcompiler from Vulkan build, organize this all in win64/osxarm64
Add MoltenVK directly
Vulkan adjustments for metal platform, OpenGL is nevermore on OSX
Mach Dxcompiler binary not really compatible, might be tricky to use microsoft's dxc without dxil, a task for another day
Add hlsl_shader_compiler_stub
platform_compile_base had this seemingly unused GUID identifier that was causing conflicts in both lzma and dxc winadapter
Get WinAdapter working for Dxc
Remove some dead code that cause issues on clang, particles were all using wrong function signature, are these dead code too?
Refactor stuff to work on linux/mac, mostly platform typos
Shader compilation only on windows right now, dxc should support other platforms, add Mac version of dxcompiler lib anyway
[REVIEW, DONT MERGE?] Cupertino/Penguin: Platform guards for fpxr and lipsync, this is the worst way to do this, should see a way for interopgen to have platform conditionals