creator 3.0 老提示这个异常,有谁知道这个是什么问题引起的呢?
字面意思就是不能读取未定义(某对象)的‘passes’属性,得看具体代码吧
朋友你解决这个问题了没 我也遇到了 可以给我说一下么
CCEffect %{
techniques:
-
passes:
-
vert: vs
frag: fs
blendState:
targets:
- blend: true
rasterizerState:
cullMode: none
properties:
mainTexture: { value: white }
u_degree: { value: 0.03 }
u_brightness: { value: 1.0 }
-
}%
CCProgram vs %{ // 顶点Shader模块开始
#include
precision highp float; //定义float高精度
in vec3 a_position; // 顶点Shader 从渲染管道里面获取的顶点信息,使用attribute来修饰;
in vec2 a_uv0; // 纹理坐标;
out vec2 uv0; // 传递给着色Shader,varying 来修饰,进行插值
void main () {
gl_Position = cc_matViewProj * vec4(a_position, 1);
uv0 = a_uv0;
}
}%
CCProgram fs %{
#define repeats 5. //重复次数,值越大模糊质量越高,但性能越低
precision highp float;
in vec2 uv0;
uniform sampler2D mainTexture;
uniform ARGS{
float u_degree; //模糊度,外界属性
float u_brightness; //亮度,外界属性
};
// 应用贴图UV
vec4 draw(vec2 uv) {
return texture(mainTexture,uv).rgba;
}
float grid(float var, float size) {
return floor(var*size)/size;
}
// 降低亮度
vec4 dim(vec4 col, float factor) {
return vec4(col.r * factor, col.g * factor, col.b * factor, col.a);
}
// 随机值
float rand(vec2 co){
return fract(sin(dot(co.xy ,vec2(12.9898,78.233))) * 43758.5453);
}
void main()
{
// 模糊贴图
vec4 blurred_image = vec4(0.);
// 重复采样
for (float i = 0.; i < repeats; i++) {
// 第一采样点
vec2 q = vec2(cos(degrees((i/repeats)*360.)),sin(degrees((i/repeats)*360.))) * (rand(vec2(i,uv0.x+uv0.y))+u_degree);
vec2 uv2 = uv0+(q*u_degree);
blurred_image += draw(uv2)/2.;
// 第二采样点
q = vec2(cos(degrees((i/repeats)*360.)),sin(degrees((i/repeats)*360.))) * (rand(vec2(i+2.,uv0.x+uv0.y+24.))+u_degree);
uv2 = uv0+(q*u_degree);
blurred_image += draw(uv2)/2.;
}
// 中和
blurred_image /= repeats;
// 降低亮度
blurred_image = dim(blurred_image, u_brightness);
// 导出颜色
gl_FragColor = vec4(blurred_image);
}
}%
也是这个报错
Cannot read property ‘passes’ of undefined
还没解决~~~
我是3.6.1 版本 退回到3.4版本,然后又用3.6再开的时候出现这个报错,估计是引擎版本的问题