包含此页的版本:
不含此页的版本:
本页详细介绍了延迟着色 渲染路径渲染管道用于渲染图形的技术。选择不同的渲染路径会影响照明和着色的计算方式。某些渲染路径比其他路径更适合不同的平台和硬件。更多信息
请参阅术语表在 Unity 的内置渲染管线获取场景内容并将其显示在屏幕上的一系列作。Unity 允许您从预构建的渲染管线中进行选择,或编写自己的渲染管线。更多信息
请参阅术语表.有关延迟着色的介绍性技术概述,请参阅 Wikipedia:延迟着色。
使用延迟着色时,可能影响游戏对象Unity 场景中的基本对象,可以表示角色、道具、风景、相机、航路点等。游戏对象的功能由附加到它的组件定义。更多信息
请参阅术语表.所有光源都是按像素计算的,这意味着它们都与法线贴图(normal maps)一种凹凸贴图纹理,允许您向模型添加表面细节,例如凹凸、凹槽和划痕,这些细节可以捕捉光线,就好像它们由真实几何体表示一样。
请参阅术语表等。此外,所有光源都可以有 cookie 和阴影。
延迟着色的优点是照明的处理开销与像素计算机图像中的最小单位。像素大小取决于您的屏幕分辨率。像素光照是在每个屏幕像素下计算的。更多信息
请参阅术语表光芒照耀着。这取决于场景场景包含游戏的环境和菜单。将每个唯一的场景文件视为一个独特的关卡。在每个场景中,你放置你的环境、障碍物和装饰品,基本上是将你的游戏设计和构建成碎片。更多信息
请参阅术语表无论它照亮了多少个游戏对象。因此,可以通过保持灯光较小来提高性能。延迟着色还具有高度一致和可预测的行为。每个光源的效果是按像素计算的,因此没有在大三角形上分解的光照计算。
不利的一面是,延迟着色对抗锯齿没有真正的支持,并且无法处理半透明的游戏对象(这些对象是使用前向渲染呈现的)。也不支持网格Unity 的主要图形原语。网格体构成了 3D 世界的很大一部分。Unity 支持三角或四边形多边形网格。Nurbs、Nurms、Subdiv 曲面必须转换为多边形。更多信息
请参阅术语表渲染器的 接收阴影(Receive Shadows) 标志和剔除遮罩允许你包括或省略要由摄像机渲染的对象,按层
。请参阅术语表仅以有限的方式提供支持。您最多只能使用四个剔除蒙版。也就是说,你的剔除图层遮罩定义要从作(例如渲染、碰撞或您自己的代码)中包含或排除哪些图层的值。更多信息
请参阅术语表必须至少包含所有层减去四个任意层,因此必须设置 32 层中的 28 层。否则,您会得到图形伪影。
它需要具有多个渲染目标 (MRT) 的显卡,着色器在 GPU 上运行的程序。更多信息
请参阅术语表Model 3.0(或更高版本)和对深度的支持渲染纹理(render texture)一种特殊类型的纹理,在运行时创建和更新。要使用它们,请先创建一个新的渲染纹理,并指定要渲染到其中的摄像机之一。然后,你可以在材质中使用渲染纹理,就像使用常规纹理一样。更多信息
请参阅术语表.2006 年之后制造的大多数 PC 显卡都支持延迟着色,从 GeForce 8xxx、Radeon X2400、Intel G45 开始。
在移动设备上,至少运行 OpenGL ES 3.0 的所有设备都支持延迟着色。
注意:使用正交投影时,不支持延迟渲染。如果相机在场景中创建特定视点图像的组件。输出要么绘制到屏幕上,要么作为纹理捕获。更多信息
请参阅术语表的投影模式设置为 正交(Orthographic),摄像机回退到正向渲染。
注意:延迟渲染不支持内置渲染管线中的单通道立体实例化。
延迟着色中实时光源的渲染开销与光源照亮的像素数成正比,并且不依赖于场景复杂性。因此,小型点光源或聚光源的渲染成本非常低,如果它们被场景游戏对象完全或部分遮挡,那么它们甚至更便宜。
当然,带有阴影的光源比没有阴影的光源要昂贵得多。在延迟着色中,每个阴影投射光源仍需要渲染一次或多次投影阴影游戏对象。此外,应用阴影的光照着色器的渲染开销高于禁用阴影时使用的光照着色器。
具有不支持延迟着色的着色器的对象在延迟着色完成后使用延迟着色完成后使用前向渲染一种渲染路径,用于在一个或多个通道中渲染每个对象,具体取决于影响对象的灯光。前向渲染也会对灯光本身进行不同的处理,具体取决于其设置和强度。更多信息
请参阅术语表路径。
下面列出了 G 缓冲区中渲染目标 (RT0 - RT4) 的默认布局。数据类型放置在每个渲染目标的各个通道中。使用的通道显示在括号中。
因此,默认的 G 缓冲区布局为 160 位/像素(非 HDR)或 192 位/像素(HDR)。
如果对混合光照使用阴影遮罩或距离阴影遮罩模式,则使用第五个目标:
因此,G 缓冲区布局为 192 位/像素(非 HDR)或 224 位/像素(HDR)。
如果硬件不支持五个并发渲染目标,则使用阴影遮罩的对象将回退到前向渲染路径。发射+光照缓冲区(RT3)采用对数编码方式,以提供比ARGB32纹理更大的动态范围,当摄像机未使用时HDR高动态范围
请参阅术语表.
请注意,当摄像机使用HDR渲染时,不会为发射+光照缓冲区(RT3)创建单独的渲染目标;相反,摄像机渲染到的渲染目标(即传递给图像效果的渲染目标)用作RT3。
G 缓冲区通道将每个游戏对象渲染一次,渲染到存储漫反射和镜面反射颜色、表面平滑度、世界空间法线以及发射、环境光、反射和光照贴图的纹理中。Unity 将 G 缓冲区纹理设置为全局着色器属性,以便着色器以后访问。属性名称为_CameraGBufferTexture0自_CameraGBufferTexture3.
光照通道根据 G 缓冲区和深度计算光照。光照是在屏幕空间中计算的,因此处理所需的时间与场景复杂性无关。照明将添加到发射缓冲区。
不穿过摄像机近平面的点光源和聚光源将渲染为3D形状,并启用Z缓冲区对场景的测试。这使得部分或完全被遮挡的点光源和聚光源的渲染成本非常低。穿过近平面的定向光源和点光源或聚光源将渲染为全屏四边形类似于平面但其边只有一个单位长的原始对象,它只使用 4 个顶点,并且表面定向在局部坐标空间的 XY 平面上。更多信息
请参阅术语表.
如果光源启用了阴影,则也会在此通道中渲染和应用阴影。请注意,影子不是“免费”而来的;需要渲染阴影投射器,并且必须应用更复杂的光照着色器。
唯一可用的照明模型是标准。如果需要不同的照明模型,可以创建默认延迟着色器文件的自定义版本。按着这些次序:
Internal-DeferredShading.shader文件中的DefaultResourcesExtra文件夹。