版本:Unity 6 (6000.0)
语言:English
相机输出简介
从相机输出运动矢量纹理

从相机输出深度纹理

使用DepthTextureMode相机场景中特定视点的图像创建组件。输出要么绘制到屏幕上,要么捕获为纹理。 更多信息
参见 术语表
输出深度纹理或深度法线纹理。

DepthTextureMode.Depth 纹理

这将构建一个屏幕大小的深度纹理。

深度纹理使用与阴影投射渲染相同的着色器在 GPU 上运行的程序。 更多信息
参见 术语表
通道(ShadowCaster通道类型)进行渲染。因此,如果着色器不支持阴影投射(即着色器或任何回退中没有阴影投射通道),则使用该着色器的对象将不会显示在深度纹理中。

  • 使您的着色器回退到具有阴影投射通道的其他着色器,或者
  • 如果您使用的是表面着色器为内置渲染管线编写着色器的一种简化方法。 更多信息
    参见 术语表
    ,添加addshadow指令也将使它们生成阴影通道。

请注意,只有“不透明”对象(其材质和着色器设置为使用渲染队列 <= 2500)才会渲染到深度纹理中。

DepthTextureMode.DepthNormals 纹理

这将构建一个屏幕大小的 32 位(每个通道 8 位)纹理,其中视空间法线编码在 R&G 通道中,深度编码在 B&A 通道中。法线使用立体投影进行编码,深度是打包到两个 8 位通道中的 16 位值。

UnityCG.cginc包含文件有一个辅助函数DecodeDepthNormal,用于从编码的像素计算机图像中的最小单位。像素大小取决于您的屏幕分辨率。像素照明是在每个屏幕像素处计算的。 更多信息
参见 术语表
值解码深度和法线。返回的深度范围为 0..1。

有关如何使用深度和法线纹理的示例,请参阅运行时替换着色器后期处理和全屏效果中的环境光遮蔽一种近似计算有多少环境光(非来自特定方向的光)可以照射到表面上的某个点的方法。
参见 术语表

其他资源

相机输出简介
从相机输出运动矢量纹理