3.5.2 延迟管线浏览器上一直报警告 Active draw buffers with missing fragment shader outputs.

  • Creator 版本: 3.5.2 延迟管线skybox.effect导致一直弹这个警告,希望官方有空修复下,应该是skybox.effect没有对延迟管线进行处理

  • 目标平台:

  • 重现方式:

  • 首个报错:

[.WebGL-2D6F5C00] GL_INVALID_OPERATION: Active draw buffers with missing fragment shader outputs.
localhost/:1 [.WebGL-2D6F5C00] GL_INVALID_OPERATION: Active draw buffers with missing fragment shader outputs.
localhost/:1 [.WebGL-2D6F5C00] GL_INVALID_OPERATION: Active draw buffers with missing fragment shader outputs.
localhost/:1 [.WebGL-2D6F5C00] GL_INVALID_OPERATION: Active draw buffers with missing fragment shader outputs.
localhost/:1 [.WebGL-2D6F5C00] GL_INVALID_OPERATION: Active draw buffers with missing fragment shader outputs.

  • 之前哪个版本是正常的: 无
  • 重现概率: 必现

我看了源代码还涉及到原生的处理,就没动它了,希望能啥时候修复下,逼死强迫症哎!

大概应该是skybox.effect中未添加

if CC_PIPELINE_TYPE == CC_PIPELINE_TYPE_DEFERRED \

#include \

                                                               \

layout(location = 0) out vec4 fragColor0; \

layout(location = 1) out vec4 fragColor1; \

layout(location = 2) out vec4 fragColor2; \

                                                               \

void main () { \

StandardSurface s; surf(s);                                    \

fragColor0 = s.albedo;                                         \

fragColor1 = vec4(float32x3_to_oct(s.normal), s.roughness, s.metallic); \

fragColor2 = vec4(s.emissive, s.occlusion);                    \

}

没有对这fragColor1,fragColor2颜色缓冲进行输出,导致警告,没试加上会怎样。。是不是会导致莫名奇妙的问题啊!感觉skybox渲染可以单独拿出来render一下吧,别给他放不透明渲染队列了 不行吗?

又或者是别的问题勒,希望下个版本能完善延迟渲染管线