Nico de Poel
004cbc9468
Fixed opaque-only copy buffer not keeping dynamic resolution scaling in mind.
2 years ago
Nico de Poel
415154ff54
- Separated FSR3 shader aggregate from the scriptable object, so that they can be embedded directly inside PostProcessResources
- No longer need to send callbacks to the FSR3 Context.
2 years ago
Nico de Poel
6b590b64af
Refactored loading of FSR3 compute shaders, using an aggregate object containing pre-loaded compute shaders instead of the old callbacks.
This gives more control to the application about how shaders are loaded/unloaded, and it fits in much more nicely with PPV2's resources.
2 years ago
Nico de Poel
b7b3842b95
Moved ResourceView out of the Fsr3Upscaler class and into the FidelityFX namespace, making usages of ResourceView a lot cleaner.
ResourceView is also generic enough that it could/should be reused for any other FidelityFX effects, so this move makes sense.
2 years ago
Nico de Poel
c71e487b15
Updated SuperResolution shaders and code to FSR3
2 years ago
Nico de Poel
7384b4486a
Fixed aspect ratio for dual-viewport setups
2 years ago
Nico de Poel
ad3966f3f6
Revert "Removed unnecessary aspect ratio lines that broke screen aspect when using non-standard viewports."
This reverts commit 79f2ab14bf .
2 years ago
Nico de Poel
79f2ab14bf
Removed unnecessary aspect ratio lines that broke screen aspect when using non-standard viewports.
2 years ago
Nico de Poel
8c7aeae4a7
Renamed RenderTargetView to ResourceView, which is a bit shorter to type and captures the essence well.
2 years ago
Nico de Poel
87f11b5f7c
Made all RenderTargetView fields non-nullable, and introduced a special Empty value for optional fields.
This removes the need for a lot of HasValue checks, especially since all fields will eventually get a value anyway, making those checks rather redundant. This also makes it clearer that all SRVs will get bound with a valid input texture, even if the input is optional.
2 years ago
Nico de Poel
b4ddc41f1b
Reworked input/output resource management using a new RenderTargetView struct, which encompasses all relevant data required to bind textures from various sources.
This eliminates the need for resource binding code outside of the core FSR2 classes, and makes the public API more strict and consistent. It also removes the need for the slightly awkward input/output resource debug checks.
2 years ago
Nico de Poel
6221c9ea1f
Use jittered camera projection for transparent rendering, as it does affect image reconstruction for certain specific effects, e.g. line renderers.
3 years ago
Nico de Poel
fe10480628
Refactored undo mipmap bias callback such that the RP integration does not need to maintain any bias offset state. Added NaN/Infinity check to the standard apply mipmap bias callback implementation.
3 years ago
Nico de Poel
f35b63f292
Made undoing of mipmap bias a distinct separate callback, so that it can be overridden by client apps. Skip textures that don't have mipmaps and thus don't have any use for a mipmap bias.
3 years ago
Nico de Poel
807b05f3d8
Fixed input resource size again and ffs stop stubbornly making this same mistake over and over again
3 years ago
Nico de Poel
bdca6950c4
Set the dynamic resolution flag when appropriate. It doesn't actually do anything, but it's good form to include it.
3 years ago
Nico de Poel
2bbb4f3a1f
Fixed incorrect scaled render size during FSR dispatch because of course, global variables and side-effects are bad m'kay.
At least dynamic scaling works now, so we can go from here.
3 years ago
Nico de Poel
f93e371c2c
Fixed camera viewport getting double scaled. This gets us back on track again.
3 years ago
Nico de Poel
9b15d2b84f
Reworked dynamic resolution to use ScalableBufferManager. Doesn't actually work correctly yet, but that'll be the next step.
3 years ago
Nico de Poel
4707ce8364
Implemented dynamic scaling through a custom scale factor. No ScalableBufferManager involved. Doesn't work nicely with MSVO AO, but otherwise does the job.
3 years ago
Nico de Poel
91c6d58147
Comments
3 years ago
Nico de Poel
2e67acb859
Eliminated unnecessary blit to an intermediate temp RT by allowing PPV2 screen space RTs to be created with random write access. This way FSR2 can output directly to the PPV2 effects chain.
3 years ago
Nico de Poel
2323ae88d5
Refactored opaque-only color texture to be provided as a property, instead of as a function argument. This keeps the Render() method in line with all of the other effects.
3 years ago
Nico de Poel
0d6ba46401
Fixed input resource size to match the lower internal render resolution. At the time this code gets called, the context's width and height will have already been increased to display resolution, which are the incorrect values for this field.
3 years ago
Nico de Poel
a9bd7a284f
Additional safety checks when applying mipmap bias offset
3 years ago
Nico de Poel
d1965ee786
Callbacks factory does not need to be static and should not be static (i.e. allow for different callbacks depending on context)
3 years ago
Nico de Poel
23d26aa84b
Allow a choice for exposure value source: either auto-calculated from FSR2 or Unity, or a manual texture, or the default value.
3 years ago
Nico de Poel
66cf9bf16a
Bits and bobs
3 years ago
Nico de Poel
397710f50f
Added support for auto-transparency & composition
3 years ago
Nico de Poel
ff34164ef3
Added support for auto-reactive mask generation, using a temp RT for storing the opaque-only image.
3 years ago
Nico de Poel
911d98f5a1
Implemented mipmap bias offsetting
3 years ago
Nico de Poel
e9eb1f4e31
Implemented upscaling using FSR2. Currently only works when outputting directly to camera target.
3 years ago
Nico de Poel
18e9781013
Added methods for manipulating camera viewport rect
3 years ago
Nico de Poel
05d00e0963
Use PP context source texture for FSR2 input color buffer
3 years ago
Nico de Poel
4982b959d5
Made a start on showing FSR2 parameters in the inspector
3 years ago
Nico de Poel
77c4cd4954
Removed duplicate camera jitter application, fixing the jitter issue from before.
Also cleaned up an unused render texture.
3 years ago
Nico de Poel
99cbc183f8
Initial integration of FSR2 into the post-processing pipeline, as just an alternative to the standard TAA option. No upscaling yet.
Some issues with jittering still remain, but the basic functionality is there.
3 years ago