4 changed files with 143 additions and 0 deletions
-
13Assets/Scenes/SampleScenePPV2.unity
-
3Assets/Scenes/SampleScenePPV2_Profiles/Main Camera Profile.asset
-
116Assets/Scripts/DebugDumper.cs
-
11Assets/Scripts/DebugDumper.cs.meta
@ -0,0 +1,116 @@ |
|||
// Copyright (c) 2023 Nico de Poel
|
|||
//
|
|||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
|||
// of this software and associated documentation files (the "Software"), to deal
|
|||
// in the Software without restriction, including without limitation the rights
|
|||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|||
// copies of the Software, and to permit persons to whom the Software is
|
|||
// furnished to do so, subject to the following conditions:
|
|||
//
|
|||
// The above copyright notice and this permission notice shall be included in all
|
|||
// copies or substantial portions of the Software.
|
|||
//
|
|||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|||
// THE SOFTWARE.
|
|||
|
|||
using System; |
|||
using System.Collections; |
|||
using System.Collections.Generic; |
|||
using System.IO; |
|||
using System.Reflection; |
|||
using System.Text; |
|||
using FidelityFX; |
|||
using UnityEngine; |
|||
using UnityEngine.Rendering.PostProcessing; |
|||
|
|||
public class DebugDumper : MonoBehaviour |
|||
{ |
|||
private PostProcessLayer _layer; |
|||
|
|||
private float _scaleFactor = 1.0f; |
|||
private float _lastScaleTime = 0f; |
|||
|
|||
void Start() |
|||
{ |
|||
var sb = new StringBuilder("SystemInfo:\n"); |
|||
foreach (var property in typeof(SystemInfo).GetProperties(BindingFlags.Static | BindingFlags.Public)) |
|||
{ |
|||
sb.AppendLine($"- {property.Name} = {property.GetValue(null)}"); |
|||
} |
|||
|
|||
Debug.Log(sb); |
|||
|
|||
_layer = GetComponent<PostProcessLayer>(); |
|||
} |
|||
|
|||
void Update() |
|||
{ |
|||
if (Input.GetKeyDown(KeyCode.F12)) |
|||
{ |
|||
string path = Path.Combine(Directory.GetCurrentDirectory(), $"screenshot-{DateTime.Now:yyyyMMdd-HHmmss}.png"); |
|||
ScreenCapture.CaptureScreenshot(path); |
|||
Debug.Log($"Screenshot saved to: {path}"); |
|||
} |
|||
|
|||
if (_layer == null) |
|||
return; |
|||
|
|||
if (Input.GetButtonDown("Fire1")) |
|||
{ |
|||
_layer.antialiasingMode = _layer.antialiasingMode != PostProcessLayer.Antialiasing.SuperResolution ? PostProcessLayer.Antialiasing.SuperResolution : PostProcessLayer.Antialiasing.None; |
|||
} |
|||
|
|||
if (Input.GetButtonDown("Fire2")) |
|||
{ |
|||
int quality = (int)_layer.superResolution.qualityMode; |
|||
quality = (quality + 1) % Enum.GetValues(typeof(Fsr2.QualityMode)).Length; |
|||
_layer.superResolution.qualityMode = (Fsr2.QualityMode)quality; |
|||
} |
|||
|
|||
if (Input.GetButtonDown("Fire3")) |
|||
{ |
|||
_layer.superResolution.exposureSource = |
|||
_layer.superResolution.exposureSource != SuperResolution.ExposureSource.Auto ? SuperResolution.ExposureSource.Auto : SuperResolution.ExposureSource.Default; |
|||
} |
|||
|
|||
if (Input.GetButtonDown("Jump")) |
|||
{ |
|||
_layer.superResolution.ResetHistory(); |
|||
} |
|||
|
|||
float vertical = Input.GetAxis("Vertical"); |
|||
if (vertical is < -0.3f or > 0.3f && Time.realtimeSinceStartup > _lastScaleTime + 0.5f) |
|||
{ |
|||
_scaleFactor += 0.1f * Math.Sign(vertical); |
|||
_scaleFactor = Mathf.Clamp(_scaleFactor, 0.1f, 1.0f); |
|||
|
|||
_lastScaleTime = Time.realtimeSinceStartup; |
|||
} |
|||
} |
|||
|
|||
private void OnGUI() |
|||
{ |
|||
if (_layer == null) |
|||
return; |
|||
|
|||
float scale = Screen.height / 720f; |
|||
if (scale > Mathf.Epsilon) |
|||
{ |
|||
GUI.matrix = Matrix4x4.Scale(new Vector3(scale, scale, scale)); |
|||
} |
|||
|
|||
GUILayout.Label($"FSR2: {(_layer.antialiasingMode == PostProcessLayer.Antialiasing.SuperResolution ? "Enabled" : "Disabled")}"); |
|||
GUILayout.Label($"Quality: {_layer.superResolution.qualityMode}"); |
|||
GUILayout.Label($"Auto-exposure: {(_layer.superResolution.exposureSource)}"); |
|||
GUILayout.Label($"Scale: {_scaleFactor:0.00}"); |
|||
if (Input.GetButton("Jump")) |
|||
{ |
|||
GUILayout.Label("Reset"); |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,11 @@ |
|||
fileFormatVersion: 2 |
|||
guid: 5bb24c513f6adb54fb19a88736376bce |
|||
MonoImporter: |
|||
externalObjects: {} |
|||
serializedVersion: 2 |
|||
defaultReferences: [] |
|||
executionOrder: 0 |
|||
icon: {instanceID: 0} |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue