当前位置: 首页 > article >正文

UnityURP 自定义PostProcess之深度图应用

UnityURP 自定义PostProcess之深度图

  • 前言
  • 项目
    • Shader代码获取深度图
    • ASE连线获取深度图

前言

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

移动相机
场景渐变

项目

Shader代码获取深度图

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连线获取深度图

ASE方式


http://www.kler.cn/a/457411.html

相关文章:

  • SAP 01-初识AMDP(ABAP-Managed Database Procedure)
  • 微信开发工具git提交到码云
  • leetcode 面试经典 150 题:轮转数组
  • Elasticsearch Serverless中的数据流自动分片深度解析
  • 【Rust自学】9.4. 什么时候该使用panic!
  • 「Mac畅玩鸿蒙与硬件54」UI互动应用篇31 - 滑动解锁屏幕功能
  • Nginx的性能分析与调优简介
  • template<typename Func, typename = void> 在类模板中的应用
  • windows 上安装nginx , 启停脚本
  • 【LeetCode: 83. 删除排序链表中的重复元素 + 链表】
  • Kafka 都有哪些特点?
  • 高质量 Next.js 后台管理模板源码分享,开发者必备
  • vue之axios基本使用
  • OpenHarmony-5.PM 子系统(2)
  • 【人工智能】基于Python和OpenCV实现实时人脸识别系统:从基础到应用
  • PyPika:Python SQL 查询构建器
  • Java删除文件夹
  • 【微服务】SpringBoot 自定义消息转换器使用详解
  • java 加密算法
  • ubuntu linux 更新软件源、在线下载软件、离线安装软件
  • 【Spring】 Bean 注入 HttpServletRequest 能保证线程安全的原理
  • Huggingface数据集采样之后得到的arrow文件无法用Dataset.load_from_disk加载解决方法
  • 第3关:简单通讯录管理系统之删除用户
  • .NetCore WebAPI 导入、导出Excel文件
  • html+css+js网页设计 美食 家美食1个页面
  • Day32 # 和 ## 运算符