Nico de Poel
|
72df347315
|
Reworked 2-pass FS implementation to integrate more directly with the PPV2 framework, allowing for multi-target rendering using the fullscreen triangle blit, which eliminates the need for an extra blit at the end.
Also fixed a bug where the scale factor was inverted, which caused FS upscaling output to be blurry.
|
1 year ago |
Nico de Poel
|
cac783bebc
|
Working SGSR2 2-pass FS implementation, bit dirty but good enough for testing.
|
1 year ago |
Nico de Poel
|
87237bbddc
|
Initial conversion to HLSL
|
1 year ago |
Nico de Poel
|
a0fa2c9e60
|
First import of GLSL fragment shaders plus some initial Unity shader setup
|
1 year ago |
Nico de Poel
|
a56f0742b5
|
Further tweaked motion vector processing, now the camera motion vectors from Unity produce an exact match with the auto-generated motion from the clip-delta matrix, in both D3D, Vulkan and OpenGL. It also makes sense with regards to the flipped Y-coordinate in screen space now. The final result looks good now too.
|
1 year ago |
Nico de Poel
|
05989857c0
|
Added an untested and as of yet unused HDRP include file, just as an expression of what this file will look like for SRPs
|
1 year ago |
Nico de Poel
|
d354d07d81
|
Added scaleRatio to unify the cbuffer definition for all shaders, including the fragment shader variant.
|
1 year ago |
Nico de Poel
|
ed566a8beb
|
Empirically determined the best setup for motion vectors in OpenGL, though it still doesn't make a whole lot of sense. Added opt-in debug symbols line to the upscale shaders to make analysis easier.
|
1 year ago |
Nico de Poel
|
4f8cf086bf
|
More specifically, set NDC Y-coordinate to be up when the Unity graphics API has UV's starting at the top
|
1 year ago |
Nico de Poel
|
80a8532cb4
|
Cleaned up an unused argument
|
1 year ago |
Nico de Poel
|
5b203e7ef5
|
Set normalized device coordinates Y direction to be up, which is standard in Unity, and properly detect non-zero motion vector inputs. This *seems* to be the correct recipe.
|
1 year ago |
Nico de Poel
|
19b2969e58
|
Added macros to change nearest-depth and depth-clipping logic based on whether the Unity graphics API uses reversed Z or not
|
1 year ago |
Nico de Poel
|
8635b131f6
|
Renamed SGSR2 compute shader resources class, to allow an easier distinction between fragment and compute variants later on
|
1 year ago |
Nico de Poel
|
8d6036c91c
|
Moved a bunch of common definitions and functions into a separate file
|
1 year ago |
Nico de Poel
|
0469bb921f
|
Reverted use of CBUFFER_ macros, as it was breaking the shaders on Vulkan
|
1 year ago |
Nico de Poel
|
3285c552f4
|
Verified motion vector "decoding" against the auto-generated camera MVs based on the clip-space delta matrix, and made a small fix
|
1 year ago |
Nico de Poel
|
c43c8d11f9
|
Reworked SGSR2 classes, moving more logic to the base class, and implemented clip-space delta matrix as well as the is-camera-still logic.
|
1 year ago |
Nico de Poel
|
9bf6a12c97
|
Minor optimization: use half float types wherever the original GLSL code uses mediump floats.
|
1 year ago |
Nico de Poel
|
7217b0fc32
|
Unity-fied all SGSR2 shaders by changing all texture declarations and accesses into TextureXR-style macros, with a shared BiRP definitions file.
|
1 year ago |
Nico de Poel
|
0f7baf0b52
|
Implemented 2-pass CS dispatch
|
1 year ago |
Nico de Poel
|
d4c1d3f56e
|
Made SGSR2 upscaler plugin abstract and split off 3-pass CS version into its own separate class
|
1 year ago |
Nico de Poel
|
14fa1bc7d2
|
Initial port of SGSR2 2-pass compute shaders to HLSL (untested)
|
1 year ago |
Nico de Poel
|
708e4308c5
|
Consolidated SGSR2 shaders into single .compute files as there's not much point in using includes, and grouped them together into a 3-pass folder. This will make it easier to add the other variants later.
|
1 year ago |
Nico de Poel
|
7a259062d8
|
Working SGSR2 3-pass:
- Added padding field to fix buffer data misalignment issue
- Simplified the translation of GLSL globalInvocationID to HLSL
|
1 year ago |
Nico de Poel
|
5646e0a325
|
Added PoC SGSR2 upscaler
|
1 year ago |
Nico de Poel
|
8db82e664c
|
Reworked upscaling integration to allow for multiple upscaler algorithms that can be switched on the fly.
|
1 year ago |