userSam Pavloviccancel
branchsbox/mastercancel

558 Commits over 1,247 Days - 0.02cph!

4 Months Ago
Fix directional lights dissapearing after going away a wee bit from origin, set up a bounding box that's big enough to enclose the whole universe
4 Months Ago
Don't try to normalize a black texel for hue/saturation shift on baked light cookies, fixes NaN when using cookies on baked lights
4 Months Ago
CSceneSunLightObject doesnt exist anymore Add transmission debug view Fix subsurface scattering shadowing, let transmissive mask be computed at lighting level, unify transmissive terms from skin and whatever else, should fix transmission in non-shadowd lights as well https://i.imgur.com/3h3yvhH.png Update skin shader
4 Months Ago
Fix complex combos
4 Months Ago
Simplify and fix tiled light culling in corners, makes tiles match mipmapped depth fetch perfectly Fix formatting typo Pass viewport offset to CDepthDownsampleLayerRenderer and offset it in the shader, fixes depth chain in multicamera scenes, always imply we're taking a full res downsample anyway Fix tiled rendering compositing in multicamera scenes https://i.imgur.com/wrqKgCO.png Compile shaders
5 Months Ago
Strip out monitors, viewmodel and 3d skybox rendering paths from renderpipeline, needs to be cleared from the rest of the codebase (cherry pick from renderingpipeline_cleanup ) but if we don't do it now we never will RenderingPipelineVr becomes RenderingPipelineStandard Remove remaining non-VR "VR" references from rendering pipeline, remote retinaburn and env interaction system that have been never used for us, some more of VR stuff could be taken out now that we do it mostly all in managed Don't shrug off scratch render target system errors after a while
5 Months Ago
Clean compile shader with light edge fix
5 Months Ago
lit decal shader
5 Months Ago
Fix tiled rendering on 32x32 tiles https://files.facepunch.com/sam/1b1411b1/wzae5tFco9.png
5 Months Ago
Loop rather than unroll on fog lights, should give worse perf but fixes horrid startup times for now
5 Months Ago
Revert to shaders just before cascade/point light edge fix, needs a full compile which is already queued
5 Months Ago
Lightbinner Refactor (#1266) * 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 * 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 * Remove SetShadowCascadeResolution and SetShadowCascadeDistance, both pointless, cascades use shadow resolution, add SetCascadeDistanceScale, make number of cascade count actually work * Add g_vRandomFloats to replace oddly named ScreenSpaceDitherParams, fix reflections and volume fog using that * 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 * 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 * 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 * Finalize things, fix misc warnings, fix SSR and enable directional lightmaps * Unify Two Lobe Specular and normal Specular * Test: do full checkout with clean on shader.yml, delete debug_shaders.yml ( pointless ) * 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 * Fix typo on cloth shading combos * Remove references to removed files in shaders * CI: Use git checkout to remove stashed changes, shouldn't error if there are no changes to save & drop * debug_sunshadow_vis is gone, update all_shaders with what's actually there * Add LightSupportsTimeSlicedRendering and filter directional lights out of it, fixes cascades being fucked on hammer * Loop rather than unrolling CalculateLightingAtPoint, sucks for perfomance but this function shouldnt take start and end indexes of the light, focus on correctness first * Fix trunkation warning * Pass correct envmap index * Reenable high precision lighting, it's all fine now (but still considering removing it) * [ Pick ] remove specialized decal rendering path from skin * 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 * Get light culling render buffer from rendercontext rather than from layer * Fix compilation of tiled_light_culling on vulkan (wtf?) * Transpose matrices on d3d11 * Support for multiple suns and fog on atmosphere_sky, code for this still sucks since this came from the first days of development * Remove decal references in skin shader, thought I had that sorted :S * Remove decal_renderer from allshaders.txt * Compile shaders * Refactor fog shader to take lights by index rather than by list, unroll loops still * Minor fixes, x.Load(i) and x[i] has different behaviour between vk and d3d11? Compiled lit user shaders * Shader CI: Do git clean before pull * Compile core shaders * Compile user shaders * Compiled light culling material * Add lightData.HasFrustumFeathering() for seamless fading between light cascades * Consider one texel from edge to be considered outside the shadow region so that multiple frusta won't do smooth sampling on edges * Consider cascade to always be squared * Compile shaders --------- Co-authored-by: Matt Stevens <matt@mattstevens.co.uk>
6 Months Ago
Only share parent view's atlas if it has a lightbinner, fixes avatar menu, I'll revisit this tomorrow
6 Months 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
7 Months 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
7 Months 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
7 Months Ago
r_tiled_rendering_depth_cull: Better to flag it as FCVAR_NONE for now
7 Months Ago
Depth resolve vmat
7 Months Ago
Move specialized parts from renderpipeline into their own files, implement dynamic reflections into procedurallayerrender Add depth downsample layer, replace CVrComputeShaderRenderer with generic one Cleanup dynamic reflections layer Move depth downsample to it's own neat layer, use specialized depth resolve for another image format disable depth cull for tiled rendering while I figured why certain tool views can't resolve intermediary depth, temporarialy fixes lights and cubemaps on Scene editor Vulkan compile for depthresolve_cs Remove r_resolution_scale not referenced anywhere
7 Months Ago
Remove deprecated renderingpipeline stuff that was never even used
9 Months Ago
Compiled shaders with aoproxy fixes
9 Months Ago
Aoproxy composition: Fetch the texel with lowest distance, make it much simpler, fixes ugly black artifacts, darkern directional ao a bit more https://i.imgur.com/Laib79y.png
9 Months Ago
Remove last crumbs from fsr
9 Months Ago
Update shaders from a clean compile
9 Months Ago
Make PerViewRuntimeFastPathLightingConstantBuffer match vulkan what's on c++, compiler is still optimizing some constants out though Initialize multiview parameters on spritecard shaders
9 Months Ago
Fix copytexture coordinates hi-z depth, fixes dynamic reflections on tools https://i.imgur.com/Qn3vHPl.png
9 Months Ago
Fix small fog clipping on seamless entry for fog Fix framebuffer copy scale for water Do softer collision on ripplecompute, fixes aliasing on screen border
9 Months Ago
Compiled complex with parallax fixes
9 Months Ago
Don't offset shadow position by parallax, causes problems when shadowing lights in parallel angles to the surface sboxgame/issues/issues/3349
9 Months Ago
Fix black borders on viewmodel ao when changing resolution and add thickness factor for back tracing
9 Months Ago
Fix 4 way blend on blendable
9 Months Ago
Fix merge conflict
9 Months Ago
Screen-Space Reflections (#736)
9 Months Ago
Update compiled shaders with AO changes
9 Months Ago
[Pick] Composite baked AO into diffuse lighting
9 Months Ago
Much more accurate and faster way to calculate max depth on tiled light building by using depth hierarchy, increase tile size to
9 Months Ago
[Pick] add MinMax downsample operator for Hi-Z depth buffer, this will help us do some GPU occlusion tests and trace what's between SSR geometry Fix atmospherics not showing up on editor for shadingmodel shaders Compiled shaders
10 Months Ago
Be more lenient on light direction validation mask for directional AO, make sure that aoproxies don't clip through citizen's arms Directional AO can use more steps now that it's cheaper
10 Months Ago
Do finer steps on soft shadowing of directional AO https://i.imgur.com/VDwm44j.png
10 Months Ago
[ pick ] Pick reprojection transform constants from SSR branch [ Pick ] let reflections api be more generic to use
10 Months Ago
Add ffx_sssr shader headers from SSR branch
10 Months Ago
Fix AddBlitTextureToTargetLayer not blitting correctly if dimensions are different Backport Hierarchical Z Downsample and FindOrCreateFrameBufferTexture from SSR branch, clean it up
10 Months Ago
Use multiview variant for calculating camera direction
10 Months Ago
Shader objects for VR and high precision lighting fixes
10 Months Ago
Fix glass behaviour being transparent when writing screenshots, flags to shadingmodel to fill alpha
10 Months Ago
Reenable multiview instancing on PS code for now, fixes reflections and lights projecting incorrectly in VR
10 Months Ago
Fix mixed lights having incorrect behavior when disabing high precision lighting offset, same behavior as before with it enabled
10 Months Ago
Fix warnings on rendering transparents, LAYERFLAGS_READONLY_DEPTH_STENCIL disables depth access?? Just really needs LAYERFLAGS_DOESNT_MODIFY_DEPTH_STENCIL_BUFFER, remove vr_readonly_depth_stencil_enable since it's pretty redundant
10 Months Ago
Vulkan compile for wireframe shaders
10 Months Ago
Set wireframe color as an attribute rather thaan dedicating a whole cbuffer to it, fixes hammer wireframe being dark as well since that data was not being set correctly