ShaderLab: Pass

25 篇文章 0 订阅
25 篇文章 0 订阅

ShaderLab: Pass

Pass代码块可以使游戏对象的几何模型渲染。

Syntax

Pass { [Name and Tags] [RenderSetup] }

基础的Pass命令,包含了一系列渲染状态设置命令。

Name and tags

一个Pass块可以定义它的 Name 和 任意数量的 Tags。通过这些 名/值 字符串,把Pass的意图传递给渲染引擎。

Render state set-up

一个Pass设置各种的显卡状态,比如是否 alpha混合应该打开,又或者是否该使用深度测试。

命令如下:

Cull

Cull Back | Front | Off

设置多边形剔除模式。

ZTest

ZTest (Less | Greater | LEqual | GEqual | Equal | NotEqual | Always)

设置深度缓冲测试模式。

ZWrite

ZWrite On | Off

设置深度缓冲写入模式。

Offset

Offset OffsetFactor, OffsetUnits

设置z缓冲区深度偏移。 查看文档 Cull and Depth page 获取更多细节。

查看文档 Cull and Depth 获取更多关于 Cull, ZTest, ZWrite and Offset 的细节。

Blend

Blend sourceBlendMode destBlendMode
Blend sourceBlendMode destBlendMode, alphaSourceBlendMode alphaDestBlendMode
BlendOp colorOp
BlendOp colorOp, alphaOp
AlphaToMask On | Off

设置 alpha blending, alpha operation, and alpha-to-coverage modes. 查看文档 Blending 获取更多细节。

ColorMask

ColorMask RGB | A | 0 | any combination of R, G, B, A

设置颜色通道遮罩。 写入ColorMask 0来关闭渲染到所有颜色通道。Writing ColorMask 0 turns off rendering to all color channels. 默认模式会写入所有颜色通道(RGBA),但是对于一些特殊的效果,你可能希望不更改某些通道,或者完全禁止颜色写入。

当使用多重渲染目标(MRT)渲染, 可能会为每个渲染目标设置不同的彩色遮罩, 可以通过在末尾输入索引 (0–7)实现。例如,ColorMask RGB 3 将会渲染目标 #3 只写入其RGB通道。

Legacy fixed-function Shader commands

一些命令用于编写传统的固定管线Shader。这被认为是过时的功能, 比如 编写 Surface ShadersShader programs 允许更大的灵活性。 然而, 一些很简单的Shader, 使用固定管线方式编写有时会很简单, 所以在这里提供其命令。 注意,如果不使用固定管线Shader,那么以下所有命令都将被忽略.

Fixed-function Lighting and Material
Lighting On | Off
Material { Material Block }
SeparateSpecular On | Off
Color Color-value
ColorMaterial AmbientAndDiffuse | Emission

所有这些固定功能用来控制每个顶点的光照:它们打开它, 设置材质颜色, 打开镜面高光, 提供默认颜色 (如果顶点的光照时关闭的), 并控制mesh的顶点如何影响光照. 查看文档 Materials 获取更多细节。

Fixed-function Fog
Fog { Fog Block }

设置 固定管线 雾 参数. 查看文档 onFogging 获取更多细节.

Fixed-function AlphaTest
AlphaTest (Less | Greater | LEqual | GEqual | Equal | NotEqual | Always) CutoffValue

打开固定管线alpha测试. 查看文档 alpha testing 获取更多细节。

Fixed-function Texture combiners

在渲染状态设置后, 使用 SetTexture 命令来指定一些纹理和它们的混合模式:

SetTexture textureProperty { combine options }

Details

Shader passes 与Unity的渲染管线交互有几种方式; 例如, 一个Pass可以标示它只用于deferred shading 通过 Tags 命令。 某些 Pass 可以在同一个GameObject上运行多次; 例如, 在 forward rendering 中的 “ForwardAdd” pass 类型,会运行多次,基于有多少光作用于GameObject。查看文档 Render Pipeline 获取更多细节.


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值