IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 游戏开发 -> Unity学习shader笔记[五十八]贴花的原理 -> 正文阅读

[游戏开发]Unity学习shader笔记[五十八]贴花的原理

比较好的参考文章, Unity Shader学习:贴花(Decal)

两个实现方式,Projector贴花、屏幕空间贴花
Projector贴花会有明显的卡的表现,
这里只是讲一下屏幕空间的贴花的思路。

屏幕空间的贴花里面的相当一部分代码能是很多功能的会用到的知识点:深度图重建世界坐标。
参考
Unity学习shader笔记[三十四]深度图采样和重建世界坐标的四种方式

之前这个部分已经被我玩得比较烂了。

大体的思路写一下吧。

贴花所在的物体是个半径为1的Unity内置正方体,渲染队列是透明。
渲染队列是透明 所以他能够拿到Unity提供的非透明物体渲染屏幕图,以及非透明物体渲染深度图。
如果他本身也是不透明队列,那么unity传入的深度图就包含了他自身,效果就不对了。

有了深度图之后,用上面的三十四的方式将深度图转换到世界坐标
转换到的是深度图同位置的像素的世界坐标

转换后再转换到内置正方体的模型空间坐标。
得到模型空间坐标,是会有超出正方体的部分的,用其x,y,z的绝对值是否大于0.5来判断,去除掉超出部分的片源。

对于半径为1的Unity内置正方体,模型空间坐标的xyz的范围是-0.5到0.5
然后忽略y值,只采用xz值,作为uv值,进行采样贴图。
因为uv的坐标范围是0到1,所以用xz采样uv需要-0.5到0.5 映射到 0到1的常规映射操作。
然后就可以采样了。</

  游戏开发 最新文章
6、英飞凌-AURIX-TC3XX: PWM实验之使用 GT
泛型自动装箱
CubeMax添加Rtthread操作系统 组件STM32F10
python多线程编程:如何优雅地关闭线程
数据类型隐式转换导致的阻塞
WebAPi实现多文件上传,并附带参数
from origin ‘null‘ has been blocked by
UE4 蓝图调用C++函数(附带项目工程)
Unity学习笔记(一)结构体的简单理解与应用
【Memory As a Programming Concept in C a
上一篇文章           查看所有文章
加:2022-05-07 11:27:07  更:2022-05-07 11:27:52 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 11:27:43-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码