延时光照(Deferred Lighting)
延时光照是一种基于像素的渲染技术,旨在提高实时光照计算的效率和保真度。以下是延时光照的一些关键特点:
特点
- 每像素计算光照:延时光照通过在两次渲染之间分离光照计算和颜色计算来工作。首先,场景中的所有光源的影响被记录在一个或多个深度与法线缓冲区(Depth & Normals Buffers)中。然后,这些缓冲区用于在第二次渲染中计算最终的颜色。
- 实时阴影:延时光照支持来自一个平行光的实时阴影。
- 双光照贴图:延时光照支持使用双光照贴图,这可以为场景中的物体提供更高的细节和保真度。
- 软粒子:延时光照能够正确处理软粒子效果。
- 半透明对象:延时光照不直接支持半透明物体的渲染。
性能
- 每像素光照的花费:延时光照的成本取决于照亮的像素数。这意味着对于具有复杂光照环境的场景,可能需要更多的计算资源。
平台支持
- PC (Windows/Mac):需要 Shader Model 3.0 或更高版本。
- 移动设备 (iOS/Android):不支持。
- 游戏平台:在 360 和 PS3 上支持。
正向渲染(Forward Rendering)
正向渲染是一种基于着色器的渲染技术,通过一次渲染过程来处理场景中的所有物体和光源。以下是正向渲染的一些关键特点:
特点
- 逐像素计算光照:正向渲染在渲染过程中直接计算每个像素的光照效果。
- 实时阴影:正向渲染支持来自一个平行光的实时阴影,并且可以处理多盏灯光,但可能会影响性能。
- 双光照贴图:不直接支持双光照贴图。
- 深度与法线缓冲区:不需要额外的深度与法线缓冲区。
- 软粒子:需要额外的计算资源来处理软粒子效果。
- 半透明对象:正向渲染可以处理半透明物体。
性能
- 每像素光照的花费:正向渲染的成本取决于照亮的像素数和照亮的物体数量。这意味着对于具有复杂光照环境和多个光源的场景,可能需要更多的计算资源。
平台支持
- PC (Windows/Mac):需要 Shader Model 2.0 或更高版本。
- 移动设备 (iOS/Android):仅 OpenGL ES 2.0 及以上版本。
- 游戏平台:在 360 和 PS3 上支持。
顶点光照(Vertex Lit)
顶点光照是一种最低保真度的渲染技术,通过一次渲染过程来处理场景中的所有物体和光源。以下是顶点光照的一些关键特点:
特点
- 每像素计算光照:不直接支持逐像素计算光照。
- 实时阴影:不支持实时阴影。
- 双光照贴图:不支持双光照贴图。
- 深度与法线缓冲区:不需要额外的深度与法线缓冲区。
- 软粒子:不支持软粒子效果。
- 半透明对象:不支持半透明物体。


