请问下,creator2.4.3 自定义的effect在微信小程序上有什么要注意的吗?

creator2.4.3 写了一个自定义的effect, 在微信小程序上运行黑屏, 也没有报错(我故意写错有看到报错)
在PC, 手机浏览器, 微信开发工具里都是好好的, 是有什么细节要处理的吗?

另外, 大家有没有, 好看的漩涡和时空隧道的effect, 有的麻烦推荐 、分享一下。

代码如下(时空隧道):

// Copyright (c) 2017-2018 Xiamen Yaji Software Co., Ltd.  

CCEffect %{
  techniques:
  - passes:
    - vert: vs
      frag: fs
      blendState:
        targets:
        - blend: true
      rasterizerState:
        cullMode: none
      properties:
        texture: { value: white }
        alphaThreshold: { value: 0.5 }
}%


CCProgram vs %{
  precision highp float;

  #include <cc-global>
  #include <cc-local>

  in vec3 a_position;
  in vec4 a_color;
  out vec4 v_color;

  #if USE_TEXTURE
  in vec2 a_uv0;
  out vec2 v_uv0;
  #endif

  void main () {
    vec4 pos = vec4(a_position, 1);

    #if CC_USE_MODEL
    pos = cc_matViewProj * cc_matWorld * pos;
    #else
    pos = cc_matViewProj * pos;
    #endif

    #if USE_TEXTURE
    v_uv0 = a_uv0;
    #endif


    v_color = a_color;

    gl_Position = pos;
  }
}%

CCProgram fs %{
  precision highp float;
  
  #include <alpha-test>
  #include <texture>
  #include <cc-global.chunk>

  in vec4 v_color;

  #if USE_TEXTURE
  in vec2 v_uv0;
  uniform sampler2D texture;
  #endif


  vec2 cc_nativeSize;

 
    void mainImage(out vec4 o, vec2 d){
       vec2 t=vec2(cc_time.x*3., 2.);
       vec2 v=0.1*cos(t)-0.3;
       float w=length(d=d/cc_nativeSize.y-.9-v);
       float k=25.;
       int y=int(mod(k/w+ k*t, 9.));

       vec4 xx = exp2(vec4(y*7+int(abs(mod(k*(atan(d.x, d.y)+v), 13.)-6.))));
       vec4 m = mod((y>3?35552534e8:56869384.)/xx, 2.);

       o=exp(-k*abs(w+v.x))+cos(vec4 (y, d, 1))*w*w*floor(m)+0.2;
   }

    

  void main () {

     cc_nativeSize = vec2(450., 512);
    
     mainImage(gl_FragColor, v_uv0.xy*cc_nativeSize.xy); 
  }
}%

运行效果如下:(漩涡跟时光隧道的特效在微信小程序上都是黑屏, 以下视频是PC上的)
隧道效果.zip (1.4 MB)

@tbwind @1111949 @469526467

围观,效果很酷

mark 莫非是动态合图问题?

检测一下是不是shader里的浮点数写法问题,整数不能隐式转浮点。OpenGL和OpenGL ES 对应的glsl 语法和标准有些区别,比如vec4(3.0,3.0,3.0,1),这样写可能会报错,微信可以开控制台调试,看下有无错误信息。

嗯, 同楼上意见, 要不先把1.或1这些写法统一改成1.0试试