You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
390 lines
16 KiB
390 lines
16 KiB
using System;
|
|
|
|
namespace UnityEngine.Rendering.HighDefinition
|
|
{
|
|
[Serializable]
|
|
[SupportedOnRenderPipeline(typeof(HDRenderPipelineAsset))]
|
|
[Categorization.CategoryInfo(Name = "R: Ray Tracing", Order = 1000), HideInInspector]
|
|
class HDRPRayTracingResources : IRenderPipelineResources
|
|
{
|
|
public int version => 0;
|
|
|
|
#region Reflection
|
|
[Header("Reflection")]
|
|
[SerializeField, ResourcePath("Runtime/RenderPipeline/Raytracing/Shaders/Reflections/RaytracingReflections.raytrace")]
|
|
private RayTracingShader m_ReflectionRayTracingRT;
|
|
|
|
public RayTracingShader reflectionRayTracingRT
|
|
{
|
|
get => m_ReflectionRayTracingRT;
|
|
set => this.SetValueAndNotify(ref m_ReflectionRayTracingRT, value);
|
|
}
|
|
|
|
[SerializeField, ResourcePath("Runtime/RenderPipeline/Raytracing/Shaders/Reflections/RaytracingReflections.compute")]
|
|
private ComputeShader m_ReflectionRayTracingCS;
|
|
|
|
public ComputeShader reflectionRayTracingCS
|
|
{
|
|
get => m_ReflectionRayTracingCS;
|
|
set => this.SetValueAndNotify(ref m_ReflectionRayTracingCS, value);
|
|
}
|
|
|
|
[SerializeField, ResourcePath("Runtime/RenderPipeline/Raytracing/Shaders/RaytracingReflectionFilter.compute")]
|
|
private ComputeShader m_ReflectionBilateralFilterCS;
|
|
public ComputeShader reflectionBilateralFilterCS
|
|
{
|
|
get => m_ReflectionBilateralFilterCS;
|
|
set => this.SetValueAndNotify(ref m_ReflectionBilateralFilterCS, value);
|
|
}
|
|
#endregion
|
|
|
|
#region Shadows
|
|
|
|
[Header("Shadows")]
|
|
[SerializeField, ResourcePath("Runtime/RenderPipeline/Raytracing/Shaders/Shadows/RaytracingShadow.raytrace")]
|
|
private RayTracingShader m_ShadowRayTracingRT;
|
|
public RayTracingShader shadowRayTracingRT
|
|
{
|
|
get => m_ShadowRayTracingRT;
|
|
set => this.SetValueAndNotify(ref m_ShadowRayTracingRT, value);
|
|
}
|
|
|
|
[SerializeField, ResourcePath("Runtime/RenderPipeline/Raytracing/Shaders/Shadows/RayTracingContactShadow.raytrace")]
|
|
private RayTracingShader m_ContactShadowRayTracingRT;
|
|
public RayTracingShader contactShadowRayTracingRT
|
|
{
|
|
get => m_ContactShadowRayTracingRT;
|
|
set => this.SetValueAndNotify(ref m_ContactShadowRayTracingRT, value);
|
|
}
|
|
|
|
[SerializeField, ResourcePath("Runtime/RenderPipeline/Raytracing/Shaders/Shadows/RaytracingShadow.compute")]
|
|
private ComputeShader m_ShadowRayTracingCS;
|
|
public ComputeShader shadowRayTracingCS
|
|
{
|
|
get => m_ShadowRayTracingCS;
|
|
set => this.SetValueAndNotify(ref m_ShadowRayTracingCS, value);
|
|
}
|
|
|
|
[SerializeField, ResourcePath("Runtime/RenderPipeline/Raytracing/Shaders/Shadows/RaytracingShadowFilter.compute")]
|
|
private ComputeShader m_ShadowFilterCS;
|
|
public ComputeShader shadowFilterCS
|
|
{
|
|
get => m_ShadowFilterCS;
|
|
set => this.SetValueAndNotify(ref m_ShadowFilterCS, value);
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region Recursive tracing
|
|
[Header("Recursive tracing")]
|
|
[SerializeField, ResourcePath("Runtime/RenderPipeline/Raytracing/Shaders/RaytracingRenderer.raytrace")]
|
|
private RayTracingShader m_ForwardRayTracing;
|
|
public RayTracingShader forwardRayTracing
|
|
{
|
|
get => m_ForwardRayTracing;
|
|
set => this.SetValueAndNotify(ref m_ForwardRayTracing, value);
|
|
}
|
|
#endregion
|
|
|
|
#region Light cluster
|
|
|
|
[Header("Light cluster")]
|
|
[SerializeField, ResourcePath("Runtime/RenderPipeline/Raytracing/Shaders/RaytracingLightCluster.compute")]
|
|
private ComputeShader m_LightClusterBuildCS;
|
|
public ComputeShader lightClusterBuildCS
|
|
{
|
|
get => m_LightClusterBuildCS;
|
|
set => this.SetValueAndNotify(ref m_LightClusterBuildCS, value);
|
|
}
|
|
|
|
[SerializeField, ResourcePath("Runtime/RenderPipeline/Raytracing/Shaders/DebugLightCluster.shader")]
|
|
private Shader m_LightClusterDebugS;
|
|
public Shader lightClusterDebugS
|
|
{
|
|
get => m_LightClusterDebugS;
|
|
set => this.SetValueAndNotify(ref m_LightClusterDebugS, value);
|
|
}
|
|
|
|
[SerializeField, ResourcePath("Runtime/RenderPipeline/Raytracing/Shaders/DebugLightCluster.compute")]
|
|
private ComputeShader m_LightClusterDebugCS;
|
|
public ComputeShader lightClusterDebugCS
|
|
{
|
|
get => m_LightClusterDebugCS;
|
|
set => this.SetValueAndNotify(ref m_LightClusterDebugCS, value);
|
|
}
|
|
#endregion
|
|
|
|
#region Indirect Diffuse
|
|
[Header("Indirect Diffuse")]
|
|
[SerializeField, ResourcePath("Runtime/RenderPipeline/Raytracing/Shaders/IndirectDiffuse/RaytracingIndirectDiffuse_APVOff.raytrace")]
|
|
private RayTracingShader m_IndirectDiffuseRayTracingOffRT;
|
|
public RayTracingShader indirectDiffuseRayTracingOffRT
|
|
{
|
|
get => m_IndirectDiffuseRayTracingOffRT;
|
|
set => this.SetValueAndNotify(ref m_IndirectDiffuseRayTracingOffRT, value);
|
|
}
|
|
|
|
[SerializeField, ResourcePath("Runtime/RenderPipeline/Raytracing/Shaders/IndirectDiffuse/RaytracingIndirectDiffuse_APVL1.raytrace")]
|
|
private RayTracingShader m_IndirectDiffuseRayTracingL1RT;
|
|
public RayTracingShader indirectDiffuseRayTracingL1RT
|
|
{
|
|
get => m_IndirectDiffuseRayTracingL1RT;
|
|
set => this.SetValueAndNotify(ref m_IndirectDiffuseRayTracingL1RT, value);
|
|
}
|
|
|
|
[SerializeField, ResourcePath("Runtime/RenderPipeline/Raytracing/Shaders/IndirectDiffuse/RaytracingIndirectDiffuse_APVL2.raytrace")]
|
|
private RayTracingShader m_IndirectDiffuseRaytracingL2RT;
|
|
public RayTracingShader indirectDiffuseRaytracingL2RT
|
|
{
|
|
get => m_IndirectDiffuseRaytracingL2RT;
|
|
set => this.SetValueAndNotify(ref m_IndirectDiffuseRaytracingL2RT, value);
|
|
}
|
|
|
|
[SerializeField, ResourcePath("Runtime/RenderPipeline/Raytracing/Shaders/IndirectDiffuse/RaytracingIndirectDiffuse.compute")]
|
|
private ComputeShader m_IndirectDiffuseRayTracingCS;
|
|
public ComputeShader indirectDiffuseRayTracingCS
|
|
{
|
|
get => m_IndirectDiffuseRayTracingCS;
|
|
set => this.SetValueAndNotify(ref m_IndirectDiffuseRayTracingCS, value);
|
|
}
|
|
#endregion
|
|
|
|
#region Ambient Occlusion
|
|
[Header("Ambient Occlusion")]
|
|
[SerializeField, ResourcePath("Runtime/RenderPipeline/Raytracing/Shaders/RaytracingAmbientOcclusion.raytrace")]
|
|
private RayTracingShader m_AoRayTracingRT;
|
|
public RayTracingShader aoRayTracingRT
|
|
{
|
|
get => m_AoRayTracingRT;
|
|
set => this.SetValueAndNotify(ref m_AoRayTracingRT, value);
|
|
}
|
|
|
|
[SerializeField, ResourcePath("Runtime/RenderPipeline/Raytracing/Shaders/RaytracingAmbientOcclusion.compute")]
|
|
private ComputeShader m_AoRayTracingCS;
|
|
public ComputeShader aoRayTracingCS
|
|
{
|
|
get => m_AoRayTracingCS;
|
|
set => this.SetValueAndNotify(ref m_AoRayTracingCS, value);
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region Sub-Surface Scattering
|
|
[Header("Sub-Surface Scattering")]
|
|
[SerializeField, ResourcePath("Runtime/RenderPipeline/Raytracing/Shaders/RayTracingSubSurface.raytrace")]
|
|
private RayTracingShader m_SubSurfaceRayTracingRT;
|
|
public RayTracingShader subSurfaceRayTracingRT
|
|
{
|
|
get => m_SubSurfaceRayTracingRT;
|
|
set => this.SetValueAndNotify(ref m_SubSurfaceRayTracingRT, value);
|
|
}
|
|
|
|
[SerializeField, ResourcePath("Runtime/RenderPipeline/Raytracing/Shaders/SubSurface/RayTracingSubSurface.compute")]
|
|
private ComputeShader m_SubSurfaceRayTracingCS;
|
|
public ComputeShader subSurfaceRayTracingCS
|
|
{
|
|
get => m_SubSurfaceRayTracingCS;
|
|
set => this.SetValueAndNotify(ref m_SubSurfaceRayTracingCS, value);
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region Denoising
|
|
[Header("Denoising")]
|
|
[SerializeField, ResourcePath("Runtime/RenderPipeline/Raytracing/Shaders/Denoising/SimpleDenoiser.compute")]
|
|
private ComputeShader m_SimpleDenoiserCS;
|
|
public ComputeShader simpleDenoiserCS
|
|
{
|
|
get => m_SimpleDenoiserCS;
|
|
set => this.SetValueAndNotify(ref m_SimpleDenoiserCS, value);
|
|
}
|
|
|
|
[SerializeField, ResourcePath("Runtime/RenderPipeline/Raytracing/Shaders/Denoising/ReflectionDenoiser.compute")]
|
|
private ComputeShader m_ReflectionDenoiserCS;
|
|
public ComputeShader reflectionDenoiserCS
|
|
{
|
|
get => m_ReflectionDenoiserCS;
|
|
set => this.SetValueAndNotify(ref m_ReflectionDenoiserCS, value);
|
|
}
|
|
|
|
[SerializeField, ResourcePath("Runtime/RenderPipeline/Raytracing/Shaders/Denoising/DiffuseShadowDenoiser.compute")]
|
|
private ComputeShader m_DiffuseShadowDenoiserCS;
|
|
public ComputeShader diffuseShadowDenoiserCS
|
|
{
|
|
get => m_DiffuseShadowDenoiserCS;
|
|
set => this.SetValueAndNotify(ref m_DiffuseShadowDenoiserCS, value);
|
|
}
|
|
#endregion
|
|
|
|
#region ReBlur
|
|
[Header("ReBlur")]
|
|
[SerializeField, ResourcePath("Runtime/RenderPipeline/Raytracing/Shaders/Denoising/ReBlur/ReBlur_PreBlur.compute")]
|
|
private ComputeShader m_ReblurPreBlurCS;
|
|
public ComputeShader reblurPreBlurCS
|
|
{
|
|
get => m_ReblurPreBlurCS;
|
|
set => this.SetValueAndNotify(ref m_ReblurPreBlurCS, value);
|
|
}
|
|
|
|
[SerializeField, ResourcePath("Runtime/RenderPipeline/Raytracing/Shaders/Denoising/ReBlur/ReBlur_TemporalAccumulation.compute")]
|
|
private ComputeShader m_ReblurTemporalAccumulationCS;
|
|
public ComputeShader reblurTemporalAccumulationCS
|
|
{
|
|
get => m_ReblurTemporalAccumulationCS;
|
|
set => this.SetValueAndNotify(ref m_ReblurTemporalAccumulationCS, value);
|
|
}
|
|
|
|
[SerializeField, ResourcePath("Runtime/RenderPipeline/Raytracing/Shaders/Denoising/ReBlur/ReBlur_MipGeneration.compute")]
|
|
private ComputeShader m_ReblurMipGenerationCS;
|
|
public ComputeShader reblurMipGenerationCS
|
|
{
|
|
get => m_ReblurMipGenerationCS;
|
|
set => this.SetValueAndNotify(ref m_ReblurMipGenerationCS, value);
|
|
}
|
|
|
|
[SerializeField, ResourcePath("Runtime/RenderPipeline/Raytracing/Shaders/Denoising/ReBlur/ReBlur_HistoryFix.compute")]
|
|
private ComputeShader m_ReblurHistoryFixCS;
|
|
public ComputeShader reblurHistoryFixCS
|
|
{
|
|
get => m_ReblurHistoryFixCS;
|
|
set => this.SetValueAndNotify(ref m_ReblurHistoryFixCS, value);
|
|
}
|
|
|
|
[SerializeField, ResourcePath("Runtime/RenderPipeline/Raytracing/Shaders/Denoising/ReBlur/ReBlur_Blur.compute")]
|
|
private ComputeShader m_ReblurBlurCS;
|
|
public ComputeShader reblurBlurCS
|
|
{
|
|
get => m_ReblurBlurCS;
|
|
set => this.SetValueAndNotify(ref m_ReblurBlurCS, value);
|
|
}
|
|
|
|
[SerializeField, ResourcePath("Runtime/RenderPipeline/Raytracing/Shaders/Denoising/ReBlur/ReBlur_PostBlur.compute")]
|
|
private ComputeShader m_ReblurPostBlurCS;
|
|
public ComputeShader reblurPostBlurCS
|
|
{
|
|
get => m_ReblurPostBlurCS;
|
|
set => this.SetValueAndNotify(ref m_ReblurPostBlurCS, value);
|
|
}
|
|
|
|
[SerializeField, ResourcePath("Runtime/RenderPipeline/Raytracing/Shaders/Denoising/ReBlur/ReBlur_CopyHistory.compute")]
|
|
private ComputeShader m_ReblurCopyHistoryCS;
|
|
public ComputeShader reblurCopyHistoryCS
|
|
{
|
|
get => m_ReblurCopyHistoryCS;
|
|
set => this.SetValueAndNotify(ref m_ReblurCopyHistoryCS, value);
|
|
}
|
|
|
|
[SerializeField, ResourcePath("Runtime/RenderPipeline/Raytracing/Shaders/Denoising/ReBlur/ReBlur_TemporalStabilization.compute")]
|
|
private ComputeShader m_ReblurTemporalStabilizationCS;
|
|
public ComputeShader reblurTemporalStabilizationCS
|
|
{
|
|
get => m_ReblurTemporalStabilizationCS;
|
|
set => this.SetValueAndNotify(ref m_ReblurTemporalStabilizationCS, value);
|
|
}
|
|
#endregion
|
|
|
|
#region Deferred Lighting
|
|
|
|
[Header("Deferred Lighting")]
|
|
[SerializeField, ResourcePath("Runtime/RenderPipeline/Raytracing/Shaders/Deferred/RaytracingGBuffer.raytrace")]
|
|
private RayTracingShader m_GBufferRayTracingRT;
|
|
public RayTracingShader gBufferRayTracingRT
|
|
{
|
|
get => m_GBufferRayTracingRT;
|
|
set => this.SetValueAndNotify(ref m_GBufferRayTracingRT, value);
|
|
}
|
|
|
|
[SerializeField, ResourcePath("Runtime/RenderPipeline/Raytracing/Shaders/Deferred/RaytracingDeferred.compute")]
|
|
private ComputeShader m_DeferredRayTracingCS;
|
|
public ComputeShader deferredRayTracingCS
|
|
{
|
|
get => m_DeferredRayTracingCS;
|
|
set => this.SetValueAndNotify(ref m_DeferredRayTracingCS, value);
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
#region Path Tracing
|
|
[Header("Path Tracing")]
|
|
[SerializeField, ResourcePath("Runtime/RenderPipeline/PathTracing/Shaders/PathTracingMain.raytrace")]
|
|
private RayTracingShader m_PathTracingRT;
|
|
public RayTracingShader pathTracingRT
|
|
{
|
|
get => m_PathTracingRT;
|
|
set => this.SetValueAndNotify(ref m_PathTracingRT, value);
|
|
}
|
|
|
|
[SerializeField, ResourcePath("Runtime/RenderPipeline/PathTracing/Shaders/PathTracingSkySamplingData.compute")]
|
|
private ComputeShader m_PathTracingSkySamplingDataCS;
|
|
public ComputeShader pathTracingSkySamplingDataCS
|
|
{
|
|
get => m_PathTracingSkySamplingDataCS;
|
|
set => this.SetValueAndNotify(ref m_PathTracingSkySamplingDataCS, value);
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region Ray Marching
|
|
[Header("Ray Marching")]
|
|
[SerializeField, ResourcePath("Runtime/RenderPipeline/Raytracing/Shaders/RayMarching.compute")]
|
|
private ComputeShader m_RayMarchingCS;
|
|
public ComputeShader rayMarchingCS
|
|
{
|
|
get => m_RayMarchingCS;
|
|
set => this.SetValueAndNotify(ref m_RayMarchingCS, value);
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region Ray Binning
|
|
[Header("Ray Binning")]
|
|
[SerializeField, ResourcePath("Runtime/RenderPipeline/Raytracing/Shaders/Common/RayBinning.compute")]
|
|
private ComputeShader m_RayBinningCS;
|
|
public ComputeShader rayBinningCS
|
|
{
|
|
get => m_RayBinningCS;
|
|
set => this.SetValueAndNotify(ref m_RayBinningCS, value);
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
#region Ray count
|
|
[Header("Ray count")]
|
|
[SerializeField, ResourcePath("Runtime/RenderPipeline/Raytracing/Shaders/CountTracedRays.compute")]
|
|
private ComputeShader m_CountTracedRaysCS;
|
|
public ComputeShader countTracedRaysCS
|
|
{
|
|
get => m_CountTracedRaysCS;
|
|
set => this.SetValueAndNotify(ref m_CountTracedRaysCS, value);
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region Filtering for reflections
|
|
[Header("Filtering for reflections")]
|
|
[SerializeField, ResourcePath("Runtime/RenderPipelineResources/Texture/ReflectionKernelMapping.png")]
|
|
public Texture2D m_ReflectionFilterMappingTexture;
|
|
|
|
public Texture2D reflectionFilterMappingTexture
|
|
{
|
|
get => m_ReflectionFilterMappingTexture;
|
|
set => this.SetValueAndNotify(ref m_ReflectionFilterMappingTexture, value);
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region Debug
|
|
[Header("Debug")]
|
|
[SerializeField, ResourcePath("Runtime/RenderPipeline/Raytracing/Shaders/RTASDebug.raytrace")]
|
|
public RayTracingShader m_RtasDebugRT;
|
|
|
|
public RayTracingShader debugRTASRT
|
|
{
|
|
get => m_RtasDebugRT;
|
|
set => this.SetValueAndNotify(ref m_RtasDebugRT, value);
|
|
}
|
|
#endregion
|
|
}
|
|
}
|