存在Mask组件的时候,Mask所在节点会白屏,覆盖部分节点。
当前版本 creator 2.4.3
解决方法:如果没有3d模型交叉渲染,可以用RB_FMT_S8,这个就只有单独的蒙版缓冲区(Mask组件就是使用了蒙版缓冲区)。这种模式没有使用深度缓冲区,也就是说当有3d模型混合渲染的时候,截图时,会按照绘制顺序来渲染截图,没有3d的遮挡效果。
1赞
看源码发现原生的 RB_FMT_D24S8 相关代码被注释掉了。不知道是因为不兼容,还是其他原因。
一共有两个位置。
1、RenderBuffer.h
D24S8 = GL_DEPTH_STENCIL
2、DeviceGraphics.cpp
if (_frameBuffer->getDepthStencilBuffer()) attach(GL_DEPTH_STENCIL_ATTACHMENT, _frameBuffer->getDepthStencilBuffer());