surface shader獲取像素深度差值

        void vert (inout appdata_full v, out Input i) {
            UNITY_INITIALIZE_OUTPUT(Input, i);

            i.proj = ComputeScreenPos(UnityObjectToClipPos(v.vertex));
            COMPUTE_EYEDEPTH(i.proj.z);
        }

        void surf (Input IN, inout SurfaceOutput o) {

            half m_depth = LinearEyeDepth(tex2Dproj (_CameraDepthTexture, IN.proj).r);
            half deltaDepth = m_depth - IN.proj.z;

        }

  基於深度視差能夠用來作不少效果,好比水的深度效果之類的。app

相關文章
相關標籤/搜索