做内容网站,阳江问政平台官网入口,网站建设整体情况介绍,深圳十大活动策划公司文章目录 前言一、在Shader中使用1、在使用深度图前申明2、在片元着色器中 二、在C#脚本中开启摄像机深度图三、最终效果 前言
在之前的文章中#xff0c;我们实现了URP下的深度图使用。
Unity中URP下使用屏幕坐标采样深度图
在这篇文章中#xff0c;我们来看一下BRP下深度… 文章目录 前言一、在Shader中使用1、在使用深度图前申明2、在片元着色器中 二、在C#脚本中开启摄像机深度图三、最终效果 前言
在之前的文章中我们实现了URP下的深度图使用。
Unity中URP下使用屏幕坐标采样深度图
在这篇文章中我们来看一下BRP下深度图怎么单独使用。 一、在Shader中使用
1、在使用深度图前申明 sampler2D _CameraDepthTexture; 2、在片元着色器中 float2 uv i.positionCS/ _ScreenParams.xy; float4 cameraDepthTex tex2D(_CameraDepthTexture,uv); float depthTex LinearEyeDepth(cameraDepthTex); return frac(depthTex); 二、在C#脚本中开启摄像机深度图 Camera.main.depthTextureMode DepthTextureMode.Depth; 三、最终效果 Shader MyShader/URP/P4_1
{Properties {_Color(Color,Color) (0,0,0,0)_MainTex(MainTex,2D) white{}}SubShader{Tags{//渲染类型RenderTypeTransparent//渲染队列QueueTransparent}//Blend One OneZWrite OffPass{CGPROGRAM#pragma vertex vert#pragma fragment frag// Pragmas#pragma target 2.0// Includes#include UnityCG.cginchalf4 _Color;sampler2D _MainTex;float4 _MainTex_ST;sampler2D _CameraDepthTexture;struct appdata{float3 positionOS : POSITION;float2 uv : TEXCOORD0;};struct v2f{float4 positionCS : SV_POSITION;float2 uv : TEXCOORD0;float4 screenPos : TEXCOORD1;};v2f vert(appdata v){v2f o;o.positionCS UnityObjectToClipPos(v.positionOS);o.uv TRANSFORM_TEX(v.uv,_MainTex);o.screenPos ComputeScreenPos(o.positionCS);return o;}//fixed4 frag(v2f i) : SV_TARGET//片元着色器half4 frag(v2f i) : SV_TARGET{half4 c;float4 mainTex tex2D(_MainTex,i.uv);//c _Color * mainTex;//深度图//float2 uv i.screenPos.xy / i.screenPos.w;float2 uv i.positionCS/ _ScreenParams.xy;float4 cameraDepthTex tex2D(_CameraDepthTexture,uv);float depthTex LinearEyeDepth(cameraDepthTex);return frac(depthTex);}ENDCG}}
}