Browse Source

Bits and bobs

mac-autoexp
Nico de Poel 3 years ago
parent
commit
0f5f3d9a69
  1. 1
      .gitignore
  2. 2
      Assets/Scenes/SampleScene.unity
  3. 8
      Assets/Scripts/Fsr2.cs
  4. 1
      Assets/Scripts/Fsr2Context.cs
  5. 19
      Assets/Scripts/SubsampleTest.cs
  6. 1
      Packages/manifest.json
  7. 9
      Packages/packages-lock.json
  8. 5
      ProjectSettings/EditorBuildSettings.asset
  9. 2
      ProjectSettings/QualitySettings.asset

1
.gitignore

@ -6,3 +6,4 @@ Logs/
obj/ obj/
Temp/ Temp/
UserSettings/ UserSettings/
Builds/

2
Assets/Scenes/SampleScene.unity

@ -315,7 +315,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 955cb66a9ecc20441a7e32934c9b4690, type: 3} m_Script: {fileID: 11500000, guid: 955cb66a9ecc20441a7e32934c9b4690, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
renderScale: 0.5
qualityMode: 3
enableJitter: 1 enableJitter: 1
--- !u!114 &963194230 --- !u!114 &963194230
MonoBehaviour: MonoBehaviour:

8
Assets/Scripts/Fsr2.cs

@ -45,18 +45,19 @@ namespace FidelityFX
return 2.0f; return 2.0f;
case QualityMode.UltraPerformance: case QualityMode.UltraPerformance:
return 3.0f; return 3.0f;
case QualityMode.Native:
default: default:
return 1.0f; return 1.0f;
} }
} }
public static void GetRenderResolutionFromQualityMode( public static void GetRenderResolutionFromQualityMode(
out uint renderWidth, out uint renderHeight,
out int renderWidth, out int renderHeight,
int displayWidth, int displayHeight, QualityMode qualityMode) int displayWidth, int displayHeight, QualityMode qualityMode)
{ {
float ratio = GetUpscaleRatioFromQualityMode(qualityMode); float ratio = GetUpscaleRatioFromQualityMode(qualityMode);
renderWidth = (uint)(displayWidth / ratio);
renderHeight = (uint)(displayHeight / ratio);
renderWidth = (int)(displayWidth / ratio);
renderHeight = (int)(displayHeight / ratio);
} }
public static float GetMipmapBiasOffset(float renderScale) public static float GetMipmapBiasOffset(float renderScale)
@ -100,6 +101,7 @@ namespace FidelityFX
public enum QualityMode public enum QualityMode
{ {
Native = 0,
Quality = 1, Quality = 1,
Balanced = 2, Balanced = 2,
Performance = 3, Performance = 3,

1
Assets/Scripts/Fsr2Context.cs

@ -120,6 +120,7 @@ namespace FidelityFX
bool resetAccumulation = dispatchParams.Reset || _firstExecution; bool resetAccumulation = dispatchParams.Reset || _firstExecution;
_firstExecution = false; _firstExecution = false;
// TODO: auto-exposure flag
if (dispatchParams.Exposure == null) dispatchParams.Exposure = _resources.DefaultExposure; if (dispatchParams.Exposure == null) dispatchParams.Exposure = _resources.DefaultExposure;
if (dispatchParams.Reactive == null) dispatchParams.Reactive = _resources.DefaultReactive; if (dispatchParams.Reactive == null) dispatchParams.Reactive = _resources.DefaultReactive;
Fsr2Pipeline.RegisterResources(_commandBuffer, _contextDescription, dispatchParams); Fsr2Pipeline.RegisterResources(_commandBuffer, _contextDescription, dispatchParams);

19
Assets/Scripts/SubsampleTest.cs

@ -13,15 +13,18 @@ public class SubsampleTest : MonoBehaviour
private Camera outputCamera; private Camera outputCamera;
[SerializeField] [SerializeField]
private float renderScale = 0.5f;
private Fsr2.QualityMode qualityMode;
[SerializeField] [SerializeField]
private bool enableJitter; private bool enableJitter;
private Fsr2Controller _fsr2Controller; private Fsr2Controller _fsr2Controller;
private float _renderScale;
private void OnEnable() private void OnEnable()
{ {
_renderScale = 1.0f / Fsr2.GetUpscaleRatioFromQualityMode(qualityMode);
gameCamera = GetComponent<Camera>(); gameCamera = GetComponent<Camera>();
if (outputCameraObject == null) if (outputCameraObject == null)
{ {
@ -36,7 +39,7 @@ public class SubsampleTest : MonoBehaviour
_fsr2Controller = outputCameraObject.AddComponent<Fsr2Controller>(); _fsr2Controller = outputCameraObject.AddComponent<Fsr2Controller>();
_fsr2Controller.gameCamera = gameCamera; _fsr2Controller.gameCamera = gameCamera;
_fsr2Controller.outputCamera = outputCamera; _fsr2Controller.outputCamera = outputCamera;
_fsr2Controller.renderScale = renderScale;
_fsr2Controller.renderScale = _renderScale;
_fsr2Controller.enabled = true; _fsr2Controller.enabled = true;
//outputCamera.CopyFrom(gameCamera); //outputCamera.CopyFrom(gameCamera);
@ -49,8 +52,10 @@ public class SubsampleTest : MonoBehaviour
_fsr2Controller.enabled = true; _fsr2Controller.enabled = true;
} }
Fsr2.GetRenderResolutionFromQualityMode(out var renderWidth, out var renderHeight, Screen.width, Screen.height, qualityMode);
gameCamera.targetTexture = new RenderTexture( gameCamera.targetTexture = new RenderTexture(
(int)(Screen.width * renderScale), (int)(Screen.height * renderScale),
renderWidth, renderHeight,
24, // Can we copy depth value from original camera? 24, // Can we copy depth value from original camera?
RenderTextureFormat.ARGBHalf); // Can we copy format from original camera? Or renderer quality settings? RenderTextureFormat.ARGBHalf); // Can we copy format from original camera? Or renderer quality settings?
@ -61,13 +66,13 @@ public class SubsampleTest : MonoBehaviour
// Adjust texture mipmap LOD bias by log2(renderResolution/displayResolution) - 1.0; // Adjust texture mipmap LOD bias by log2(renderResolution/displayResolution) - 1.0;
// May need to leave this to the game dev, as we don't know which textures do and don't belong to the 3D scene // May need to leave this to the game dev, as we don't know which textures do and don't belong to the 3D scene
float biasOffset = Fsr2.GetMipmapBiasOffset(renderScale);
float biasOffset = Fsr2.GetMipmapBiasOffset(_renderScale);
Fsr2.GlobalCallbacks.ApplyMipmapBias(biasOffset); Fsr2.GlobalCallbacks.ApplyMipmapBias(biasOffset);
} }
private void OnDisable() private void OnDisable()
{ {
float biasOffset = Fsr2.GetMipmapBiasOffset(renderScale);
float biasOffset = Fsr2.GetMipmapBiasOffset(_renderScale);
Fsr2.GlobalCallbacks.ApplyMipmapBias(-biasOffset); Fsr2.GlobalCallbacks.ApplyMipmapBias(-biasOffset);
gameCamera.targetTexture.Release(); gameCamera.targetTexture.Release();
@ -109,6 +114,10 @@ public class SubsampleTest : MonoBehaviour
_fsr2Controller.SetJitterOffset(new Vector2(jitterX, jitterY)); _fsr2Controller.SetJitterOffset(new Vector2(jitterX, jitterY));
} }
else
{
_fsr2Controller.SetJitterOffset(Vector2.zero);
}
} }
private void OnPostRender() private void OnPostRender()

1
Packages/manifest.json

@ -5,6 +5,7 @@
"com.unity.ide.rider": "3.0.16", "com.unity.ide.rider": "3.0.16",
"com.unity.ide.visualstudio": "2.0.16", "com.unity.ide.visualstudio": "2.0.16",
"com.unity.ide.vscode": "1.2.5", "com.unity.ide.vscode": "1.2.5",
"com.unity.memoryprofiler": "0.7.1-preview.1",
"com.unity.test-framework": "1.1.31", "com.unity.test-framework": "1.1.31",
"com.unity.textmeshpro": "3.0.6", "com.unity.textmeshpro": "3.0.6",
"com.unity.timeline": "1.6.4", "com.unity.timeline": "1.6.4",

9
Packages/packages-lock.json

@ -62,6 +62,15 @@
"dependencies": {}, "dependencies": {},
"url": "https://packages.unity.com" "url": "https://packages.unity.com"
}, },
"com.unity.memoryprofiler": {
"version": "0.7.1-preview.1",
"depth": 0,
"source": "registry",
"dependencies": {
"com.unity.editorcoroutines": "1.0.0"
},
"url": "https://packages.unity.com"
},
"com.unity.nuget.newtonsoft-json": { "com.unity.nuget.newtonsoft-json": {
"version": "3.0.2", "version": "3.0.2",
"depth": 2, "depth": 2,

5
ProjectSettings/EditorBuildSettings.asset

@ -4,5 +4,8 @@
EditorBuildSettings: EditorBuildSettings:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
serializedVersion: 2 serializedVersion: 2
m_Scenes: []
m_Scenes:
- enabled: 1
path: Assets/Scenes/SampleScene.unity
guid: 9fc0d4010bbf28b4594072e72b8655ab
m_configObjects: {} m_configObjects: {}

2
ProjectSettings/QualitySettings.asset

@ -201,7 +201,7 @@ QualitySettings:
skinWeights: 4 skinWeights: 4
textureQuality: 0 textureQuality: 0
anisotropicTextures: 2 anisotropicTextures: 2
antiAliasing: 2
antiAliasing: 0
softParticles: 1 softParticles: 1
softVegetation: 1 softVegetation: 1
realtimeReflectionProbes: 1 realtimeReflectionProbes: 1

Loading…
Cancel
Save