Browse Source

Added script for debug display and input

stable
Nico de Poel 3 years ago
parent
commit
61ddd2a61b
  1. 13
      Assets/Scenes/SampleScenePPV2.unity
  2. 3
      Assets/Scenes/SampleScenePPV2_Profiles/Main Camera Profile.asset
  3. 116
      Assets/Scripts/DebugDumper.cs
  4. 11
      Assets/Scripts/DebugDumper.cs.meta

13
Assets/Scenes/SampleScenePPV2.unity

@ -231,6 +231,7 @@ GameObject:
- component: {fileID: 963194233} - component: {fileID: 963194233}
- component: {fileID: 963194232} - component: {fileID: 963194232}
- component: {fileID: 963194234} - component: {fileID: 963194234}
- component: {fileID: 963194235}
m_Layer: 6 m_Layer: 6
m_Name: Main Camera m_Name: Main Camera
m_TagString: MainCamera m_TagString: MainCamera
@ -418,6 +419,18 @@ MonoBehaviour:
m_EditorClassIdentifier: m_EditorClassIdentifier:
amplitude: 30 amplitude: 30
frequency: 0.5 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 --- !u!1001 &1313173313
PrefabInstance: PrefabInstance:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0

3
Assets/Scenes/SampleScenePPV2_Profiles/Main Camera Profile.asset

@ -40,6 +40,9 @@ MonoBehaviour:
thicknessModifier: thicknessModifier:
overrideState: 1 overrideState: 1
value: 3 value: 3
zBias:
overrideState: 0
value: 0.0001
directLightingStrength: directLightingStrength:
overrideState: 0 overrideState: 0
value: 0 value: 0

116
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<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");
}
}
}

11
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:
Loading…
Cancel
Save