[Unity URP] 深度图获取
在做原神渲染还原的时候一直想复刻等宽屏幕空间边缘光,但是获取的深度图一直是全黑的orz
其他可能的问题:
《Unity的URP项目中使用自定义shader导致材质消失的解决办法》-CSDN博客 注意也是要use Normal那个pass
后来发现是受到unity版本的影响 用的是unity 2021版
1)勾选depth texture

2)shader代码中
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/DeclareDepthTexture.hlsl"
3)查看Packages/Universal RP/shader/Lit.shader
官方案例中获取深度的部分:(注意要复制depthnormal,depthonly不管用)
Pass
{
Name "DepthNormals"
Tags{"LightMode" = "DepthNormals"}
ZWrite On
Cull[_Cull]
HLSLPROGRAM
#pragma exclude_renderers gles gles3 glcore
#pragma target 4.5
#pragma vertex DepthNormalsVertex
#pragma fragment DepthNormalsFragment
// -------------------------------------
// Material Keywords
#pragma shader_feature_local _NORMALMAP
#pragma shader_feature_local _PARALLAXMAP
#pragma shader_feature_local _ _DETAIL_MULX2 _DETAIL_SCALED
#pragma shader_feature_local_fragment _ALPHATEST_ON
#pragma shader_feature_local_fragment _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A
//--------------------------------------
// GPU Instancing
#pragma multi_compile_instancing
#pragma multi_compile _ DOTS_INSTANCING_ON
#include "Packages/com.unity.render-pipelines.universal/Shaders/LitInput.hlsl"
#include "Packages/com.unity.render-pipelines.universal/Shaders/LitDepthNormalsPass.hlsl"
ENDHLSL
}
4)结果如下:可以看到深度了


浙公网安备 33010602011771号