返回介绍

ShaderLab语法:Pass

发布于 2021-06-20 00:15:04 字数 3688 浏览 1085 评论 0 收藏 0

通道 (Pass) 块使对象的几何结构被渲染一次。

语法

Pass { [Name and Tags] [RenderSetup] [TextureSetup] }
基本通道命令包含了渲染设置命令的可选列表,后面可跟随一系列纹理以供使用。

名称和标记

通道 (Pass) 可以定义其名称和任意数量的标记 - 名称/值字符串告知渲染引擎“通道”(Pass) 的目的。

渲染设置

通道可设置图形硬件的各种状态,例如,是否应打开 alpha 混合,是否使用雾化等。其命令如下:

Material { Material Block }
定义在顶点光照管线中使用的材质。有关详细信息,请参阅材质页面
Lighting On | Off
开启或关闭顶点光照。有关详细信息,请参阅材质页面
Cull Back | Front | Off
设置多边形剔除模式。
ZTest (Less | Greater | LEqual | GEqual | Equal | NotEqual | Always)
设置深度测试模式。
ZWrite On | Off
设置深度编写模式。
Fog { Fog Block }
设置雾化参数。
AlphaTest (Less | Greater | LEqual | GEqual | Equal | NotEqual | Always) CutoffValue
开启 alpha 测试。
Blend SourceBlendMode DestBlendMode
设置 alpha 混合模式。
Color Color value
如果顶点光照是关闭的,则设置使用的颜色。
ColorMask RGB | A | 0 | any combination of R, G, B, A
设置颜色编写遮蔽图。编写 ColorMask 0 可关闭所有颜色通道的渲染。
Offset OffsetFactor , OffsetUnits
设置深度偏移。请注意,从 Unity 3.0 版本起,该命令只接受常量(即:非着色器参数)。
SeparateSpecular On | Off
打开或关闭顶点光照单独的高光颜色。有关详细信息,请参阅材质页面
ColorMaterial AmbientAndDiffuse | Emission
计算顶点光照时使用逐顶点颜色。有关详细信息,请参阅材质页面

纹理设置

渲染状态设置后,您可以应用 SetTexture 命令指定要应用的多种纹理及其组合模式:

SetTexture texture property { [Combine options] }

纹理设置可配置固定功能多层材质管线,并且如果使用自定义片段着色器,则纹理设置将被忽视。

详细信息

逐像素光照

逐像素光照管线通过在多通道中渲染对象作用。Unity 渲染对象一次以获得环境光照和所有顶点光照。然后渲染每个影响独立附加通道内的对象的像素光照。有关详细信息,请参阅渲染器管线

逐顶点光照

逐顶点光照是对每个顶点都进行了计算的标准的 Direct3D/OpenGL 光照模式。Lighting on 可打开光照。光照受 Material 块、ColorMaterial 和 SeparateSpecular 令影响。有关详细信息,请参阅材质页面

另请参阅

有几个特别通道支持重复使用常用功能或实施各种高端特效:

  • UsePass 包含另一个着色器中的已命名通道。
  • GrabPass 捕获屏幕的内容并置入纹理,以供在之后的通道中使用。

小节

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文