userSam Pavloviccancel
reposboxcancel

1,728 Commits over 1,491 Days - 0.05cph!

1 Year Ago
Remove decal_renderer from allshaders.txt
1 Year Ago
rename pipeline to renderingpipeline_standard Remove remaining VR references from pipeline, remove specialized viewmodel, monitor and 3d skybox rendering paths from it Remove scenemonitor and dota planar reflection stuff
1 Year Ago
Remove decal references in skin shader, thought I had that sorted :S
1 Year Ago
Support for multiple suns and fog on atmosphere_sky, code for this still sucks since this came from the first days of development
1 Year Ago
Get light culling render buffer from rendercontext rather than from layer Fix compilation of tiled_light_culling on vulkan (wtf?) Transpose matrices on d3d11
1 Year Ago
[pick] Delete Decal Renderer that's used on unused skin decal stuff
1 Year Ago
Fix cascade scale for maps that arent compiled with the new light attributes Apply indirect transmissive lighting, previously would only be affectted by direct lighting Migrate light api to new lightbinner system
1 Year Ago
[ Pick ] remove specialized decal rendering path from skin
1 Year Ago
Pass correct envmap index Reenable high precision lighting, it's all fine now (but still considering removing it)
1 Year Ago
Fix trunkation warning
1 Year Ago
Loop rather than unrolling CalculateLightingAtPoint, sucks for perfomance but this function shouldnt take start and end indexes of the light, focus on correctness first
1 Year Ago
Add LightSupportsTimeSlicedRendering and filter directional lights out of it, fixes cascades being fucked on hammer
1 Year Ago
debug_sunshadow_vis is gone, update all_shaders with what's actually there
1 Year Ago
CI: Use git checkout to remove stashed changes, shouldn't error if there are no changes to save & drop
1 Year Ago
Fix typo on cloth shading combos Remove references to removed files in shaders
1 Year Ago
Pass skycolor of multiple lights to renderer, works with multiple lights, fixes skycolor attribute doing nothing, while it'd be nice to just pass envmap diffuse lighting for ambients right now it'd break some workflows
1 Year Ago
Test: do full checkout with clean on shader.yml, delete debug_shaders.yml ( pointless )
1 Year Ago
Unify Two Lobe Specular and normal Specular
1 Year Ago
1 Year Ago
Remove SetRenderAttributesForEnvironmentMap, Handshakes, ChooseEnvironmentMap and envmap bindings (cya), we're been GPU-driven for quite some time now
1 Year Ago
Finalize things, fix misc warnings, fix SSR and enable directional lightmaps
1 Year Ago
Add unified Subsurface Scattering support for skin shadiing, previously every light type implemented this differently causing shading differences, now baked lights show this correctly too https://files.facepunch.com/sam/1b2711b1/k5L2Punaav.png Readd SetShadowCascadeResolution and SetShadowCascadeDistance as stub obsolte methods to not break existing games
1 Year Ago
Fix lightcookie support, add support for colors on indexed lights with lightcookies, remove lightcookie index from lightbinner.hlsl, just pass the transform https://files.facepunch.com/sam/1b2711b1/zTwJgEDa7N.jpg
1 Year Ago
Rename Tiled Light Builder to Tiled Light Culling, do fixes for the new system and shrink tiles to 32x32 from 48x48, allowing us to just take a single fetch from depth buffer for GPU culling tests
1 Year Ago
Add g_vRandomFloats to replace oddly named ScreenSpaceDitherParams, fix reflections and volume fog using that
1 Year Ago
Remove SetShadowCascadeResolution and SetShadowCascadeDistance, both pointless, cascades use shadow resolution, add SetCascadeDistanceScale, make number of cascade count actually work
1 Year Ago
Moved tiled rendering buffers to lightbinner, where it should belong Remove members that have long been deprecated, start adding support for structured buffer lights Move all cbuffer stuff to legacy, standard will only have structured buffer path Start implementing structured buffer lights data structure Remove all code for calculating mixed shadows, that'll be all allocated in the main light shadow function, iterate structured buffers Iterate on new lightbinner, let all shadows render through a single rendering path, disregard legacy for now Remove bMixed from LightEntry, it's complete bullshit, let static lights render only dynamic objects when doing shadows Unified shadow casting, map indexed lights so we can fetch them easily and without needing to order sequentially, remove more deprecated stuff Get rid of lightbinner_legacy completely Eliminate legacy per view lighting constants, eliminate mixed shadows, add placeholder to some constants where they should belong Cut more code from lightbinner light allocs, means only spots will alloc properly for now but cleans a lot of this, align cbuffers, add ComputeDirectLightingForLight to unify lighting calculation on shader Remove CSunLightManager, used for old pre-hlvr sun rendering, a lot of code that's only used for dynamic sunlight different to everything else in light rendering Remove more unused parameters from lightbinner Remove remaining crumbs of old sun shadowing, remove unused shadow functions, add bBaked to ComputeDirectLightingForLight Lightcookies and point lights Remove multiview constants from lightbinner, these have been getting in my way, and we need to think a better way to handle instanced viewports, I'm leaving it to a bigger cleanup later Start Envmap support on new lightbinner, remove unused environment_map.fxc Start MATERIAL_LIGHT_DIRECTIONAL support for lightbinner, sets up frusta for lights Fix conflicts from merge that added removed stuff Fixup for directional lights, add dummy ambient lighting for fully dynamic scenes, implement flags properly Fix merge ( g_nNumEnvMaps > NumEnvironmentMaps ) Remove interface definition from Vfx ( It's fucked off from HLSL 2020+ ), add array support to members in classes in Vfx Store multiple frusta on same light definition rather than using sequential lights, makes this simpler, point light shadows Ambient light, new strategy for shadow frusta Disable r_enable_high_precision_lighting, just ends up overcomplicating code, reevaluate if this actually affects much away from world origin, will make vPositionWithOffsetWs just become vPositionWs in shaders if fully removed Take shadow frustra from BuildShadowFrustaForLight() that matches what's on the shadow map renderer, rather than rebuilding it with twice the code Test of multiple frusta support for shadow maps on shader 🥳 Support for cascaded shadow maps on new unified multi-frusta system, needs to backport old code Backport directional CSM code to unified BuildShadowFrustraForDirectionalLight in lightdesc Shadow filtering and dummy ambient lighting Calculate spot light resolution proportionally based on light cone and do a LOD system for light shadows based on distance, both are meant to be perceptual https://files.facepunch.com/sam/1b1211b1/sbox_rl2LTOMdY4.mp4 CSM Adjustments Pass envmap data to GPU Fixups for cubemaps on shader, add test for ambient light IBL support https://files.facepunch.com/sam/1b1311b1/ibl.png We dont need start indexes for lights anymore, just remap the index for fog and baked, fixup envmap count to shader Remove refs to CalculatePositionToCameraDirWsMultiview function call in new lightbinner shader code Cleanup, remove a bunch of unused or deprecated shit, cleaned up a lot of variable in lightbinner structured buffer that ends up not being needed, document things a bit better Rename lightconstants.hlsl to lightbinner.hlsl and call the data there BinnedLight/BinnedEnvMap, make baked lights only cast shadows if mixed lights are enabled on them Remove limitations to not have mixed point light shadows, it just works now https://files.facepunch.com/sam/1b1911b1/SNSMgfgkxR.png Fix flags on lightbinner gpu include, oops Refactor tiled rendering builder to be compatible with new lightbinner, make it implicit under lightbinner.hlsl Fog lights support, remove second buffer that's meant for fog lights, remove bullshit code to support old directional light from it that was just meant to be tools-only, all light types just works now https://files.facepunch.com/sam/1b2111b1/C3pY5Q7jq9.png Fix directional light farz https://files.facepunch.com/sam/1b2111b1/Jn16Ruj0ub.png
1 Year Ago
Fix directional light farz https://files.facepunch.com/sam/1b2111b1/Jn16Ruj0ub.png
1 Year Ago
Fog lights support, remove second buffer that's meant for fog lights, remove bullshit code to support old directional light from it that was just meant to be tools-only, all light types just works now https://files.facepunch.com/sam/1b2111b1/C3pY5Q7jq9.png
1 Year Ago
Fix flags on lightbinner gpu include, oops Refactor tiled rendering builder to be compatible with new lightbinner, make it implicit under lightbinner.hlsl
1 Year Ago
Rename lightconstants.hlsl to lightbinner.hlsl and call the data there BinnedLight/BinnedEnvMap, make baked lights only cast shadows if mixed lights are enabled on them Remove limitations to not have mixed point light shadows, it just works now https://files.facepunch.com/sam/1b1911b1/SNSMgfgkxR.png
1 Year Ago
Cleanup, remove a bunch of unused or deprecated shit, cleaned up a lot of variable in lightbinner structured buffer that ends up not being needed, document things a bit better
1 Year Ago
Moved tiled rendering buffers to lightbinner, where it should belong Remove members that have long been deprecated, start adding support for structured buffer lights Move all cbuffer stuff to legacy, standard will only have structured buffer path Start implementing structured buffer lights data structure Remove all code for calculating mixed shadows, that'll be all allocated in the main light shadow function, iterate structured buffers Iterate on new lightbinner, let all shadows render through a single rendering path, disregard legacy for now Remove bMixed from LightEntry, it's complete bullshit, let static lights render only dynamic objects when doing shadows Unified shadow casting, map indexed lights so we can fetch them easily and without needing to order sequentially, remove more deprecated stuff Get rid of lightbinner_legacy completely Eliminate legacy per view lighting constants, eliminate mixed shadows, add placeholder to some constants where they should belong Cut more code from lightbinner light allocs, means only spots will alloc properly for now but cleans a lot of this, align cbuffers, add ComputeDirectLightingForLight to unify lighting calculation on shader Remove CSunLightManager, used for old pre-hlvr sun rendering, a lot of code that's only used for dynamic sunlight different to everything else in light rendering Remove more unused parameters from lightbinner Remove remaining crumbs of old sun shadowing, remove unused shadow functions, add bBaked to ComputeDirectLightingForLight Lightcookies and point lights Remove multiview constants from lightbinner, these have been getting in my way, and we need to think a better way to handle instanced viewports, I'm leaving it to a bigger cleanup later Start Envmap support on new lightbinner, remove unused environment_map.fxc Start MATERIAL_LIGHT_DIRECTIONAL support for lightbinner, sets up frusta for lights Fix conflicts from merge that added removed stuff Fixup for directional lights, add dummy ambient lighting for fully dynamic scenes, implement flags properly Fix merge ( g_nNumEnvMaps > NumEnvironmentMaps ) Remove interface definition from Vfx ( It's fucked off from HLSL 2020+ ), add array support to members in classes in Vfx Store multiple frusta on same light definition rather than using sequential lights, makes this simpler, point light shadows Ambient light, new strategy for shadow frusta Disable r_enable_high_precision_lighting, just ends up overcomplicating code, reevaluate if this actually affects much away from world origin, will make vPositionWithOffsetWs just become vPositionWs in shaders if fully removed Take shadow frustra from BuildShadowFrustaForLight() that matches what's on the shadow map renderer, rather than rebuilding it with twice the code Test of multiple frusta support for shadow maps on shader 🥳 Support for cascaded shadow maps on new unified multi-frusta system, needs to backport old code Backport directional CSM code to unified BuildShadowFrustraForDirectionalLight in lightdesc Shadow filtering and dummy ambient lighting Calculate spot light resolution proportionally based on light cone and do a LOD system for light shadows based on distance, both are meant to be perceptual https://files.facepunch.com/sam/1b1211b1/sbox_rl2LTOMdY4.mp4 CSM Adjustments Pass envmap data to GPU Fixups for cubemaps on shader, add test for ambient light IBL support https://files.facepunch.com/sam/1b1311b1/ibl.png We dont need start indexes for lights anymore, just remap the index for fog and baked, fixup envmap count to shader Remove refs to CalculatePositionToCameraDirWsMultiview function call in new lightbinner shader code
1 Year Ago
Pass envmap data to GPU Fixups for cubemaps on shader, add test for ambient light IBL support https://files.facepunch.com/sam/1b1311b1/ibl.png
1 Year Ago
Shadow filtering and dummy ambient lighting Calculate spot light resolution proportionally based on light cone and do a LOD system for light shadows based on distance, both are meant to be perceptual https://files.facepunch.com/sam/1b1211b1/sbox_rl2LTOMdY4.mp4 CSM Adjustments
1 Year Ago
Backport directional CSM code to unified BuildShadowFrustraForDirectionalLight in lightdesc
1 Year Ago
Support for cascaded shadow maps on new unified multi-frusta system, needs to backport old code
1 Year Ago
Test of multiple frusta support for shadow maps on shader 🥳
1 Year Ago
Disable r_enable_high_precision_lighting, just ends up overcomplicating code, reevaluate if this actually affects much away from world origin, will make vPositionWithOffsetWs just become vPositionWs in shaders if fully removed Take shadow frustra from BuildShadowFrustaForLight() that matches what's on the shadow map renderer, rather than rebuilding it with twice the code
1 Year Ago
Ambient light, new strategy for shadow frusta
1 Year Ago
Moved tiled rendering buffers to lightbinner, where it should belong Remove members that have long been deprecated, start adding support for structured buffer lights Move all cbuffer stuff to legacy, standard will only have structured buffer path Start implementing structured buffer lights data structure Remove all code for calculating mixed shadows, that'll be all allocated in the main light shadow function, iterate structured buffers Iterate on new lightbinner, let all shadows render through a single rendering path, disregard legacy for now Remove bMixed from LightEntry, it's complete bullshit, let static lights render only dynamic objects when doing shadows Unified shadow casting, map indexed lights so we can fetch them easily and without needing to order sequentially, remove more deprecated stuff Get rid of lightbinner_legacy completely Eliminate legacy per view lighting constants, eliminate mixed shadows, add placeholder to some constants where they should belong Cut more code from lightbinner light allocs, means only spots will alloc properly for now but cleans a lot of this, align cbuffers, add ComputeDirectLightingForLight to unify lighting calculation on shader Remove CSunLightManager, used for old pre-hlvr sun rendering, a lot of code that's only used for dynamic sunlight different to everything else in light rendering Remove more unused parameters from lightbinner Remove remaining crumbs of old sun shadowing, remove unused shadow functions, add bBaked to ComputeDirectLightingForLight Lightcookies and point lights Remove multiview constants from lightbinner, these have been getting in my way, and we need to think a better way to handle instanced viewports, I'm leaving it to a bigger cleanup later Start Envmap support on new lightbinner, remove unused environment_map.fxc Start MATERIAL_LIGHT_DIRECTIONAL support for lightbinner, sets up frusta for lights Fix conflicts from merge that added removed stuff Fixup for directional lights, add dummy ambient lighting for fully dynamic scenes, implement flags properly Fix merge ( g_nNumEnvMaps > NumEnvironmentMaps ) Remove interface definition from Vfx ( It's fucked off from HLSL 2020+ ), add array support to members in classes in Vfx Store multiple frusta on same light definition rather than using sequential lights, makes this simpler, point light shadows
1 Year Ago
Clip intersecting geometry properly in directional AO, fixes intersecting ao geometry being draw white with negative division Pass transforms to aoproxy updater instead of figuring them out in the function itself, add GetTransformTable to get all transforms from a sceneobject for that
1 Year Ago
Moved tiled rendering buffers to lightbinner, where it should belong Remove members that have long been deprecated, start adding support for structured buffer lights Move all cbuffer stuff to legacy, standard will only have structured buffer path Start implementing structured buffer lights data structure Remove all code for calculating mixed shadows, that'll be all allocated in the main light shadow function, iterate structured buffers Iterate on new lightbinner, let all shadows render through a single rendering path, disregard legacy for now Remove bMixed from LightEntry, it's complete bullshit, let static lights render only dynamic objects when doing shadows Unified shadow casting, map indexed lights so we can fetch them easily and without needing to order sequentially, remove more deprecated stuff Get rid of lightbinner_legacy completely Eliminate legacy per view lighting constants, eliminate mixed shadows, add placeholder to some constants where they should belong Cut more code from lightbinner light allocs, means only spots will alloc properly for now but cleans a lot of this, align cbuffers, add ComputeDirectLightingForLight to unify lighting calculation on shader Remove CSunLightManager, used for old pre-hlvr sun rendering, a lot of code that's only used for dynamic sunlight different to everything else in light rendering Remove more unused parameters from lightbinner Remove remaining crumbs of old sun shadowing, remove unused shadow functions, add bBaked to ComputeDirectLightingForLight Lightcookies and point lights Remove multiview constants from lightbinner, these have been getting in my way, and we need to think a better way to handle instanced viewports, I'm leaving it to a bigger cleanup later Start Envmap support on new lightbinner, remove unused environment_map.fxc Start MATERIAL_LIGHT_DIRECTIONAL support for lightbinner, sets up frusta for lights Fix conflicts from merge that added removed stuff
1 Year Ago
Only share parent view's atlas if it has a lightbinner, fixes avatar menu, I'll revisit this tomorrow
1 Year Ago
Pass current view to be used as parent view in RenderTools.RenderScene, this lets lightbinner cache shadows properly between SceneCamera views on the same world, but doesn't affect SceneSunlight though
1 Year Ago
Recycle shadow depth texture if requested atlas is of same size, remove code for unused mask texture Hammer uses same shadow atlas as everything else
1 Year Ago
Moved tiled rendering buffers to lightbinner, where it should belong Remove members that have long been deprecated, start adding support for structured buffer lights Move all cbuffer stuff to legacy, standard will only have structured buffer path Start implementing structured buffer lights data structure Remove all code for calculating mixed shadows, that'll be all allocated in the main light shadow function, iterate structured buffers Iterate on new lightbinner, let all shadows render through a single rendering path, disregard legacy for now Remove bMixed from LightEntry, it's complete bullshit, let static lights render only dynamic objects when doing shadows Unified shadow casting, map indexed lights so we can fetch them easily and without needing to order sequentially, remove more deprecated stuff Get rid of lightbinner_legacy completely Eliminate legacy per view lighting constants, eliminate mixed shadows, add placeholder to some constants where they should belong Cut more code from lightbinner light allocs, means only spots will alloc properly for now but cleans a lot of this, align cbuffers, add ComputeDirectLightingForLight to unify lighting calculation on shader Remove CSunLightManager, used for old pre-hlvr sun rendering, a lot of code that's only used for dynamic sunlight different to everything else in light rendering Remove more unused parameters from lightbinner Remove remaining crumbs of old sun shadowing, remove unused shadow functions, add bBaked to ComputeDirectLightingForLight Lightcookies and point lights
1 Year Ago
Add SwapChainSampleableDepth to gameinfo, we always want sampleable depth, fixes decals, light culling and reflections not working on Scene Use Complex & Dynamic Reflections to relevant dev_metal_rough/dev_nonmetal_rough materials Reenable r_tiled_rendering_depth_cull, r_tiled_rendering doesnt need to be fcvar_archive anymore
1 Year Ago
r_tiled_rendering_depth_cull: Better to flag it as FCVAR_NONE for now
1 Year Ago
Depth resolve vmat