浏览代码

Add a static function to register framesettings to debug windows

/feature-ReflectionProbeFit
Sebastien Lagarde 7 年前
当前提交
9bf2a15f
共有 4 个文件被更改,包括 123 次插入100 次删除
  1. 11
      ScriptableRenderPipeline/HDRenderPipeline/Camera/HDAdditionalCameraData.cs
  2. 22
      ScriptableRenderPipeline/HDRenderPipeline/Debug/DebugDisplay.cs
  3. 55
      ScriptableRenderPipeline/HDRenderPipeline/HDRenderPipeline.cs
  4. 135
      ScriptableRenderPipeline/HDRenderPipeline/RenderPipeline/FrameSettings.cs

11
ScriptableRenderPipeline/HDRenderPipeline/Camera/HDAdditionalCameraData.cs


return m_effectiveFrameSettings;
}
Camera m_camera;
bool isRegisterDebug = false;
Camera m_camera;
void OnEnable()
{

m_camera = GetComponent<Camera>();
m_camera.allowHDR = false;
m_effectiveFrameSettings = frameSettings;
frameSettings.CopyTo(m_effectiveFrameSettings);
if (!isRegisterDebug)
{
FrameSettings.RegisterDebug(m_camera.name, GetEffectiveFrameSettings());
isRegisterDebug = true;
}
}
}
}

22
ScriptableRenderPipeline/HDRenderPipeline/Debug/DebugDisplay.cs


lightingDebugSettings.debugLightingMode = value;
}
public void RegisterDebug(FrameSettings defaultFrameSettings)
public void RegisterDebug()
{
DebugMenuManager.instance.AddDebugItem<float>("Display Stats", "Frame Rate", () => 1.0f / Time.smoothDeltaTime, null, DebugItemFlag.DynamicDisplay);
DebugMenuManager.instance.AddDebugItem<float>("Display Stats", "Frame Time (ms)", () => Time.smoothDeltaTime * 1000.0f, null, DebugItemFlag.DynamicDisplay);

DebugMenuManager.instance.AddDebugItem<LightingDebugPanel, LightLoop.TileClusterCategoryDebug>(kTileClusterCategoryDebug,() => lightingDebugSettings.tileClusterDebugByCategory, (value) => lightingDebugSettings.tileClusterDebugByCategory = (LightLoop.TileClusterCategoryDebug)value);
DebugMenuManager.instance.AddDebugItem<int>("Rendering", kFullScreenDebugMode, () => (int)fullScreenDebugMode, (value) => fullScreenDebugMode = (FullScreenDebugMode)value, DebugItemFlag.None, new DebugItemHandlerIntEnum(DebugDisplaySettings.renderingFullScreenDebugStrings, DebugDisplaySettings.renderingFullScreenDebugValues));
DebugMenuManager.instance.AddDebugItem<bool>("Default Framesettings", "Enable Subsurface Scattering", () => defaultFrameSettings.lightingSettings.enableSSSAndTransmission, (value) => defaultFrameSettings.lightingSettings.enableSSSAndTransmission = (bool)value);
DebugMenuManager.instance.AddDebugItem<bool>("Default Framesettings", "EnableShadow", () => defaultFrameSettings.lightingSettings.enableShadow, (value) => defaultFrameSettings.lightingSettings.enableShadow = (bool)value);
DebugMenuManager.instance.AddDebugItem<bool>("Default Framesettings", "Enable Opaque", () => defaultFrameSettings.renderSettings.enableOpaqueObjects, (value) => defaultFrameSettings.renderSettings.enableOpaqueObjects = (bool)value);
DebugMenuManager.instance.AddDebugItem<bool>("Default Framesettings", "Enable Transparent", () => defaultFrameSettings.renderSettings.enableTransparentObjects, (value) => defaultFrameSettings.renderSettings.enableTransparentObjects = (bool)value);
DebugMenuManager.instance.AddDebugItem<bool>("Default Framesettings", "Enable Atmospheric Scattering",() => defaultFrameSettings.renderSettings.enableAtmosphericScattering, (value) => defaultFrameSettings.renderSettings.enableAtmosphericScattering = (bool)value);
DebugMenuManager.instance.AddDebugItem<bool>("Default Framesettings", "Enable Distortion",() => defaultFrameSettings.renderSettings.enableDistortion, (value) => defaultFrameSettings.renderSettings.enableDistortion = (bool)value);
DebugMenuManager.instance.AddDebugItem<bool>("Default Framesettings", "Enable Stereo Rendering",() => defaultFrameSettings.renderSettings.enableStereo, (value) => defaultFrameSettings.renderSettings.enableStereo = (bool)value);
DebugMenuManager.instance.AddDebugItem<bool>("Default Framesettings", "Enable Async Compute", () => defaultFrameSettings.renderSettings.enableAsyncCompute, (value) => defaultFrameSettings.renderSettings.enableAsyncCompute = (bool)value);
DebugMenuManager.instance.AddDebugItem<bool>("Default Framesettings", "Forward Only", () => defaultFrameSettings.renderSettings.enableForwardRenderingOnly, (value) => defaultFrameSettings.renderSettings.enableForwardRenderingOnly = (bool)value);
DebugMenuManager.instance.AddDebugItem<bool>("Default Framesettings", "Deferred Depth Prepass", () => defaultFrameSettings.renderSettings.enableDepthPrepassWithDeferredRendering, (value) => defaultFrameSettings.renderSettings.enableDepthPrepassWithDeferredRendering = (bool)value);
DebugMenuManager.instance.AddDebugItem<bool>("Default Framesettings", "Deferred Depth Prepass ATest Only", () => defaultFrameSettings.renderSettings.enableAlphaTestOnlyInDeferredPrepass, (value) => defaultFrameSettings.renderSettings.enableAlphaTestOnlyInDeferredPrepass = (bool)value);
DebugMenuManager.instance.AddDebugItem<bool>("Default Framesettings", "Enable Tile/Cluster", () => defaultFrameSettings.lightLoopSettings.enableTileAndCluster, (value) => defaultFrameSettings.lightLoopSettings.enableTileAndCluster = (bool)value);
DebugMenuManager.instance.AddDebugItem<bool>("Default Framesettings", "Enable Big Tile", () => defaultFrameSettings.lightLoopSettings.enableBigTilePrepass, (value) => defaultFrameSettings.lightLoopSettings.enableBigTilePrepass = (bool)value);
DebugMenuManager.instance.AddDebugItem<bool>("Default Framesettings", "Enable Compute Lighting", () => defaultFrameSettings.lightLoopSettings.enableComputeLightEvaluation, (value) => defaultFrameSettings.lightLoopSettings.enableComputeLightEvaluation = (bool)value);
DebugMenuManager.instance.AddDebugItem<bool>("Default Framesettings", "Enable Light Classification", () => defaultFrameSettings.lightLoopSettings.enableComputeLightVariants, (value) => defaultFrameSettings.lightLoopSettings.enableComputeLightVariants = (bool)value);
DebugMenuManager.instance.AddDebugItem<bool>("Default Framesettings", "Enable Material Classification", () => defaultFrameSettings.lightLoopSettings.enableComputeMaterialVariants, (value) => defaultFrameSettings.lightLoopSettings.enableComputeMaterialVariants = (bool)value);
}
public void OnValidate()

55
ScriptableRenderPipeline/HDRenderPipeline/HDRenderPipeline.cs


m_SkyManager.Build(asset, m_IBLFilterGGX);
m_SkyManager.skySettings = skySettingsToUse;
m_DebugDisplaySettings.RegisterDebug(m_Asset.GetEffectiveDefaultFrameSettings());
m_DebugDisplaySettings.RegisterDebug();
FrameSettings.RegisterDebug("Default Camera", m_Asset.GetEffectiveDefaultFrameSettings());
m_DebugFullScreenTempRT = HDShaderIDs._DebugFullScreenTexture;
// Init all samplers

bool enableBakeShadowMask;
using (new ProfilingSample(cmd, "TP_PrepareLightsForGPU", GetSampler(CustomSamplerId.TPPrepareLightsForGPU)))
{
enableBakeShadowMask = m_LightLoop.PrepareLightsForGPU(cmd, m_ShadowSettings, m_CullResults, camera);
enableBakeShadowMask = m_LightLoop.PrepareLightsForGPU(cmd, m_ShadowSettings, m_CullResults, camera) && m_FrameSettings.renderSettings.enableShadowMask;
}
ConfigureForShadowMask(enableBakeShadowMask, cmd);

RenderForward(m_CullResults, hdCamera, renderContext, cmd, ForwardPass.Transparent);
RenderForwardError(m_CullResults, camera, renderContext, cmd, ForwardPass.Transparent);
// Fill depth buffer to reduce artifact for transparent object
// Fill depth buffer to reduce artifact for transparent object during postprocess
// Planar and real time cubemap doesn't need post process and render in FP16
if (camera.cameraType == CameraType.Reflection)
{
using (new ProfilingSample(cmd, "Blit to final RT", GetSampler(CustomSamplerId.BlitToFinalRT)))
{
// Simple blit
cmd.Blit(m_CameraColorBufferRT, BuiltinRenderTextureType.CameraTarget);
}
}
else
{
RenderGaussianPyramidColor(camera, cmd, renderContext, FullScreenDebugMode.FinalColorPyramid);
RenderGaussianPyramidColor(camera, cmd, renderContext, FullScreenDebugMode.FinalColorPyramid);
// TODO: Check with VFX team.
// Rendering distortion here have off course lot of artifact.
// But resolving at each objects that write in distortion is not possible (need to sort transparent, render those that do not distort, then resolve, then etc...)
// Instead we chose to apply distortion at the end after we cumulate distortion vector and desired blurriness.
AccumulateDistortion(m_CullResults, camera, renderContext, cmd);
RenderDistortion(cmd, m_Asset.renderPipelineResources);
AccumulateDistortion(m_CullResults, camera, renderContext, cmd);
RenderDistortion(cmd, m_Asset.renderPipelineResources);
RenderPostProcesses(hdCamera, cmd, postProcessLayer);
}
RenderFinal(hdCamera, cmd, postProcessLayer);
}
RenderDebug(hdCamera, cmd);

void RenderGaussianPyramidColor(Camera camera, CommandBuffer cmd, ScriptableRenderContext renderContext, FullScreenDebugMode debugMode)
{
if (debugMode == FullScreenDebugMode.PreRefractionColorPyramid)
{
if (!m_FrameSettings.renderSettings.enableRoughRefraction)
return;
}
else if (debugMode == FullScreenDebugMode.FinalColorPyramid)
{
// TODO: This final Gaussian pyramid can be reuse by Bloom and SSR in the future, so disable it only if there is no postprocess AND no distortion
if (!m_FrameSettings.renderSettings.enableDistortion && !m_FrameSettings.renderSettings.enablePostprocess && !m_FrameSettings.lightingSettings.enableSSR)
return;
}
using (new ProfilingSample(cmd, "Gaussian Pyramid Color", GetSampler(CustomSamplerId.GaussianPyramidColor)))
{
int w = camera.pixelWidth;

}
}
void RenderPostProcesses(HDCamera hdcamera, CommandBuffer cmd, PostProcessLayer layer)
void RenderFinal(HDCamera hdcamera, CommandBuffer cmd, PostProcessLayer layer)
using (new ProfilingSample(cmd, "Post-processing", GetSampler(CustomSamplerId.PostProcessing)))
if (m_FrameSettings.renderSettings.enablePostprocess && CoreUtils.IsPostProcessingActive(layer))
if (m_FrameSettings.renderSettings.enablePostprocess && CoreUtils.IsPostProcessingActive(layer))
using (new ProfilingSample(cmd, "Post-processing", GetSampler(CustomSamplerId.PostProcessing)))
{
// Note: Here we don't use GetDepthTexture() to get the depth texture but m_CameraDepthStencilBuffer as the Forward transparent pass can
// write extra data to deal with DOF/MB

layer.Render(context);
}
else
}
else
{
using (new ProfilingSample(cmd, "Blit to final RT", GetSampler(CustomSamplerId.BlitToFinalRT)))
// Simple blit
cmd.Blit(m_CameraColorBufferRT, BuiltinRenderTextureType.CameraTarget);
}
}

135
ScriptableRenderPipeline/HDRenderPipeline/RenderPipeline/FrameSettings.cs


public bool enableMSAA = false;
// Setup by system
public bool enableMaterialDisplayDebug = false;
public bool enableShadowMask = false;
}

public void CopyTo(FrameSettings frameSettings)
{
frameSettings.lightingSettings.enableShadow = this.lightingSettings.enableShadow;
frameSettings.lightingSettings.enableSSR = this.lightingSettings.enableSSR;
frameSettings.lightingSettings.enableSSAO = this.lightingSettings.enableSSAO;
frameSettings.lightingSettings.enableShadow = this.lightingSettings.enableShadow;
frameSettings.lightingSettings.enableSSR = this.lightingSettings.enableSSR;
frameSettings.lightingSettings.enableSSAO = this.lightingSettings.enableSSAO;
frameSettings.lightingSettings.diffuseGlobalDimmer = this.lightingSettings.diffuseGlobalDimmer;
frameSettings.lightingSettings.specularGlobalDimmer = this.lightingSettings.specularGlobalDimmer;
frameSettings.lightingSettings.diffuseGlobalDimmer = this.lightingSettings.diffuseGlobalDimmer;
frameSettings.lightingSettings.specularGlobalDimmer = this.lightingSettings.specularGlobalDimmer;
frameSettings.renderSettings.enableForwardRenderingOnly = this.renderSettings.enableForwardRenderingOnly;
frameSettings.renderSettings.enableDepthPrepassWithDeferredRendering = this.renderSettings.enableDepthPrepassWithDeferredRendering;
frameSettings.renderSettings.enableAlphaTestOnlyInDeferredPrepass = this.renderSettings.enableAlphaTestOnlyInDeferredPrepass;
frameSettings.renderSettings.enableForwardRenderingOnly = this.renderSettings.enableForwardRenderingOnly;
frameSettings.renderSettings.enableDepthPrepassWithDeferredRendering = this.renderSettings.enableDepthPrepassWithDeferredRendering;
frameSettings.renderSettings.enableAlphaTestOnlyInDeferredPrepass = this.renderSettings.enableAlphaTestOnlyInDeferredPrepass;
frameSettings.renderSettings.enableTransparentPrePass = this.renderSettings.enableTransparentPrePass;
frameSettings.renderSettings.enableMotionVectors = this.renderSettings.enableMotionVectors;
frameSettings.renderSettings.enableDBuffer = this.renderSettings.enableDBuffer;
frameSettings.renderSettings.enableAtmosphericScattering = this.renderSettings.enableAtmosphericScattering;
frameSettings.renderSettings.enableRoughRefraction = this.renderSettings.enableRoughRefraction;
frameSettings.renderSettings.enableTransparentPostPass = this.renderSettings.enableTransparentPostPass;
frameSettings.renderSettings.enableDistortion = this.renderSettings.enableDistortion;
frameSettings.renderSettings.enablePostprocess = this.renderSettings.enablePostprocess;
frameSettings.renderSettings.enableTransparentPrePass = this.renderSettings.enableTransparentPrePass;
frameSettings.renderSettings.enableMotionVectors = this.renderSettings.enableMotionVectors;
frameSettings.renderSettings.enableDBuffer = this.renderSettings.enableDBuffer;
frameSettings.renderSettings.enableAtmosphericScattering = this.renderSettings.enableAtmosphericScattering;
frameSettings.renderSettings.enableRoughRefraction = this.renderSettings.enableRoughRefraction;
frameSettings.renderSettings.enableTransparentPostPass = this.renderSettings.enableTransparentPostPass;
frameSettings.renderSettings.enableDistortion = this.renderSettings.enableDistortion;
frameSettings.renderSettings.enablePostprocess = this.renderSettings.enablePostprocess;
frameSettings.renderSettings.enableStereo = this.renderSettings.enableStereo;
frameSettings.renderSettings.enableForwardRenderingOnly = this.renderSettings.enableForwardRenderingOnly;
frameSettings.renderSettings.enableStereo = this.renderSettings.enableStereo;
frameSettings.renderSettings.enableForwardRenderingOnly = this.renderSettings.enableForwardRenderingOnly;
frameSettings.renderSettings.enableOpaqueObjects = this.renderSettings.enableOpaqueObjects;
frameSettings.renderSettings.enableTransparentObjects = this.renderSettings.enableTransparentObjects;
frameSettings.renderSettings.enableOpaqueObjects = this.renderSettings.enableOpaqueObjects;
frameSettings.renderSettings.enableTransparentObjects = this.renderSettings.enableTransparentObjects;
frameSettings.renderSettings.enableAsyncCompute = this.renderSettings.enableAsyncCompute;
frameSettings.renderSettings.enableAsyncCompute = this.renderSettings.enableAsyncCompute;
frameSettings.renderSettings.enableMSAA = this.renderSettings.enableMSAA;
frameSettings.renderSettings.enableMSAA = this.renderSettings.enableMSAA;
frameSettings.renderSettings.enableMaterialDisplayDebug = this.renderSettings.enableMaterialDisplayDebug;
frameSettings.renderSettings.enableShadowMask = this.renderSettings.enableShadowMask;
frameSettings.renderSettings.enableShadowMask = this.renderSettings.enableShadowMask;
this.lightLoopSettings.CopyTo(frameSettings.lightLoopSettings);
}

// When rendering reflection probe we disable specular as it is view dependent
if (camera.cameraType == CameraType.Reflection)
{
aggregate.lightingSettings.diffuseGlobalDimmer = 1.0f;
aggregate.lightingSettings.diffuseGlobalDimmer = 1.0f;
aggregate.lightingSettings.diffuseGlobalDimmer = 1.0f;
aggregate.lightingSettings.diffuseGlobalDimmer = 1.0f;
aggregate.lightingSettings.enableShadow = frameSettings.lightingSettings.enableShadow;
aggregate.lightingSettings.enableSSR = frameSettings.lightingSettings.enableSSR && globalFrameSettings.lightingSettings.supportSSR;
aggregate.lightingSettings.enableSSAO = frameSettings.lightingSettings.enableSSAO && globalFrameSettings.lightingSettings.supportSSAO;
aggregate.lightingSettings.enableSSSAndTransmission = frameSettings.lightingSettings.enableSSSAndTransmission && globalFrameSettings.lightingSettings.supportSSSAndTransmission;
aggregate.lightingSettings.enableShadow = frameSettings.lightingSettings.enableShadow;
aggregate.lightingSettings.enableSSR = camera.cameraType == CameraType.Reflection ? false : frameSettings.lightingSettings.enableSSR && globalFrameSettings.lightingSettings.supportSSR;
aggregate.lightingSettings.enableSSAO = frameSettings.lightingSettings.enableSSAO && globalFrameSettings.lightingSettings.supportSSAO;
aggregate.lightingSettings.enableSSSAndTransmission = camera.cameraType == CameraType.Reflection ? false : frameSettings.lightingSettings.enableSSSAndTransmission && globalFrameSettings.lightingSettings.supportSSSAndTransmission;
aggregate.renderSettings.enableForwardRenderingOnly = frameSettings.renderSettings.enableForwardRenderingOnly || GL.wireframe;
aggregate.renderSettings.enableDepthPrepassWithDeferredRendering = frameSettings.renderSettings.enableDepthPrepassWithDeferredRendering;
aggregate.renderSettings.enableAlphaTestOnlyInDeferredPrepass = frameSettings.renderSettings.enableAlphaTestOnlyInDeferredPrepass;
aggregate.renderSettings.enableForwardRenderingOnly = frameSettings.renderSettings.enableForwardRenderingOnly || GL.wireframe;
aggregate.renderSettings.enableDepthPrepassWithDeferredRendering = frameSettings.renderSettings.enableDepthPrepassWithDeferredRendering;
aggregate.renderSettings.enableAlphaTestOnlyInDeferredPrepass = frameSettings.renderSettings.enableAlphaTestOnlyInDeferredPrepass;
aggregate.renderSettings.enableTransparentPrePass = frameSettings.renderSettings.enableTransparentPrePass;
aggregate.renderSettings.enableMotionVectors = frameSettings.renderSettings.enableMotionVectors;
aggregate.renderSettings.enableDBuffer = frameSettings.renderSettings.enableDBuffer && globalFrameSettings.renderSettings.supportDBuffer;
aggregate.renderSettings.enableAtmosphericScattering = frameSettings.renderSettings.enableAtmosphericScattering;
aggregate.renderSettings.enableRoughRefraction = frameSettings.renderSettings.enableRoughRefraction;
aggregate.renderSettings.enableTransparentPostPass = frameSettings.renderSettings.enableTransparentPostPass;
aggregate.renderSettings.enableDistortion = frameSettings.renderSettings.enableDistortion;
aggregate.renderSettings.enablePostprocess = frameSettings.renderSettings.enablePostprocess;
aggregate.renderSettings.enableTransparentPrePass = frameSettings.renderSettings.enableTransparentPrePass;
aggregate.renderSettings.enableMotionVectors = camera.cameraType == CameraType.Reflection ? false : frameSettings.renderSettings.enableMotionVectors;
aggregate.renderSettings.enableDBuffer = frameSettings.renderSettings.enableDBuffer && globalFrameSettings.renderSettings.supportDBuffer;
aggregate.renderSettings.enableAtmosphericScattering = frameSettings.renderSettings.enableAtmosphericScattering;
aggregate.renderSettings.enableRoughRefraction = frameSettings.renderSettings.enableRoughRefraction;
aggregate.renderSettings.enableTransparentPostPass = frameSettings.renderSettings.enableTransparentPostPass;
aggregate.renderSettings.enableDistortion = camera.cameraType == CameraType.Reflection ? false : frameSettings.renderSettings.enableDistortion;
// Planar and real time cubemap doesn't need post process and render in FP16
aggregate.renderSettings.enablePostprocess = camera.cameraType == CameraType.Reflection ? false : frameSettings.renderSettings.enablePostprocess;
aggregate.renderSettings.enableStereo = frameSettings.renderSettings.enableStereo && UnityEngine.XR.XRSettings.isDeviceActive && (camera.stereoTargetEye == StereoTargetEyeMask.Both);
aggregate.renderSettings.enableStereo = camera.cameraType == CameraType.Reflection ? false : frameSettings.renderSettings.enableStereo && UnityEngine.XR.XRSettings.isDeviceActive && (camera.stereoTargetEye == StereoTargetEyeMask.Both);
aggregate.renderSettings.enableForwardRenderingOnly = aggregate.renderSettings.enableForwardRenderingOnly || aggregate.renderSettings.enableStereo;
aggregate.renderSettings.enableForwardRenderingOnly = aggregate.renderSettings.enableForwardRenderingOnly || aggregate.renderSettings.enableStereo;
aggregate.renderSettings.enableAsyncCompute = frameSettings.renderSettings.enableAsyncCompute;
aggregate.renderSettings.enableAsyncCompute = frameSettings.renderSettings.enableAsyncCompute;
aggregate.renderSettings.enableOpaqueObjects = frameSettings.renderSettings.enableOpaqueObjects;
aggregate.renderSettings.enableTransparentObjects = frameSettings.renderSettings.enableTransparentObjects;
aggregate.renderSettings.enableOpaqueObjects = frameSettings.renderSettings.enableOpaqueObjects;
aggregate.renderSettings.enableTransparentObjects = frameSettings.renderSettings.enableTransparentObjects;
aggregate.renderSettings.enableMSAA = frameSettings.renderSettings.enableMSAA && globalFrameSettings.renderSettings.supportMSAA;
aggregate.renderSettings.enableMSAA = frameSettings.renderSettings.enableMSAA && globalFrameSettings.renderSettings.supportMSAA;
aggregate.renderSettings.enableMaterialDisplayDebug = false;
aggregate.renderSettings.enableShadowMask = globalFrameSettings.lightingSettings.supportShadowMask;
aggregate.renderSettings.enableShadowMask = globalFrameSettings.lightingSettings.supportShadowMask;
}
static public void RegisterDebug(String menuName, FrameSettings frameSettings)
{
// Register the camera into the debug menu
DebugMenuManager.instance.AddDebugItem<bool>(menuName, "Enable Shadow", () => frameSettings.lightingSettings.enableShadow, (value) => frameSettings.lightingSettings.enableShadow = (bool)value);
DebugMenuManager.instance.AddDebugItem<bool>(menuName, "Enable SSR", () => frameSettings.lightingSettings.enableSSR, (value) => frameSettings.lightingSettings.enableSSR = (bool)value);
DebugMenuManager.instance.AddDebugItem<bool>(menuName, "Enable SSAO", () => frameSettings.lightingSettings.enableSSR, (value) => frameSettings.lightingSettings.enableSSR = (bool)value);
DebugMenuManager.instance.AddDebugItem<bool>(menuName, "Enable SSS and Transmission", () => frameSettings.lightingSettings.enableSSSAndTransmission, (value) => frameSettings.lightingSettings.enableSSSAndTransmission = (bool)value);
DebugMenuManager.instance.AddDebugItem<bool>(menuName, "Forward Only", () => frameSettings.renderSettings.enableForwardRenderingOnly, (value) => frameSettings.renderSettings.enableForwardRenderingOnly = (bool)value);
DebugMenuManager.instance.AddDebugItem<bool>(menuName, "Deferred Depth Prepass", () => frameSettings.renderSettings.enableDepthPrepassWithDeferredRendering, (value) => frameSettings.renderSettings.enableDepthPrepassWithDeferredRendering = (bool)value);
DebugMenuManager.instance.AddDebugItem<bool>(menuName, "Deferred Depth Prepass ATest Only", () => frameSettings.renderSettings.enableAlphaTestOnlyInDeferredPrepass, (value) => frameSettings.renderSettings.enableAlphaTestOnlyInDeferredPrepass = (bool)value);
DebugMenuManager.instance.AddDebugItem<bool>(menuName, "Enable Transparent Prepass", () => frameSettings.renderSettings.enableTransparentPrePass, (value) => frameSettings.renderSettings.enableTransparentPrePass = (bool)value);
DebugMenuManager.instance.AddDebugItem<bool>(menuName, "Enable Motion Vectors", () => frameSettings.renderSettings.enableMotionVectors, (value) => frameSettings.renderSettings.enableMotionVectors = (bool)value);
DebugMenuManager.instance.AddDebugItem<bool>(menuName, "Enable DBuffer", () => frameSettings.renderSettings.enableDBuffer, (value) => frameSettings.renderSettings.enableDBuffer = (bool)value);
DebugMenuManager.instance.AddDebugItem<bool>(menuName, "Enable Atmospheric Scattering", () => frameSettings.renderSettings.enableAtmosphericScattering, (value) => frameSettings.renderSettings.enableAtmosphericScattering = (bool)value);
DebugMenuManager.instance.AddDebugItem<bool>(menuName, "Enable Rough Refraction", () => frameSettings.renderSettings.enableRoughRefraction, (value) => frameSettings.renderSettings.enableRoughRefraction = (bool)value);
DebugMenuManager.instance.AddDebugItem<bool>(menuName, "Enable Transparent Postpass", () => frameSettings.renderSettings.enableTransparentPostPass, (value) => frameSettings.renderSettings.enableTransparentPostPass = (bool)value);
DebugMenuManager.instance.AddDebugItem<bool>(menuName, "Enable Distortion", () => frameSettings.renderSettings.enableDistortion, (value) => frameSettings.renderSettings.enableDistortion = (bool)value);
DebugMenuManager.instance.AddDebugItem<bool>(menuName, "Enable Postprocess", () => frameSettings.renderSettings.enablePostprocess, (value) => frameSettings.renderSettings.enablePostprocess = (bool)value);
DebugMenuManager.instance.AddDebugItem<bool>(menuName, "Enable Stereo Rendering", () => frameSettings.renderSettings.enableStereo, (value) => frameSettings.renderSettings.enableStereo = (bool)value);
DebugMenuManager.instance.AddDebugItem<bool>(menuName, "Enable Async Compute", () => frameSettings.renderSettings.enableAsyncCompute, (value) => frameSettings.renderSettings.enableAsyncCompute = (bool)value);
DebugMenuManager.instance.AddDebugItem<bool>(menuName, "Enable Opaque Objects", () => frameSettings.renderSettings.enableOpaqueObjects, (value) => frameSettings.renderSettings.enableOpaqueObjects = (bool)value);
DebugMenuManager.instance.AddDebugItem<bool>(menuName, "Enable Transparent Objects", () => frameSettings.renderSettings.enableTransparentObjects, (value) => frameSettings.renderSettings.enableTransparentObjects = (bool)value);
DebugMenuManager.instance.AddDebugItem<bool>(menuName, "Enable MSAA", () => frameSettings.renderSettings.enableMSAA, (value) => frameSettings.renderSettings.enableMSAA = (bool)value);
DebugMenuManager.instance.AddDebugItem<bool>(menuName, "Enable ShadowMask", () => frameSettings.renderSettings.enableShadowMask, (value) => frameSettings.renderSettings.enableShadowMask = (bool)value);
DebugMenuManager.instance.AddDebugItem<bool>(menuName, "Enable Tile/Cluster", () => frameSettings.lightLoopSettings.enableTileAndCluster, (value) => frameSettings.lightLoopSettings.enableTileAndCluster = (bool)value);
DebugMenuManager.instance.AddDebugItem<bool>(menuName, "Enable Big Tile", () => frameSettings.lightLoopSettings.enableBigTilePrepass, (value) => frameSettings.lightLoopSettings.enableBigTilePrepass = (bool)value);
DebugMenuManager.instance.AddDebugItem<bool>(menuName, "Enable Compute Lighting", () => frameSettings.lightLoopSettings.enableComputeLightEvaluation, (value) => frameSettings.lightLoopSettings.enableComputeLightEvaluation = (bool)value);
DebugMenuManager.instance.AddDebugItem<bool>(menuName, "Enable Light Classification", () => frameSettings.lightLoopSettings.enableComputeLightVariants, (value) => frameSettings.lightLoopSettings.enableComputeLightVariants = (bool)value);
DebugMenuManager.instance.AddDebugItem<bool>(menuName, "Enable Material Classification", () => frameSettings.lightLoopSettings.enableComputeMaterialVariants, (value) => frameSettings.lightLoopSettings.enableComputeMaterialVariants = (bool)value);
}
}
}
正在加载...
取消
保存