UnityShader入门精要学习笔记(二十一):深度和法线纹理
来源:互联网 发布:mac上的安卓模拟器 编辑:程序博客网 时间:2024/06/06 15:41
深度纹理实际上就是一张渲染纹理,只不过它里面存储的像素值不是颜色值,而是一个高精度的深度值。由于被存储在一张纹理中,纹理的深度值范围是[0,1],而且通常是非线性分布的。
深度纹理中像素值深度值对应了NDC中顶点坐标的z分量的值。由于NDC中z分量的范围在[-1,1],为了让这些值能够存储在一张图像中,做了下面的映射:
d = 0.5·zndc + 0.5
其中,d对应了深度纹理中像素值,zndc对应了NDC坐标中的z分量的值。
Unity中,当使用延迟渲染路径时,深度纹理所当然可以访问到,因为延迟渲染会把这些信息渲染到G-buffer中。
其它渲染模式,会使用着色器替换技术选择RenderType为Opaque的物体,判断其渲染队列是否小于等于2500(Background、Geometry、AlphaTest),如果满足条件就把它渲染到深度纹理和法线纹理中。
在Unity中,我们可以选择让一个摄像机生成一张深度纹理或是一张深度+法线纹理。
当选择前者,即只需要一张深度纹理,Unity会直接获取深度缓存或是按之前讲到的着色器替换技术,选取需要的不透明物体,并使用它投影时使用的Pass(LightMode被设置为ShadowCaster的Pass)来得到深度纹理。如果没有这样的Pass,那么这个物体就不会出现在深度纹理中。
阅读全文
0 0
- UnityShader入门精要学习笔记(二十一):深度和法线纹理
- UnityShader入门精要学习笔记(二):数学知识
- UnityShader入门精要学习笔记(十四):立方体纹理
- UnityShader入门精要学习笔记(十五):渲染纹理
- UnityShader入门精要学习笔记(十六):纹理动画
- UnityShader入门精要学习笔记(十一):透明效果-下部分
- UnityShader入门精要学习笔记(九):基础纹理之渐变纹理与遮罩纹理
- UnityShader入门精要学习笔记(七):基础纹理之单张纹理
- UnityShader入门精要学习笔记(二十):运动模糊
- UnityShader入门精要学习笔记(八):基础纹理之凹凸映射
- Unity Shader入门精要笔记(十三):法线纹理
- Unity Shader 学习笔记(24) 深度纹理、法线纹理
- 凹凸映射 Bump mapping(unityshader入门精要学习笔记)
- UnityShader入门精要学习笔记(一):渲染流水线
- UnityShader入门精要学习笔记(四):光照模型理论
- UnityShader入门精要学习笔记(十):透明效果-上部分
- UnityShader入门精要学习笔记(十七):顶点动画
- UnityShader入门精要学习笔记(十九):卷积与边缘检测
- 各种排列组合奇怪的数的公式和推导
- Struct2入门二
- RecyclerView 嵌套RecyclerView 或者 ScrollView当中嵌套RecyclerView ,子View会自动滚动到顶部
- 博弈论——acm
- JAVA实现canny算法进行单像素边缘检测(图像处理)
- UnityShader入门精要学习笔记(二十一):深度和法线纹理
- OI模板·快速幂
- java删除文件和文件夹具体实现
- 一个通用的Java正则匹配工具(检查邮箱名、电话号码、用户密码、邮政编码等合法性的工具类)
- QT之QML与C++混合编程
- Python远程执行Linux命令
- python的Django框架应用(2)
- iTOP4412 安装NFS服务器
- Android Wi-Fi 四次握手简介