1,728 Commits over 1,491 Days - 0.05cph!
More aggressive contact hardening
Compile optimized shaders
Force special case for water cubemap blending for now
Separate water better and output to reflection gbuffer, reflections don't look great yet but has all boilerplate for water2
Some adjustments for contact hardening and compiled shaders
Enhance contact hardening for radiance history, drift encoded normals a bit so that normals facing down don't get encoded incorrectly, improve temporal stability factor
Test for saving downsampled depth history, might not be necessary, redo convoluted multiple-layers downsample with a simple call to our downsample function call
Iterate SSR, fix reprojection
Add contact hardening for DNSR reflections
https://i.imgur.com/PHaZgQv.png
Fix NaN rays on high quality reflections tracing
Track reflection gbuffer history so that denoiser knows when to use mirror reflections
Finish temporal alpha denoising
Squash commit of SSR and Denoiser work
Reimplement Min/Max downsample for new shader
Do alpha denoising for DNSR reprojection pass
Alpha denoising on the other passes
Pass to shader pipeline if we're rendering on skybox, fix glass reprojection being fucked up on skybox
Fix glass not showing properly on tools view
Just set the max swapchain dimension to be the largest monitor dimension again, causes less problems while in tools mode, guarantees we won't have edge problems
Fix glass depth being fetched incorrectly in MSAA levels
Get the dimension of the biggest used axis for calculating swapchain dimensions, fixes FB copies having wrong dimensions on tools, allow texture downsamples to only downsample a region
Let decals do software-based culling, avoids slow copy of the depth buffer just to do redundant culling, that was also causing problems
Fix framebuffer copies taking wrong dimensions
Revert "Don't dispose of temp rendertarget when trying to resolve it again", This needs more thought and was causing problems
This reverts commit 6ee43b38e629221c8b8faa2c43d6eb3fa81f6afb.
Squash commit of SSR and Denoiser work
Reimplement Min/Max downsample for new shader
Fix framebuffer copies taking wrong dimensions
Remap parameters from deprecated shaders still referenced in cloud materials
Glass2 (#936)
* Start recoding the glass shader from scratch
* Apply FrameBufferCopyTexture to entire layer rather than batch, fixes some batches returning a null texture
* Let Material API handle translucency opacity properly and accounting for specular, still need to account for tint opacity
* Iterate on new glass
* Randomize shatterglass normals
https://i.imgur.com/8EKzZZ8.mp4
* Add overlay layer and cheap rough refraction
* Downsample framebuffercopytexture to be used when needed
* Translucent shadows for glass
https://i.imgur.com/6KYigbg.png
* Redo downsample shader to work properly without flickering, right now with just gaussian since we don't use any others right now
* Pass downsample method before ComputeRenderablePassesForContext
* Cleanup glass shader, fix VR and Tools preview
* glass.shader_c
* Update glass materials and glass blur range
* Don't dispose of temp rendertarget when trying to resolve it again, GetTemporary gets from dict, fixes multiple ui blur fetches, this solution was causing issues before but seems fine now we're hashing every parameter
* Do 1px feathering on CopyFrameBufferCached to avoid sampling without real intersection
* Remove hacks from GenerateMips, rewrite downsample_cs to support other mip generation methods
* Fix FBCopies showing incorrectly on tools
https://i.imgur.com/1MnEiWe.png
* Fix comment that slipped through experimentation, add more explaination to Cheap Glass and Overlay Layer
Fix comment that slipped through experimentation, add more explaination to Cheap Glass and Overlay Layer
Fix FBCopies showing incorrectly on tools
https://i.imgur.com/1MnEiWe.png
Cast a second ray if GGX sample goes below ground for SSR
Redo downsample shader to work properly without flickering, right now with just gaussian since we don't use any others right now
Don't dispose of temp rendertarget when trying to resolve it again, GetTemporary gets from dict, fixes multiple ui blur fetches, this solution was causing issues before but seems fine now we're hashing every parameter
Do 1px feathering on CopyFrameBufferCached to avoid sampling without real intersection
Remove hacks from GenerateMips, rewrite downsample_cs to support other mip generation methods
Update compiled skin shader with glow-in-dark fixes
Don't dispose of temp rendertarget when trying to resolve it again, GetTemporary gets from dict, fixes multiple ui blur fetches, this solution was causing issues before but seems fine now we're hashing every parameter
Do 1px feathering on CopyFrameBufferCached to avoid sampling without real intersection
Remove hacks from GenerateMips, rewrite downsample_cs to support other mip generation methods
Update glass materials and glass blur range
Cleanup glass shader, fix VR and Tools preview
Downsample framebuffercopytexture to be used when needed
Translucent shadows for glass
https://i.imgur.com/6KYigbg.png
Redo downsample shader to work properly without flickering, right now with just gaussian since we don't use any others right now
Pass downsample method before ComputeRenderablePassesForContext
Fix specifc shaders github action job referencing from the shader yml
Add overlay layer and cheap rough refraction
Fix two lobe speculars not normalizing it's brightness (Skin glowing on dark)
https://i.imgur.com/pua5PV8.png
Start recoding the glass shader from scratch
Apply FrameBufferCopyTexture to entire layer rather than batch, fixes some batches returning a null texture
Let Material API handle translucency opacity properly and accounting for specular, still need to account for tint opacity
Iterate on new glass
Randomize shatterglass normals
https://i.imgur.com/8EKzZZ8.mp4
Fix some issues on DNSR
Use full-size floats to fix packing problems
Get water to it's bare minimum so that we can use high quality reflections with it, use material api for water shader, gets out of a bunch of hacks
Remove SFM/Dota/Etc stuff from rendering pipeline (#904)
* Initialize lightShades so we don't get undefined behaviour when summing them, should still be mostly stubbed out by the compiler anyway if shadingmodel doesn't use it
* Delete all code, shaders and dependencies from other rendering pipelines
* Rewrite visualize_physics without deferred and deprecated stuff, also fix a bug with depth sorting
* Fix references to old pipelines on remainder of shaders
* Fix debug_sunshadow, update all_shaders list and delete compiled shaders for stuff we don't use anymore
* Remove HSL Grain and old Volumetrics from SFM, note that SFM lights already cast volumetrics in our pipeline without that
* Fix crash on moviedoc on maps with volumetrics
* Revert deletion of debug_sunshadow_vis.vmat
* Put RecoverWorldPosFromProjectedDepthAndRay on shared code
Squashed commit of SSR branch
Finish denoising
Don't use single pass downsampling for depth downsample without having memory barriers, optimize it to accept writing to a single channel rather than 4
Add downsample material for c++ side of downsampler
Some final tweaks and compile optimized shaders
Copy back last denoised frame so that we don't collide with memory in CS
Fix pixel fraction sampling on Catmull-Rom sampling
Cleanup, add Complex shader with SSR support
Fix noising with catmull-rom function
Cleanup, move ReprojectFromLastFrame to common code
Do half pixel offset on intersection reprojection
Actually add ReprojectFromLastFrameSs to common.fxc
Update game/addons/base/shaders/reflection_denoise_cs.shader
Co-authored-by: Chloe <25727384+ogniK5377@users.noreply.github.com>
Cleanup
Rebase tweaks
Add SoftShadowPenumbra to pixel.raytrace.sdf, correct SSR tracing cone, add gaussian post processing step
Use GGX importance sampling for intersection
Some adjustments on denoising with GGX sampling, compile shaders
Fix SDF reflections having wrong roughness
Do contact hardening on SSR reflections, better reconstruction
https://i.imgur.com/lY5VTE5.png
Remove shitty artifacts while in motion, do denoising reconsruction much better
Remove neighbors that aren't reflected in our buffer, compile optimized shaders
Start implementing AMD DNSR
Simplify how we pass reflection layers, setup extra rendertargets for new denoiser
Setup and all 3 denoise passes in a single shader
Fix UAV assignment and reprojection delta
Iterate on AMD DNSR implementation
Initialize lightShades so we don't get undefined behaviour when summing them, should still be mostly stubbed out by the compiler anyway if shadingmodel doesn't use it
Delete all code, shaders and dependencies from other rendering pipelines
Rewrite visualize_physics without deferred and deprecated stuff, also fix a bug with depth sorting
Fix references to old pipelines on remainder of shaders
Fix debug_sunshadow, update all_shaders list and delete compiled shaders for stuff we don't use anymore
Remove HSL Grain and old Volumetrics from SFM, note that SFM lights already cast volumetrics in our pipeline without that
Fix crash on moviedoc on maps with volumetrics
Revert deletion of debug_sunshadow_vis.vmat
Put RecoverWorldPosFromProjectedDepthAndRay on shared code
Fix rect light specular, approximate reflection vector by the dominant direction vector so that we don't get a weird rough projected reflection
Update shaders for area lights, including compiled version
Fix bbox on light baking for area lights
Only do clamping in NdotL for Capsule Lights, avoids it showing through walls
C# side of rectanglelightentity
Sphere light prototype
Tube light prototype
Data structures for light shapes
Add CapsuleLightEntity, pass extra light parameters properly
Do custom NdotL computation for capsule lights
Volumetric light for vrad
Cleanup
Indexed baked light support for area lights
light_capsule editor model
Fix bounds of baked lights and don't cast rasterized shadows if light is an area light
added light rect editor icon
https://files.facepunch.com/louie/1b1611b1/sbox-dev_txMYDqSXVV.png
Disc Light prototype
Area light dynamic volumetric fog support
Rectangular lights, cleanup
More cleanup, keep both disc and rect paths, baked light support for rects
Remove old now-unused ComputeDirectLighting_SingleLightFastPath and refactor DoLightShape, changes on dynamic volumetric fog
Separate diffuse and specular rays for rects, get it working nicely on volumetric fog too
Only light the front of the light_rect on vrad
Clamp L of rect and sphere so that it can intersect ground
Fix specular on indexed lights
Add tiled rendering tools debug vis mode
Fix baked rect lights dot product eating what's behind it and leaving it black
Tiled Rendering for area lights
Put RecoverWorldPosFromProjectedDepthAndRay on shared code
Fix tintmask and cleanup multiblend further, reduce number of samples
Fix typo VFX_REGISTER_INPUT_TEXTURE > VFX_REGISTER_TEXTURE
Don't compile shader if they exceed our VFX_MAX_SAMPLERS
Revert deletion of debug_sunshadow_vis.vmat
Fix debug_sunshadow, update all_shaders list and delete compiled shaders for stuff we don't use anymore
Remove HSL Grain and old Volumetrics from SFM, note that SFM lights already cast volumetrics in our pipeline without that
Fix crash on moviedoc on maps with volumetrics
Rewrite visualize_physics without deferred and deprecated stuff, also fix a bug with depth sorting
Fix references to old pipelines on remainder of shaders