`

Forward Rendering Path

 
阅读更多

 

该页面描述 正向渲染路径(Forward  Rendering Path)的详细内容。

 

 正向渲染路径会在一个或多个 Pass 中渲染每个物体,这取决于影响物体的光照。灯光的设置和强度(intensity)不一样,正向渲染的光照也不一样。

 

实现细节

 

在正向渲染中,一些影响物体表面的明亮灯光将会以全像素点亮模式(fully per-pixel lit mode)渲染出来。然后,最多4个点光源在每顶点(per-vertex)被计算。

 

其他的光照作为球面调和函数 / 球谐函数(Spherical Harmonics,SH)被计算出来,虽然它更快,但只是一个近似值。一个灯光是否是像素光照(per-pixel light)取决于以下条件:

 

  • 设置为不重要(Not Important)渲染模式的光照总是 逐顶点 或者 球面调和 处理。
  • 平行光总是像素计算的。
  • 设置为重要(Important )渲染模式的光照总是 像素计算的。
  • 如果以上结果比当前在 Quality Setting 中的像素光源少,那么为了降低亮度,更多的光照将逐像素渲染。

 渲染的流程如下:

 

  • 基本的 Pass 应用于一个逐像素(per-pixel)的平行光和所有的逐顶点(per-vertex)或球面调和(SH)处理的光照。
  • 其他的像素光在附加的 Pass 被渲染,每个光源一个 Pass。

例如,如果某些物体被一些数量的光源影响(如图下所示,影响A到H):


 

我们假设光源 A 到 H 有同样的颜色、光照强度,以及自动的渲染模式。这些光源将为该物体做一个精确的分类排序。最亮的光源将按逐像素点亮模式(per-pixel lit mode)从 A 到 D 渲染。

 

 

注意到光组的重叠(Per-Pixel、Per-vertex、SH之间)。例如,最近的像素光融入顶点点亮模式(per-vertex lit mode),所以在移动的物体和光源周围会有比较少的光照出现(light popping)。

 

Base Pass

 

Base Pass 使用一个逐像素(per-pixel)的平行光和所有的顶点或球面调和光源(SH/vertex lights)渲染。该 Pass 也会添加到任何光照贴图(lightmaps),环境光(ambient )和从Shader发射的平行光。

 

平行光在该 Pass 的渲染具有阴影 (Shadows)。要注意的是烘焙的物体不会从球面调和光源(SH lights)得到光照。

 

当在 Shader 的 “Pass Flag”(告诉引擎它们期望被渲染到引擎的时间和方式) 中启用了 “OnlyDirectional”时,正向的 Base Pass 仅渲染主要的平行光( directional light),

环境光或光照探头(ambient/lightprobe),光照贴图(lightmaps )(球面调和光和顶点光照不包括在 Pass 数据内)。

 

Additional Passes

 

额外 Passes 的渲染受物体每个额外的像素光影响。在该 Pass 的光源默认是不会有阴影的(因此正向渲染支持一个带阴影的平行光),除非使用 Multi_Compile_fwdadd_fullshadows 变形快捷方式。

 

性能考虑

 

球面调和光源(Spherical Harmonics lights)的渲染速度是很快的。它们在 CPU 内具有很小的开销,并且很容易被 GPU 接受(那是因为 Base Pass 会计算球面调和光照,但由于 SH Lights 的工作原理,无论多少个 SH Lights 它们的开销是一样的)。

 

球面调和光照(SH Lights)的弊端如下:

 

  • 它们在物体的顶点被计算,而不是按像素。这意味着它们将不支持光照缓存(light Cookies)或法线贴图(normal maps)。
  • 球面调和光照(SH Lights)调用的频率是很低的,你不能用 SH Lights 做一些明显的光照过度。它们也只会影响漫射光照(Diffuse Light),在高光曲线反射区 / 镜面反射(specular highlights)的调用频率也是很低的。
  • SH Light 不是局部的,接近物体表面的球面调和点光源(point or spot SH lights)看起来是错误的。

总之,球面调和光照(SH Lights)对于小的动态物体往往是不够的。

 

  • 大小: 18.9 KB
  • 大小: 15.6 KB
分享到:
评论

相关推荐

    unity3d Shadow Demo(带源代码)

    1. **正向渲染路径(Forward Rendering Path)**:适用于简单场景,它为每个光源计算一次阴影。 2. **延迟渲染路径(Deferred Rendering Path)**:适合复杂场景,所有光源的阴影在同一时间计算,但需要更多的GPU...

    UnityProject_KnightsVow:添加描述

    Unity的渲染管线分为传统前向渲染(Legacy Forward Rendering Path)和统一渲染管线(Universal Render Pipeline, URP),其中URP提供更现代、高性能的解决方案。在"UnityProject_KnightsVow"中,我们需要查看项目...

    Shader基础知识2

    此外,每个Camera组件也有自己的Rendering Path设置,可以根据需要调整。 Shader的选择和编写直接影响到渲染路径的效果。在Deferred Lighting中,Shader主要关注多重纹理的处理,而在Vertex Lit和Forward Rendering...

    Unity Shiny SSRR 2 4.0.unitypackage

    - Deferred rendering path in URP requires URP 12.0 or later. - Supports Windows, Mac and WebGL 2 platforms. - In forward rendering mode, reflections can't be added to terrain. - VR not supported. ...

    Shiny SSRR 2 - Screen Space Raytraced Reflections

    Shiny SSRR adds advanced Screen Space ...in pipeline.- Shiny SSRR for URP (Universal Rendering Pipeline).Both packages offer the same functionality and support forward and deferred rendering path.

    Unity45个天空盒

    Unity的Rendering Path(渲染路径)设置为Deferred Lighting(延迟光照)或者Forward Rendering(向前渲染)时都可以使用天空盒。 使用天空盒的好处有很多,首先,它们能提供一个无需额外性能消耗的背景,因为它们...

    unity中shader入门

    - **局部设置**:在Inspector面板中为单个对象设置Rendering Path。 #### 五、渲染路径与Shader的关系 不同的渲染路径对Shader有不同的要求,理解这些关系对于优化Shader至关重要: - **Deferred Lighting**:...

    Unity3D中摄像机调节和操作教程.docx

    9. **Rendering Path**:选择不同的渲染路径,包括Use Player Settings、Vertex Lit、Forward和Deferred Lighting。Vertex Lit适合简单的光照效果,Forward适用于多种光源,而Deferred Lighting则用于复杂的光照计算...

    unity3d 35个天空盒

    通过Resources文件夹或Asset导入,然后在场景中设置渲染路径(Rendering Path)为"Deferred Lighting"或"Forward Plus",并选择合适的天空盒,即可在场景中应用这些预设的天空效果。 总之,这35个天空盒资源为Unity...

    Unity3D中摄像机的调节和操作教程.docx

    10. **Rendering Path**:选择不同的渲染方式: - Use Player Settings:使用播放器设置的渲染路径。 - Vertex Lit:基于顶点的光照计算。 - Forward:快速渲染,适用于多光源环境。 - Deferred Lighting:延迟...

    Unity3D摄像机详解.doc

    * Rendering Path:渲染路径该选项定义相机将要使用的渲染方法。 三、摄像机的渲染路径 * Use Player Settings:使用播放器设置,该相机将使用任意一个播放器设置中所设置的渲染路径。 * Vertex Lit: 顶点光照本...

    Grass-Simulation:具有几何草渲染,具有广告牌草的动态LOD,风模拟和碰撞检测的草模拟存储库。 专为我的学士论文而开发

    C Switch between Free Camera and Camera Animation Path 场景管理 Numpad1 Load High Settings and Reload Simulation Numpad2 Load Normal Settings and Reload Simulation Numpad3 Load Low Settings and ...

    acpi控制笔记本风扇转速

    笔记本的风扇控制 ---------------------------------------- 09 November 2006. Summary of changes for version 20061109: 1) ACPI CA Core Subsystem: Optimized the Load ASL operator in the case where the...

Global site tag (gtag.js) - Google Analytics