11// © 2022 NVIDIA Corporation
22
33#include "Include/Shared.hlsli"
4+ #include "Include/RaytracingShared.hlsli"
45
56// Inputs
67NRI_RESOURCE ( Texture2D <float >, gIn_ViewZ, t, 0 , SET_OTHER );
@@ -22,7 +23,7 @@ NRI_FORMAT("unknown") NRI_RESOURCE( RWTexture2D<float3>, gOut_ComposedDiff, u, 0
2223NRI_FORMAT ("unknown" ) NRI_RESOURCE ( RWTexture2D <float4 >, gOut_ComposedSpec_ViewZ, u, 1 , SET_OTHER );
2324
2425[numthreads ( 16 , 16 , 1 )]
25- void main ( int2 pixelPos : SV_DispatchThreadId )
26+ void main ( int2 pixelPos : SV_DispatchThreadID )
2627{
2728 float2 pixelUv = float2 ( pixelPos + 0.5 ) * gInvRectSize;
2829
@@ -67,10 +68,6 @@ void main( int2 pixelPos : SV_DispatchThreadId )
6768 Ldirect = Ldirect * shadow + Lemi;
6869
6970 // G-buffer
70- float3 albedo, Rf0;
71- float4 baseColorMetalness = gIn_BaseColor_Metalness[ pixelPos ];
72- BRDF::ConvertBaseColorMetalnessToAlbedoRf0 ( baseColorMetalness.xyz, baseColorMetalness.w, albedo, Rf0 );
73-
7471 float3 Xv = Geometry::ReconstructViewPosition ( pixelUv, gCameraFrustum, viewZ, gOrthoMode );
7572 float3 V = gOrthoMode == 0 ? normalize ( Geometry::RotateVector ( gViewToWorld, 0 - Xv ) ) : gViewDirection.xyz;
7673
@@ -79,8 +76,8 @@ void main( int2 pixelPos : SV_DispatchThreadId )
7976 float4 spec = gIn_Spec[ pixelPos ];
8077
8178 #if ( NRD_MODE == SH )
82- float4 diff1 = gIn_DiffSh[ pixelPos ];
83- float4 spec1 = gIn_SpecSh[ pixelPos ];
79+ float3 diff1 = gIn_DiffSh[ pixelPos ].xyz ;
80+ float3 spec1 = gIn_SpecSh[ pixelPos ].xyz ;
8481 #endif
8582
8683 // Decode SH mode outputs
@@ -178,15 +175,13 @@ void main( int2 pixelPos : SV_DispatchThreadId )
178175 }
179176
180177 // Material modulation ( convert radiance back into irradiance )
181- float3 diffFactor, specFactor;
182- NRD_MaterialFactors ( N, V, albedo, Rf0, roughness, diffFactor, specFactor );
178+ float4 baseColorMetalness = gIn_BaseColor_Metalness[ pixelPos ];
183179
184- // We can combine radiance ( for everything ) and irradiance ( for hair ) in denoising if material ID test is enabled
185- if ( materialID == MATERIAL_ID_HAIR )
186- {
187- diffFactor = 1.0 ;
188- specFactor = 1.0 ;
189- }
180+ float3 albedo, Rf0;
181+ BRDF::ConvertBaseColorMetalnessToAlbedoRf0 ( baseColorMetalness.xyz, baseColorMetalness.w, albedo, Rf0 );
182+
183+ float3 diffFactor, specFactor;
184+ GetMaterialFactors ( N, V, albedo, Rf0, roughness, materialID == MATERIAL_ID_HAIR, diffFactor, specFactor );
190185
191186 // Composition
192187 float3 Ldiff = diff.xyz * diffFactor;
0 commit comments