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