渲染路径
手册路径:Unity User Manual(2018.4) / Graphics / Graphics Overview / Advanced Rendering Features / Rendering Paths
Unity支持不同的渲染路径。你应该根据你的游戏内容和目标平台硬件来选择渲染路径。不同的渲染路径拥有不同的性能特征,主要是影响灯光和阴影。技术细节请参见 渲染管线。
你的工程的当前渲染路径可以在 Graphics 窗口进行设置。除此之外,你也可以给某些相机单独设置渲染路径。
如果显卡不支持你所选择的渲染路径,那么Unity将会自动降级为更低保真度的渲染路径。例如,当一个GPU不支持延迟渲染时,Unity将会使用前向渲染。
延迟渲染
延迟渲染是一种支持最多灯光和阴影保真度的渲染路径,它适用于含有许多实时灯光的场景。它需要特定的硬件支持级别。
更多信息参见 延迟渲染 页面。
前向渲染
前向渲染是传统的渲染路径。它支持所有典型的Unity图形特性(法线贴图、逐像素灯光、阴影等)。但是在默认设置下,只有少部分最亮的灯光使用逐像素光照模式渲染。剩余的灯光都是在物体的顶点上计算或者逐个物体计算。
更多信息参见 前向渲染 页面。
Legacy延迟
Legacy延迟(light prepass)与延迟渲染相似,仅仅使用了不同的技术做出了取舍。它不支持Unity 5的基于物理的标准着色器。
更多信息参见 延迟光照 页面。
Legacy顶点光照
Legacy顶点光照路径拥有最低的光照保真度,并且不支持实时的阴影。它属于前向渲染路径的一个子集。
更多信息参见 顶点光照 页面。
注意:延迟渲染不支持正交投影。当相机的投影模式设置为正交投影时,这些值就会被覆盖,相机将会使用前向渲染。
渲染路径对比
. | 延迟渲染 | 前向渲染 | legacy延迟 | 顶点光照 |
---|---|---|---|---|
特性 | ||||
逐像素光照(法线贴图、灯光剪影) | 是 | 是 | 是 | - |
实时阴影 | 是 | 有缺陷 | 是 | - |
反射探针 | 是 | 是 | - | - |
深度、法线缓冲区 | 是 | 额外的渲染pass | 是 | - |
软粒子 | 是 | - | 是 | - |
半透明物体 | - | 是 | - | 是 |
抗锯齿 | - | 是 | - | 是 |
灯光剔除遮罩 | 有限的 | 是 | 有限的 | 是 |
光照保真度 | 所有的逐像素 | 一些逐像素 | 所有的逐像素 | 所有的逐顶点 |
性能 | ||||
单个逐像素灯的消耗 | 这个灯照亮的像素数量 | 像素数量 * 这个灯照亮的物体数量 | 这个灯照亮的像素数量 | - |
正常情况下物体渲染的次数 | 1 | 逐像素灯光数量 | 2 | 1 |
简单场景时的开销 | 高 | 无 | 中等 | 无 |
平台支持 | ||||
PC(windows/mac) | Shader Model 3.0+ 和 MRT | 所有 | Shader Model 3.0+ | 所有 |
移动平台(ios/android) | OpenGL ES 3.0 和 MRT, Metal(A8或更新的SoC的设备) | 所有 | OpenGL ES 2.0 | 所有 |
主机 | XB1,PS4 | 所有 | XB1,PS4,360 | - |