gpt4 book ai didi

javascript - CocoonJS + Three.js webGLRenderTarget 静默死亡

转载 作者:行者123 更新时间:2023-11-29 22:01:17 25 4
gpt4 key购买 nike

我正在使用三个 v 67 的 WebGLRenderTarget 将第二个相机/场景渲染到缓冲区以供将来在纹理中使用。 Three.js 中的标准内容,但它在 CocoonJS 中悄然消亡。

我尝试过类似的方法来访问 CocoonJS 中的数据(直接从上下文访问 gl.readPixels,类似于 Three.js Retrieve data from WebGLRenderTarget (water sim) )。但似乎没有任何效果。还有其他人遇到过这个吗?

最佳答案

我已经调试了运行 Three.js 演示的 CocoonJS 的原生 C++ 代码,我发现了问题。

Three.js 为 WebGLRenderTarget 对象创建一个帧缓冲区,附加颜色缓冲区(纹理),创建一个 renderBuffer 并为其附加一个深度/模板渲染缓冲区。问题出在 WebGL renderbufferStorage 方法的第二个参数中,它会导致帧缓冲区状态不完整。 Three.js 应该检查该错误(使用 checkFramebufferStatus 方法)以避免静默错误,但它似乎没有。

我已经提交了修复,它将在下一个 CocoonJS 版本中准备就绪。

现在你可以在你的 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)

祝你游戏顺利:)

关于javascript - CocoonJS + Three.js webGLRenderTarget 静默死亡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23621721/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com