1,728 Commits over 1,491 Days - 0.05cph!
Remove all hacks we had for a second shadow atlas for viewmodel shadows
Sharp viewmodel shadows prototype, remove last references to viewmodel atlas
Mixed lights support viewmodel shadows, recalculate frustum to always focus on the best alignment for the viewmodel bbox so it always stays sharp
https://cdn.discordapp.com/attachments/1118902360970899456/1119228713591132230/sbox_0031.mp4
SSAO test for viewmodel
Fix dynamic ambient occlusion not being applied for CalculateDiffuseAmbientOcclusion
Try a few more AO techniques
Composite viewmodel AO, and this should be the right way to do HBAO
Remove nonsense resolution scale stuff in common.fxc that's unreferenced in code and causing problems (defined before system.fxc wtf)
Allow compute on renderpipeline to do multiple dispatches, HBAO as compute,HBAO bilateral blur
Use hammersley rather than bluenoise, looks a ton better
Fix glass not compositing translucency properly, also fix area light problems with it
Fix vrad light bounces for blendable
Revert that change to readd structs and do the proper fix
Keep struct in cbuffer layouts for legacy layout
Remove all hacks we had for a second shadow atlas for viewmodel shadows
Sharp viewmodel shadows prototype, remove last references to viewmodel atlas
Mixed lights support viewmodel shadows, recalculate frustum to always focus on the best alignment for the viewmodel bbox so it always stays sharp
https://cdn.discordapp.com/attachments/1118902360970899456/1119228713591132230/sbox_0031.mp4
SSAO test for viewmodel
Fix dynamic ambient occlusion not being applied for CalculateDiffuseAmbientOcclusion
Try a few more AO techniques
Composite viewmodel AO, and this should be the right way to do HBAO
Remove nonsense resolution scale stuff in common.fxc that's unreferenced in code and causing problems (defined before system.fxc wtf)
Allow compute on renderpipeline to do multiple dispatches, HBAO as compute,HBAO bilateral blur
Remove all hacks we had for a second shadow atlas for viewmodel shadows
Sharp viewmodel shadows prototype, remove last references to viewmodel atlas
Mixed lights support viewmodel shadows, recalculate frustum to always focus on the best alignment for the viewmodel bbox so it always stays sharp
https://cdn.discordapp.com/attachments/1118902360970899456/1119228713591132230/sbox_0031.mp4
SSAO test for viewmodel
Fix dynamic ambient occlusion not being applied for CalculateDiffuseAmbientOcclusion
Try a few more AO techniques
Composite viewmodel AO, and this should be the right way to do HBAO
Remove nonsense resolution scale stuff in common.fxc that's unreferenced in code and causing problems (defined before system.fxc wtf)
Composite viewmodel AO, and this should be the right way to do HBAO
Try a few more AO techniques
Fix dynamic ambient occlusion not being applied for CalculateDiffuseAmbientOcclusion
Remove all hacks we had for a second shadow atlas for viewmodel shadows
Sharp viewmodel shadows prototype, remove last references to viewmodel atlas
Mixed lights support viewmodel shadows, recalculate frustum to always focus on the best alignment for the viewmodel bbox so it always stays sharp
https://cdn.discordapp.com/attachments/1118902360970899456/1119228713591132230/sbox_0031.mp4
SSAO test for viewmodel
Mixed lights support viewmodel shadows, recalculate frustum to always focus on the best alignment for the viewmodel bbox so it always stays sharp
https://cdn.discordapp.com/attachments/1118902360970899456/1119228713591132230/sbox_0031.mp4
Sharp viewmodel shadows prototype, remove last references to viewmodel atlas
Avoid models rendering black when assigning blendable to them
New rendersystemvulkan & vfx_vulkan
[hack] don't deal with instancing on SboxVertex for now, need some additional code around input layouts
Tag rendersystem for Sentry
Use compute shader for bloom on Vulkan & fix uav barriers
[?] My last few questionable shader fixes I need to go over
Recompile all core shaders (spv only)
Compiled base shaders (spirv only)
[breaking change?] Pack light type in extra light data and make it all align in 128 bits for dxc
[?] Fix water on vulkan
Remove all hacks we had for a second shadow atlas for viewmodel shadows
Keep error.shader with both dxbc and spirv
Fix warnings on mathlib_base.fxc
Pack light type in extra light data and make it all align in 128 bits for dxc
resize the main window to the size of the buffer in tools mode in vulkan, fixes swapchain being created the wrong size
resize the main window to the size of the buffer in tools mode in vulkan, fixes swapchain being created the wrong size
Don't offset the pixel position by the parallax offset for shadowing on complex, causing problems in 90 degree angles
Fix area lights nuking lighting when very small
Dispose temp rts on end of scope rather than when we request another one, lets reuse them through the frame, fixes multiple blurs not showing up
Remove remaining breadcrumbs of fsr
Better directional ao curve, update crate01
Cleanup lightbinner code, remove cached light stuff, don't care for flashlight/fx lights
Remove SunlightManager
Delete remaining references to scenesunlight
Simplify directional light binner code, you can have as many directional ligths in your maps now and it's simpler to maintain
https://i.imgur.com/R8odoVP.png
Unbind SunlightManager, cleanup gameinfo
Remove remaining references to "scenesunlight.h", alloc and render but don't shadow dynamic sunlights right now
Remove old CSM code from shaders
Remove flashlight light allocation, it's all unified in spot lights, allow rendering shadow maps for mixed point lights
Fix directional AO falloff looking very faint and let it take ambient light into account for calculating hardness
https://files.facepunch.com/sam/1b0911b1/gpBUzR76wN.jpg
Redo and recompile aoproxies of all citizen props
https://files.facepunch.com/sam/1b0911b1/v3nI9nRpR1.jpg
Don't sample ripples on shader if not using water entity
Add r_dynamic_reflections_draw_everything for debug visualization, ignores object gathering filters when setting up dynamic reflections pass and draws reflections of all objects capable of it
Fix toggleability of SSR in shaders
Better way to do r_dynamic_reflections_draw_everything
Final changes, SSR on complex, some cleanup and fixes, fuck off with the old high_quality_reflections shader
High Quality Reflections becomes Dynamic Reflections, commit rest of stuff for Louie to test
Get ripples on new water shader
Squash commit of what was on SSR branch
Update compiled shaders
Redo SSR API to not be hardcoded to an ubershader, add a function to just consume material API parameters and output the reflection
Convert water to the new system, adjust reflections.hlsl
Drift SSR result [-1,1] pixel based on the normals to sharpen it to the result
Do perfect reprojection on ssr, able to have much higher quality without losing temporal stability
Shadingmodel Declutter (#1041)
* Start cleaning up material and shadingapi
* Allow using functions inside of HLSL structs
https://i.imgur.com/t1AwQzr.png
* Replace all GatherMaterial bullshit with Material::From()
* Remove Material parameter references to things that aren't implemented yet, put TransformNormal in normals file
* Cut everything from ShadingModel too and let's start from a static class
* Redo light api on shaders, start implementing new dynamic light under this structure, move raytracing shit to it's own folder, add sample shadingmodel
* Allow structs in structs ( HLSL 2021 and forwards )
* Most of static light with the new api
* Fix shadowing on indexed lights on new light api
* Move shadingmodel structures to shadingmodel.hlsl
* Fix light static assignment for lighting api, fix shadowing for them too
* Stub for EnvironmentMapLight
* Implement cubemap light
* ShadingModelValve
* light.envmap.hlsl becomes light.environment.hlsl for better readability, add debug views to material api, CUSTOM_MATERIAL_INPUTS preprocessor
* AmbientLight
* Sane implementation atmospherics and debug vis postprocessing for shadingmodel api
* Finish debug vis, rename ShadingModelValve to ShadingModelStandard
* Start rewriting blendable with new api, port glass to new api
* Rewritten blendable shader
* Refactor remaining shaders to new shadingmodel api, fix shadergraph not working, readd procedural.hlsl for shadergraph but fix typo on title
Drift SSR result [-1,1] pixel based on the normals to sharpen it to the result
Convert water to the new system, adjust reflections.hlsl
Redo SSR API to not be hardcoded to an ubershader, add a function to just consume material API parameters and output the reflection
Squash commit of what was on SSR branch
Update compiled shaders
Rewritten blendable shader
Refactor remaining shaders to new shadingmodel api, fix shadergraph not working, readd procedural.hlsl for shadergraph but fix typo on title
Start rewriting blendable with new api, port glass to new api
AmbientLight
Sane implementation atmospherics and debug vis postprocessing for shadingmodel api
Finish debug vis, rename ShadingModelValve to ShadingModelStandard
light.envmap.hlsl becomes light.environment.hlsl for better readability, add debug views to material api, CUSTOM_MATERIAL_INPUTS preprocessor
Allow area light size to be changed in runtime
Start cleaning up material and shadingapi
Allow using functions inside of HLSL structs
https://i.imgur.com/t1AwQzr.png
Replace all GatherMaterial bullshit with Material::From()
Remove Material parameter references to things that aren't implemented yet, put TransformNormal in normals file
Cut everything from ShadingModel too and let's start from a static class
Redo light api on shaders, start implementing new dynamic light under this structure, move raytracing shit to it's own folder, add sample shadingmodel
Allow structs in structs ( HLSL 2021 and forwards )
Most of static light with the new api
Fix shadowing on indexed lights on new light api
Move shadingmodel structures to shadingmodel.hlsl
Fix light static assignment for lighting api, fix shadowing for them too
Stub for EnvironmentMapLight