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.
 
 
 
 

29 lines
1.1 KiB

#ifndef STANDARD_LIT_HLSL
#define STANDARD_LIT_HLSL
#include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Raytracing/Shaders/RayTracingCommon.hlsl"
void EncodeIntoStandardGBuffer( StandardBSDFData standardBSDFData
, out GBufferType0 outGBuffer0
, out GBufferType1 outGBuffer1
, out GBufferType2 outGBuffer2
, out GBufferType3 outGBuffer3
)
{
// GBuffer0
outGBuffer0 = float4(standardBSDFData.baseColor, standardBSDFData.specularOcclusion);
// GBuffer1
NormalData normalData;
normalData.normalWS = standardBSDFData.normalWS;
normalData.perceptualRoughness = standardBSDFData.perceptualRoughness;
EncodeIntoNormalBuffer(normalData, outGBuffer1);
// GBuffer2
outGBuffer2.rgb = FastLinearToSRGB(standardBSDFData.fresnel0);
outGBuffer2.a = PackFloatInt8bit(standardBSDFData.coatMask, GBUFFER_LIT_STANDARD, 8);
// GBuffer3
outGBuffer3 = float4(standardBSDFData.emissiveAndBaked, 0.0);
outGBuffer3 *= GetCurrentExposureMultiplier();
}
#endif // STANDARD_LIT_HLSL