1. 程式人生 > 其它 >Unity 透明物體渲染 深度圖景深

Unity 透明物體渲染 深度圖景深

技術標籤:unity3d

預設不論是URP還是buildin都不會渲染深度的,這時候 景深 是不會顯示的

在這裡插入圖片描述

URP

  • 渲染物體的時候增加一個材質(size改為2)
  • 然後加入下面的shader
Shader "URP_Custom/RenderDepth"
{
    SubShader
    {
    
        Pass
        {
                Name "DepthOnly"
                Tags{"LightMode" = "DepthOnly"
} ZWrite On ColorMask 0 // Cull[_Cull] HLSLPROGRAM // Required to compile gles 2.0 with standard srp library #pragma prefer_hlslcc gles #pragma exclude_renderers d3d11_9x #pragma
target 2.0
#pragma vertex DepthOnlyVertex #pragma fragment DepthOnlyFragment // ------------------------------------- // Material Keywords #pragma shader_feature _ALPHATEST_ON #pragma shader_feature _GLOSSINESS_FROM_BASE_ALPHA
//-------------------------------------- // GPU Instancing #pragma multi_compile_instancing #include "Packages/com.unity.render-pipelines.universal/Shaders/SimpleLitInput.hlsl" #include "Packages/com.unity.render-pipelines.universal/Shaders/DepthOnlyPass.hlsl" ENDHLSL } } }

Buildin

和URP做法差不多,都是新增一個材質

然後單獨寫一個 opaque discard的shader就行
引用一個大佬的連結
https://blog.csdn.net/SnoopyNa2Co3/article/details/98972120