Version: 6000.3
语言: 中文
相机输出
从相机输出深度纹理

相机输出介绍

一个相机在场景中创建特定视点图像的组件。输出要么绘制到屏幕上,要么作为纹理捕获。更多信息
请参阅术语表
可以生成深度、深度+法线或运动矢量纹理。这是一种极简的 G 缓冲区纹理,可用于后处理在图像出现在屏幕上之前通过应用滤镜和效果来改善产品视觉效果的过程。你可以使用后期处理效果来模拟物理摄像机和胶片属性,例如泛光和景深。更多信息 后处理, 后处理, 后处理
术语表中查看
效果或实现自定义照明模型。

这些主要由效果器使用;例如,后期处理效果通常使用深度信息。

深度纹理中的像素值范围介于 0 和 1 之间,具有非线性分布。精度通常为 32 位或 16 位,具体取决于所使用的配置和平台。从深度纹理读取时,将返回介于 0 和 1 之间的高精度值。如果你需要获取与摄像机的距离,或者其他线性0-1值,请使用辅助宏手动计算。

大多数现代硬件和图形 API 都支持深度纹理。特殊要求如下:

  • Direct3D 11+ (Windows)、OpenGL 3+ (Mac/Linux)、Metal (iOS) 和流行的游戏机支持深度纹理。

可以使用脚本中的 Camera.depthTextureMode 变量启用摄像机的深度纹理模式。也可以使用着色器替换功能自行构建类似的纹理。

有三种可能的深度纹理模式:

  • DepthTextureMode.Depth:深度纹理。
  • DepthTextureMode.DepthNormals:深度和视图空间法线打包到一个纹理中。
  • DepthTextureMode.MotionVectors:当前帧的每个屏幕纹素的每像素屏幕空间运动。包装成 RG16 纹理。

这些是标志,因此可以指定上述纹理的任意组合。

引擎盖下

深度纹理可以直接来自实际深度缓冲区 保存图像中每个像素的 z 值深度的内存存储,其中 z 值是投影平面中每个呈现像素的深度。更多信息
请参阅术语表
,或在单独的通道中渲染,具体取决于渲染路径渲染管道用于渲染图形的技术。选择不同的渲染路径会影响照明和着色的计算方式。某些渲染路径比其他路径更适合不同的平台和硬件。更多信息
请参阅术语表
使用的和硬件。通常,当使用延迟着色(Deferred Shading) 内置渲染管线中的渲染路径,对可能影响游戏对象的光源数量没有限制。所有光源都是按像素计算的,这意味着它们都与法线贴图等正确交互。此外,所有光源都可以有饼干和阴影。更多信息
请参阅术语表
内置中的渲染路径渲染管线(Render Pipeline) 获取场景内容并将其显示在屏幕上的一系列作。Unity 允许您从预构建的渲染管道中进行选择,或编写自己的渲染管道。更多信息
请参阅术语表
,深度纹理是“免费”的,因为它们无论如何都是 G 缓冲区渲染的产物。

启用后,MotionVectors纹理始终来自额外的渲染通道。Unity 将渲染移动游戏对象Unity 场景中的基本对象,可以表示角色、道具、风景、相机、航路点等。游戏对象的功能由附加到它的组件定义。更多信息
请参阅术语表
到这个缓冲区中,并构造它们从最后一帧到当前帧的运动。

相机输出
从相机输出深度纹理