学习100个Unity Shader (17) --- 深度纹理

文章目录

  • 效果
  • shader部分
  • C# 部分
  • 理解
  • 参考

效果

在这里插入图片描述

shader部分

Shader "Example/DepthTexture"
{SubShader{Pass{CGPROGRAM#pragma vertex vert#pragma fragment frag#include "UnityCG.cginc"sampler2D _CameraDepthTexture;struct a2v{float4 pos : POSITION;float2 uv : TEXCOORD0;};struct v2f{float4 pos : POSITION;float2 uv : TEXCOORD0;};v2f vert (a2v i){v2f o;o.pos = UnityObjectToClipPos(i.pos);o.uv = i.uv;return o;}fixed4 frag (v2f i) : SV_Target{float depth = SAMPLE_DEPTH_TEXTURE(_CameraDepthTexture, i.uv);depth = Linear01Depth(depth);return fixed4(depth, depth, depth, 1);}ENDCG}}FallBack "Diffuse"
}

C# 部分

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class DepthTexture : MonoBehaviour {}
{public Shader depthTextureShader;private Material depthTextureMaterial = null;public Material material{get{depthTextureMaterial = new Material(depthTextureShader);return depthTextureMaterial;}}void OnEnable(){Camera cam = GetComponent<Camera>();cam.depthTextureMode |= DepthTextureMode.Depth;}void OnDisable(){Camera cam = GetComponent<Camera>();cam.depthTextureMode &= ~DepthTextureMode.Depth;}void OnRenderImage(RenderTexture src, RenderTexture dest){if (material != null){Graphics.Blit(src, dest, material);}else{Graphics.Blit(src, dest);}}}

理解

在Unity中,通过摄像机生成一个深度纹理,属于后处理,获取深度纹理通过在C#中cam.depthTextureMode = DepthTextureMode.Depth;实现。在Shader中,通过_CameraDepthTexture访问深度纹理,然后再使用SAMPLE_DEPTH_TEXTURE用当前像素的纹理坐标对深度纹理进行采样。Linear01Depth(i)通过深度纹理 i 给出高精度值时,返回相应的线性深度,范围在 0 到 1 之间。C#脚本需要挂在相机上。

参考

Unity 内置宏
《Unity Shader入门精要》

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/8952.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

20个硬核Python脚本

整理了一个覆盖面比较广泛的Python脚本示例&#xff0c;涉及到机器学习、数据处理、还有算法er可能会遇到自己写后台的一些案例。 另外&#xff0c;每个模块底部提供了对于官网文档&#xff0c;更加方便的查询具体的使用方法。 内容由简到难&#xff0c;如果对你有帮助的话希…

运行时数据区-基础

运行时数据区-基础 为什么学习运行时数据区Java内存区域&#xff08;运行时数据区域&#xff09;和内存模型&#xff08;JMM&#xff09; 区别组成部分&#xff08;jdk1.7 / jdk1.8&#xff09;从线程隔离性分类与类加载的关系每个区域的功能参考文章 为什么学习运行时数据区 …

在安卓应用中实现Socket通信:创建服务端和客户端

介绍&#xff1a;本文主要介绍在安卓中使用Socket创建服务端和客户端进行通信&#xff0c;服务端可以管理多个客户端连接&#xff0c;完善的异常处理&#xff0c;接口回调&#xff0c;可以满足大部分需求&#xff0c;更多功能自行拓展… 关于Socket套接字&#xff1a; 是网络上…

linux开发笔记(F1C200S)折腾weston桌面

参考文章&#xff1a; 1、嵌入式桌面&#xff08;1&#xff09;——weston桌面_qt weston-CSDN博客 2、https://blog.51cto.com/u_16213414/9171009 3、weston.ini: configuration file for Weston — the reference Wayland compositor | weston File Formats | Man Pages …

文献速递:深度学习医学影像心脏疾病检测与诊断--基于深度学习的PET图像重建与运动估计

Title 题目 Deep Learning Based Joint PET Image Reconstruction and Motion Estimation 基于深度学习的PET图像重建与运动估计 01 文献速递介绍 正电子发射断层扫描&#xff08;PET&#xff09;成像是一种非侵入性成像技术&#xff0c;通过使用放射性示踪剂在活体内可视化…

架构师:搭建Spring Security、OAuth2和JWT 的安全认证框架

1、简述 Spring Security 是 Spring 生态系统中的一个强大的安全框架,用于实现身份验证和授权。结合 OAuth2 和 JWT 技术,可以构建一个安全可靠的认证体系,本文将介绍如何在 Spring Boot 中配置并使用这三种技术实现安全认证,并分析它们的优点。 2、Spring Security Spri…

营销H5测试综述

H5页面是营销域最常见的一种运营形式&#xff0c;业务通过H5来提供服务&#xff0c;可以满足用户对于便捷、高效和低成本的需求。H5页面是业务直面用户的端点&#xff0c;其质量保证工作显得尤为重要。各业务的功能实现具有通用性&#xff0c;相应也有共性的测试方法&#xff0…

基于C++函数基础中的形参与实参

在C中&#xff0c;函数的形参&#xff08;形式参数&#xff09;是在函数定义时声明的参数&#xff0c;而实参&#xff08;实际参数&#xff09;是在函数调用时传递给函数的值或变量。 形参的作用是定义函数在执行时所需要的输入&#xff0c;它们在函数体内被当做局部变量使用。…

[1726]java试飞任务规划管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 java试飞任务规划管理系统是一套完善的java web信息管理系统&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为 TOMCAT7.0,Myeclipse8.5开发&#xff0c;数据库为Mysql…

VS code放大缩小

​ 放大 ctrl和一起按 缩小 ctrl和-一起按 上面是键盘组合方式&#xff0c;如果需要Ctrl滚轮实现代码的缩放&#xff0c;可以这样。 在文件-->首选项-->设置-->用户设置&#xff1a; 在搜索栏输入mouseWheelZoom 选中即可。 ​ 输入 mouseWheelZoom 进行搜素 特…

linux 使用intel oneapi报错报错

使用intel oneapi 2024.1.0 时经常报这个错误 因为当前 intel2024.1.0没有在使用 需要改回2024.0.0并安装适配的torch的包来运行

Linux系统执行apt update报错 暂时不能解析域名“xxxx.xxx.com”

一、错误重现 错误:1 http://mirrors.aliyun.com/ubuntu jammy InRelease 暂时不能解析域名“mirrors.aliyun.com” 错误:2 http://mirrors.aliyun.com/ubuntu jammy-updates InRelease 暂时不能解析域名“mirrors.aliyun.com” 错误:3 http://mirrors.aliyun.com/ubuntu j…

1688工厂货源API接口:用于商品采集、商品搜索、商品详情数据抓取

item_get 获得1688商品详情item_search 按关键字搜索商品item_search_img 按图搜索1688商品&#xff08;拍立淘&#xff09;item_search_suggest 获得搜索词推荐item_fee 获得商品快递费用seller_info 获得店铺详情item_search_shop 获得店铺的所有商品item_password 获得淘口令…

机器学习:基于TF-IDF算法、决策树,使用NLTK库对亚马逊美食评论进行情绪分析

前言 系列专栏&#xff1a;机器学习&#xff1a;高级应用与实践【项目实战100】【2024】✨︎ 在本专栏中不仅包含一些适合初学者的最新机器学习项目&#xff0c;每个项目都处理一组不同的问题&#xff0c;包括监督和无监督学习、分类、回归和聚类&#xff0c;而且涉及创建深度学…

外贸人必备的9类工具合集-36个提高效率神器推荐!

做外贸&#xff0c;你需要的不只是一些基本的知识&#xff0c;还得有多种技能傍身&#xff0c;比如找新客户、写有效的邮件、分析竞争对手&#xff0c;还有在社交媒体上做营销但你可能发现了&#xff0c;有的人做外贸轻轻松松就能收到很多询盘&#xff0c;而有的人忙得团团转却…

python实现txt文件内容对比功能

欢迎关注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 目录 一.前言 二.代码 三.演示 四.代码分析 一.前言 内容对比是一种常见的信息分析和研究方法,主要涉及对不同来源、类型或版本的内容进行比

HTTP请求三方接口绕过https证书检查

问题&#xff1a;在http请求https接口过程中经常会遇到SSL证书检查或者证书过期 ** sun.security.validator.ValidatorException: PKIX path validation failed: java.security.cert.CertPathValidatorException: validity check failed ** 解决办法&#xff1a;绕过证书检查…

[NSSRound#1 Basic]sql_by_sql

[NSSRound#1 Basic]sql_by_sql 这题没啥难的&#xff0c;二次注入盲注的套题 先注册&#xff0c;进去有个修改密码 可能是二次注入 修改密码处源码 <!-- update user set password%s where username%s; -->重新注册一个admin-- 获得admin身份&#xff08;原理看sqli-l…

分享10个高质量宝藏网站~

分享一波高质量宝藏网站~ 这10个宝藏网站&#xff0c;个个都好用到爆&#xff0c;娱乐、办公、学习都能在这里找到&#xff01; 1、Z-Library https://zh.zlibrary-be.se/ 世界最大的免费电子书下载网站&#xff01;电子书资源超千万&#xff0c;不过这个网站不太稳定&#…

MongoDB Atlas Vector Search与Amazon Bedrock集成已全面可用

亮点前瞻 ●MongoDB Atlas Vector Search知识库与Amazon Bedrock的最新集成&#xff0c;将极大加速生成式AI应用的开发。 ●诺和诺德利用MongoDB Atlas Vector Search与Amazon Bedrock集成&#xff0c;加速构建AI应用程序。 MongoDB&#xff08;纳斯达克股票代码&#xff1a…