From 61ddd2a61b7ed761129ae3315db17ef715b4b0b6 Mon Sep 17 00:00:00 2001 From: Nico de Poel Date: Sat, 10 Jun 2023 14:36:11 +0200 Subject: [PATCH] Added script for debug display and input --- Assets/Scenes/SampleScenePPV2.unity | 13 ++ .../Main Camera Profile.asset | 3 + Assets/Scripts/DebugDumper.cs | 116 ++++++++++++++++++ Assets/Scripts/DebugDumper.cs.meta | 11 ++ 4 files changed, 143 insertions(+) create mode 100644 Assets/Scripts/DebugDumper.cs create mode 100644 Assets/Scripts/DebugDumper.cs.meta diff --git a/Assets/Scenes/SampleScenePPV2.unity b/Assets/Scenes/SampleScenePPV2.unity index 6a9dc24..1da98f7 100644 --- a/Assets/Scenes/SampleScenePPV2.unity +++ b/Assets/Scenes/SampleScenePPV2.unity @@ -231,6 +231,7 @@ GameObject: - component: {fileID: 963194233} - component: {fileID: 963194232} - component: {fileID: 963194234} + - component: {fileID: 963194235} m_Layer: 6 m_Name: Main Camera m_TagString: MainCamera @@ -418,6 +419,18 @@ MonoBehaviour: m_EditorClassIdentifier: amplitude: 30 frequency: 0.5 +--- !u!114 &963194235 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 963194225} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5bb24c513f6adb54fb19a88736376bce, type: 3} + m_Name: + m_EditorClassIdentifier: --- !u!1001 &1313173313 PrefabInstance: m_ObjectHideFlags: 0 diff --git a/Assets/Scenes/SampleScenePPV2_Profiles/Main Camera Profile.asset b/Assets/Scenes/SampleScenePPV2_Profiles/Main Camera Profile.asset index 6923fe2..7b86378 100644 --- a/Assets/Scenes/SampleScenePPV2_Profiles/Main Camera Profile.asset +++ b/Assets/Scenes/SampleScenePPV2_Profiles/Main Camera Profile.asset @@ -40,6 +40,9 @@ MonoBehaviour: thicknessModifier: overrideState: 1 value: 3 + zBias: + overrideState: 0 + value: 0.0001 directLightingStrength: overrideState: 0 value: 0 diff --git a/Assets/Scripts/DebugDumper.cs b/Assets/Scripts/DebugDumper.cs new file mode 100644 index 0000000..4c19a74 --- /dev/null +++ b/Assets/Scripts/DebugDumper.cs @@ -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(); + } + + 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"); + } + } +} diff --git a/Assets/Scripts/DebugDumper.cs.meta b/Assets/Scripts/DebugDumper.cs.meta new file mode 100644 index 0000000..7a77f71 --- /dev/null +++ b/Assets/Scripts/DebugDumper.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 5bb24c513f6adb54fb19a88736376bce +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: