Upload project file
This commit is contained in:
27
Runtime/HDRP/Shaders/DecodeDepthNormals.hlsl
Normal file
27
Runtime/HDRP/Shaders/DecodeDepthNormals.hlsl
Normal file
@@ -0,0 +1,27 @@
|
||||
//#include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/NormalBuffer.hlsl"
|
||||
|
||||
#ifndef DECODEDEPTHNORMALS_INCLUDED
|
||||
#define DECODEDEPTHNORMALS_INCLUDED
|
||||
|
||||
|
||||
inline float DecodeFloatRG(float2 enc) {
|
||||
float2 kDecodeDot = float2(1.0, 1 / 255.0);
|
||||
return dot(enc, kDecodeDot);
|
||||
}
|
||||
|
||||
inline float3 DecodeViewNormalStereo(float4 enc4) {
|
||||
float kScale = 1.7777;
|
||||
float3 nn = enc4.xyz * float3(2 * kScale, 2 * kScale, 0) + float3(-kScale, -kScale, 1);
|
||||
float g = 2.0 / dot(nn.xyz, nn.xyz);
|
||||
float3 n;
|
||||
n.xy = g * nn.xy;
|
||||
n.z = g - 1;
|
||||
return n;
|
||||
}
|
||||
|
||||
inline void DecodeDepthNormal(float4 enc, out float depth, out float3 normal) {
|
||||
depth = DecodeFloatRG(enc.zw);
|
||||
normal = DecodeViewNormalStereo(enc);
|
||||
}
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user