Nico de Poel
|
d47b8c78da
|
Added option to enable FP16 from the scene
|
3 years ago |
Nico de Poel
|
158d5bc176
|
Perform render scaling by manipulating the Camera viewport rect, which removes the need for a second game object and camera altogether.
This eliminates the stupid full screen quad drawing that the second camera was doing, while also making the entire setup a lot simpler.
|
3 years ago |
Nico de Poel
|
c1326fc261
|
Added some comments to the main FSR2 classes
|
3 years ago |
Nico de Poel
|
62d1d41d2d
|
Stripped Fsr2Dispatcher of most of its functionality, and moved it over to Fsr2Controller
|
3 years ago |
Nico de Poel
|
a9997e1a02
|
Moved Fsr2Dispatcher into Fsr2Controller source file and made it internal. Placed everything into the FidelityFX namespace.
|
3 years ago |
Nico de Poel
|
747ac54528
|
Renaming SubsampleTest and Fsr2Controller to Fsr2Controller and Fsr2Dispatcher, respectively
|
3 years ago |
Nico de Poel
|
3de40f6fe6
|
Cleaned up Fsr2Controller ahead of major refactor
|
3 years ago |
Nico de Poel
|
86c16e3694
|
- Replaced all input/output parameters with RenderTargetIdentifiers, allowing more flexibility in how these resources are assigned
- Cleaned up main MonoBehaviour ahead of a big refactor, and added camera event-based command buffers to set opaque-only and motion vector resources
|
3 years ago |
Nico de Poel
|
776700e837
|
Allow input textures to be set outside of FSR2 context dispatch, opening up new avenues for optimizations.
Started with setting motion vectors and output RT directly from the Unity command buffer, blitting to the destination RT only when necessary.
|
3 years ago |
Nico de Poel
|
f184be7b62
|
Some minor optimizations and cleanup
|
3 years ago |
Nico de Poel
|
903c2f71f3
|
Updated code to make it compatible with Unity 2020.1, i.e. the oldest version that's technically usable.
|
3 years ago |
Nico de Poel
|
12b5791cd2
|
Enabled 16-bit floating point support by changing the unused 1D Texture option into an FP16 option, which makes its usage configurable by the game dev.
Also included the workaround to force FP32 in the accumulate pass on Nvidia cards.
|
3 years ago |
Nico de Poel
|
5a638974b6
|
Removed the Native quality mode option again. It doesn't actually look that good, and I'd like to keep the 0 enum value reserved for "Off"
|
3 years ago |
Nico de Poel
|
e08a8f9c22
|
Playing around with resetting and recreating FSR context upon resolution or quality mode change. Seems to be working quite well.
|
3 years ago |
Nico de Poel
|
dafae40776
|
Further tweaks to camera jitter parameters and now IT'S WORKING!! 🥳
|
3 years ago |
Nico de Poel
|
25f1742728
|
Fixes to jitter which at least produces a stable picture now. Still not actually right, but making progress.
|
3 years ago |
Nico de Poel
|
1ca5a36f3e
|
Cleanup and minor details
|
3 years ago |
Nico de Poel
|
6b74532793
|
Some cleanup and a few small details
|
3 years ago |
Nico de Poel
|
650e805af8
|
Combined color and depth into a single dispatch parameter, which makes it easier to follow what's going on at the various stages.
|
3 years ago |
Nico de Poel
|
c184748907
|
Separate out depth from the color buffer using RenderTextureSubElement, which does work now.
This whittles down the additional blitting to just motion vectors, with only a single shader/material required.
|
3 years ago |
Nico de Poel
|
c0a3b81d84
|
Simplified gathering of color, depth and motion vector RTs by using the game camera texture directly, and blitting just before dispatch.
This gets rid of all the OnRenderImage song and dance in the game camera component, and requires less keeping track of instance variables.
|
3 years ago |
Nico de Poel
|
d607b1bf5a
|
Apply jitter offset to dispatch parameters
|
3 years ago |
Nico de Poel
|
34598f3900
|
Moved default exposure and reactive resources to Fsr2Context
|
3 years ago |
Nico de Poel
|
934a3d60fa
|
Implemented depth clip pass. Solved the problem of UAV/SRV name mismatch by monkey-patching the relevant shaders. Added default reactive mask.
|
3 years ago |
Nico de Poel
|
2f5eaf48ba
|
Bit of cleanup and moving stuff around
|
3 years ago |
Nico de Poel
|
b15e3b9c39
|
Use temporary render textures for storing color, depth and motion vectors copied from the game camera.
|
3 years ago |
Nico de Poel
|
834c396321
|
Color, depth and motion vectors are now provided as regular texture inputs to the compute shaders, by blitting them from the game camera ahead of time.
|
3 years ago |
Nico de Poel
|
1b41f6b2d7
|
Provide pipelines with the entire context description, which makes intiialization a bit simpler. Also provide it when registering resources so that the corrext *max* render size can be used. Started on the reconstruct depth pipeline.
|
3 years ago |
Nico de Poel
|
9489a19cd8
|
Progress on managing resources. Compute luminance pyramid shader is starting to do something.
Also looked at the Lanczos LUT resource and ran into some roadblocks there.
|
3 years ago |
Nico de Poel
|
4d6a47a03c
|
Reworked creation and dispatch to use description classes to pass parameters, designed similar to how the original FSR2 library does things, but adapted slightly to fit the Unity context.
|
3 years ago |
Nico de Poel
|
fc233b935f
|
Moved all compute shader-related code to the Fsr2Context class, renamed FSR2Thing to Fsr2Controller and made the callbacks a static field in the Fsr2 class.
It's becoming more clear now who is responsible for what, and where things should be implemented.
|
3 years ago |