ShaderLab: SubShader

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

ShaderLab: SubShader

每个shader在Unity中都包含了一系列subshaders。当Unity要显示一个mesh,他将找shader来使用,并选择第一个可以在用户显卡上运行的subshader。

Syntax

Subshader { [Tags] [CommonState] Passdef [Passdef ...] }

定义subshade包含可选的tags,common state和Pass定义列表

Details

一个subshader定义一系列rendering passes 并且选项中设置的任何状态对于所有Pass都是相同的。此外, subshader的Tags 可以被设置.

当Unity选择一个subshader来渲染,它定义的每个Pass都会渲染物体一次(可能更多是由于光的影响)。 因为对象的每个渲染都是一个昂贵的操作,所以你希望在shader中定义尽可能少的Pass。当然,在有时在某些显卡上,需要的效果可能不能通过一个Pass实现,那么你就需要定义多个Pass。
每个定义的Pass可以是 一个 regular Pass, 一个 Use Pass 或 一个 Grab Pass.

任何在Pass定义中允许的声明,都可以出现先Subshader代码块中。这样所有的Pass都会使用这个“共享”的状态。

Example

// ...
SubShader {
    Pass {
        Lighting Off
        SetTexture [_MainTex] {}
    }
}
// ...

这个subshader定义了一个Pass,关闭了光照只是用一个名为_MainTex的纹理显示mesh。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值