Cocos 3.8.6的3D粒子系统不支持自定义菲涅尔Shader

版本:3.8.6

在3D粒子系统中,当我想使用粒子发射模型的时候
我自定义的菲涅尔Shader无法使用
查了半天问题之后发现,3D粒子系统中的Mesh根本抓取不到模型的法线信息,导致我的自定义Shader一直报错,什么时候能修复这个问题,并且支持呢?

粒子的shader也是支持获取Mesh法线的,以cpu粒子为例,可以类似这样试试

// vs
CCProgram particle-vs %{
  #include <builtin/internal/particle-vs-legacy>

  #if CC_RENDER_MODE == RENDER_MODE_MESH
    out vec3 v_normal;
  #endif

  vec4 vert() {
    #if CC_RENDER_MODE == RENDER_MODE_MESH
      v_normal = a_normal;
    #endif
    return lpvs_main();
  }
}%
// fs
CCProgram tinted-fs %{
  #pragma define RENDER_MODE_MESH 4
  // ...

  #if CC_RENDER_MODE == RENDER_MODE_MESH
    in vec3 v_normal;
  #endif

  vec4 add () {
    // vec4 col = ...;

    #if CC_RENDER_MODE == RENDER_MODE_MESH
      col.rgb = v_normal;
    #endif

    return CCFragOutput(col);
  }
}%

Animation

2赞