Version: 6000.3
语言: 中文
内置渲染管线中的表面着色器输出结构
在内置渲染管线中创建表面着色器

内置渲染管线中的表面着色器和渲染路径

在内置渲染管线(Render Pipeline) 获取场景内容并将其显示在屏幕上的一系列作。Unity 允许您从预构建的渲染管道中进行选择,或编写自己的渲染管道。更多信息
请参阅术语表
,使用 Surface 时着色器在 GPU 上运行的程序。更多信息
请参阅术语表
,如何应用光照以及使用着色器的哪些通道取决于哪些渲染路径渲染管道用于渲染图形的技术。选择不同的渲染路径会影响照明和着色的计算方式。某些渲染路径比其他路径更适合不同的平台和硬件。更多信息
请参阅术语表
被使用。着色器中的每个通道都通过通道标签传达其光照类型。

渲染管线兼容性

功能名称 通用渲染管线(URP) 高清渲染管线 (HDRP) 定制 SRP 内置渲染管线
表面着色器

有关在 URP 中创建着色器对象的简化方法,请参阅着色器图表


有关在 HDRP 中创建着色器对象的简化方法,请参阅着色器图表
是的

渲染路径

  • 前向渲染(Forward Rendering)一种渲染路径,用于在一个或多个通道中渲染每个对象,具体取决于影响对象的光源。光源本身也因前向渲染而异,具体取决于其设置和强度。更多信息
    请参阅术语表
    ,ForwardBaseForwardAdd使用通行证。
  • 延迟着色(Deferred Shading) 内置渲染管线中的渲染路径,对可能影响游戏对象的光源数量没有限制。所有光源都是按像素计算的,这意味着它们都与法线贴图等正确交互。此外,所有光源都可以有饼干和阴影。更多信息
    请参阅术语表
    ,Deferred使用通行证。
  • 旧版 Vertex Lit 中,Vertex,VertexLMRGBMVertexLM使用通行证。
  • 在上述任何一种情况下,要呈现阴影为图形组件(如文本或图像)添加简单轮廓效果的 UI 组件。它必须与图形组件位于同一游戏对象上。更多信息
    请参阅术语表
    或深度纹理,ShadowCaster使用通行证。

前向渲染路径

ForwardBase通过渲染环境,光照贴图(lightmaps一种预渲染的纹理,包含光源对场景中静态对象的效果。光照贴图覆盖在场景几何体之上,以创建光照效果。更多信息
请参阅术语表
、主定向光和不重要(顶点/SH)光。ForwardAdd通过(pass) 用于任何加法的每像素光源;每个被此类光照亮的对象进行一次调用。有关详细信息,请参阅正向渲染

如果使用前向呈现,但着色器没有适合前向的通道(即,两者都没有ForwardBase也不ForwardAdd通道类型),然后该对象的渲染方式就像在顶点光照路径中一样,见下文。

延迟着色路径

Deferred传递渲染光照所需的所有信息(在内置着色器中:漫反射颜色、镜面反射颜色、平滑度、 世界空间正常,发射)。它还将光照贴图、反射探针和环境光照添加到发射通道中。有关详细信息,请参阅延迟着色

旧版顶点光照渲染路径

由于顶点光照最常用于不支持可编程着色器的平台,因此 Unity 无法在内部创建多个着色器变体来处理光照贴图与非光照贴图的情况。因此,要处理光照贴图和非光照贴图对象,必须显式编写多个通道。

  • Vertex通道用于非光照贴图对象。使用固定函数 OpenGL/Direct3D 照明模型 (Blinn-Phong)
  • VertexLMRGBMpass用于光照贴图对象,当光照贴图是RGBM编码的(PC和主机)时。不应用实时照明;Pass 应将纹理与光照贴图相结合。
  • VertexLM当光照贴图采用双LDR编码(移动平台)时,pass用于光照贴图对象。不应用实时照明;Pass 应将纹理与光照贴图相结合。
内置渲染管线中的表面着色器输出结构
在内置渲染管线中创建表面着色器