前言
此时此刻终于体会到啥叫从入门到放弃,从接触到现在半个月,前两天有人给我提到了双pass,整个人瞬间就郁闷了,一个pass还没整明白,咋还有双pass呢,上网查了一下,我的天,尽然还有多pass。
正文
1.实现
郁闷归郁闷,既然入坑了,就要坚持。下面大概说一双pass的使用,其实就是一个pass下定义了两组顶点着色器和片元着色器的入口,大概代码如下
// Effect Syntax Guide: https://github.com/cocos-creator/docs-3d/blob/master/zh/material-system/effect-syntax.md
CCEffect %{
techniques:
- name: opaque
passes:
- vert: general-vs:vert # builtin header
frag: unlit-fs:frag
properties: &props
mainTexture: { value: white }
mainColor: { value: [1, 1, 1, 1], editor: { type: color } }
- name: transparent
passes:
- vert: unlit-vs:vert
frag: unlit-fs:frag
- vert: custom-vs:vert
frag: custom-fs:frag
blendState:
targets:
- blend: true
blendSrc: src_alpha
blendDst: one_minus_src_alpha
blendSrcAlpha: src_alpha
blendDstAlpha: one_minus_src_alpha
rasterizerState:
cullMode: none
properties: *props
}%
//第一个pass
CCProgram unlit-vs %{
...
vec4 vert () {
....
}
}%
CCProgram unlit-fs %{
....
vec4 frag () {
...
}
}%
//第二个pass
CCProgram custom-vs %{
...
vec4 vert () {
....
}
}%
CCProgram custom-fs %{
....
vec4 frag () {
...
}
}%