UnityURP 自定义PostProcess之深度图应用

UnityURP 自定义PostProcess之深度图

前言

Unity URP中利用深度图可以实现以下两种简单的效果,其他设置参考
UnityURP 自定义PostProcess


项目

Shader代码获取深度图

c 复制代码
Shader "CustomPost/URPScreenTintShader"
{
    Properties
    {
        _MainTex ("Texture", 2D) = "white" {}
        _OverlayColor ("Tint Color", Color) = (1,1,1,1)
        _Intensity ("Intensity", Range(0,1)) = 1
    }
    SubShader
    {
        Tags { "RenderType"="Opaque" "RenderPipeline"="UniversalPipeline" }

        Pass
        {
            HLSLPROGRAM
            #pragma vertex vert
            #pragma fragment frag

            #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
            #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/SurfaceInput.hlsl"
            #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/DeclareDepthTexture.hlsl"

            struct appdata
            {
                float4 vertex : POSITION;
                float2 uv : TEXCOORD0;
            };

            struct v2f
            {
                float4 vertex : SV_POSITION;
                float2 uv : TEXCOORD0;
            };

            sampler2D _MainTex;
            float _Intensity;
            float4 _OverlayColor;

            v2f vert (appdata v)
            {
                v2f o;
                o.vertex = TransformObjectToHClip(v.vertex);
                o.uv = v.uv;
                return o;
            }

            float4 frag (v2f i) : SV_Target
            {
                // 采样深度纹理
                float rawDepth = SampleSceneDepth(i.uv);
                
                // 转换为线性深度
                float depth = LinearEyeDepth(rawDepth, _ZBufferParams);
                
                float4 finalColor=half4(depth,depth,depth,1);
                return finalColor;
            }
            ENDHLSL
        }
    }
}

ASE连线获取深度图

相关推荐
红黑色的圣西罗10 小时前
LoxodonFramework实现Lua侧绑定UI元素的原理
unity·lua
浅陌sss14 小时前
Unity中实现转盘抽奖效果(二)
unity·游戏引擎
浅陌sss1 天前
Unity 实现Canvas显示3D物体
unity·游戏引擎
weixin_448065311 天前
Unity学习笔记(四)如何实现角色攻击、组合攻击
笔记·学习·unity
Thomas_YXQ2 天前
Unity3D Huatuo:零成本高性能的全平台原生C#热更新方案详解
开发语言·游戏·unity·unity3d
向宇it2 天前
【从零开始入门unity游戏开发之——C#篇43】C#补充知识——值类型和引用类型汇总补充、变量的生命周期与性能优化、值类型和引用类型组合使用
java·开发语言·unity·性能优化·c#·游戏引擎
王维志2 天前
Excel转Json编辑器工具
unity·json·excel
Thomas_YXQ2 天前
Unity3D 基于GraphView实现的节点编辑器框架详解
unity·编辑器·unity3d·游戏开发·热更新
奔跑的犀牛先生2 天前
unity学习3:如何从github下载开源的unity项目
unity
weixin_448065313 天前
Unity学习笔记(五)什么是状态机
笔记·学习·unity