Javascript CocoonJS+;Three.js webGLRenderTarget无声死亡
我正在使用three v 67的WebGLRenderTarget将第二个摄影机/场景渲染到缓冲区,以便将来在纹理中使用。在Three.js中是标准的东西,但在CocoonJS中它会悄然消亡 我尝试过类似的方法来访问CocoonJS中的数据(直接从上下文访问gl.readPixels,类似于)。但似乎什么都不管用。Javascript CocoonJS+;Three.js webGLRenderTarget无声死亡,javascript,three.js,cocoonjs,Javascript,Three.js,Cocoonjs,我正在使用three v 67的WebGLRenderTarget将第二个摄影机/场景渲染到缓冲区,以便将来在纹理中使用。在Three.js中是标准的东西,但在CocoonJS中它会悄然消亡 我尝试过类似的方法来访问CocoonJS中的数据(直接从上下文访问gl.readPixels,类似于)。但似乎什么都不管用。 有没有其他人遇到这个问题?< /P> < P>我已经调试了CuangONS的本地C++代码,运行了三个JS演示,我发现了问题。 Three.js为WebGLRenderTarget对
有没有其他人遇到这个问题?< /P> < P>我已经调试了CuangONS的本地C++代码,运行了三个JS演示,我发现了问题。 Three.js为WebGLRenderTarget对象创建帧缓冲区,附加颜色缓冲区(纹理),创建渲染缓冲区并向其附加深度/模具渲染缓冲区。问题出在WebGL renderbufferStorage方法的第二个参数中,该参数导致帧缓冲区状态不完整。Three.js应该检查该错误(使用checkFramebufferStatus方法)以避免无提示错误,但似乎没有 我已经提交了修复程序,它将在下一个版本中准备好 现在,您可以在JS代码中修复它(在下一版本中,您将不需要此修复) 只需在Three.js中替换这一行
j.renderbufferStorage(j.RENDERBUFFER,j.DEPTH_STENCIL,b.width,b.height)
关于这一点:
j.renderbufferStorage(j.RENDERBUFFER,navigator.isCocoonJS?35056:j.DEPTH_STENCIL,b.width,b.height)
祝你的游戏好运:)