gpt4 book ai didi

three.js - 使用 Three.js 将场景渲染到自定义网格上

转载 作者:行者123 更新时间:2023-12-02 11:28:58 29 4
gpt4 key购买 nike

在搞乱 this demo of Three.js rendering a scene to a texture 之后,我成功地在我的项目中复制了它的本质:在我的主场景中,现在有一个球体,并且通过 THREE.WebGLRenderTarget 缓冲区在其上绘制辅助场景。

不过,我真的不需要一个球体,这就是我遇到了巨大的砖墙的地方。当尝试将缓冲区映射到我的简单自定义网格上时,我收到以下错误的无限流:

three.js:23444 WebGL: INVALID_VALUE: pixelStorei: invalid parameter for  alignment
three.js:23557 Uncaught TypeError: Cannot read property 'width' of undefined

我的几何形状,近似 annular形状,是使用 this code 创建的。我通过将 {map: new THREE.Texture(canvas)} 传递到 Material 选项中,成功地将 canvas 映射到其上,但如果我使用 {map: myWebGLRenderTarget} 我收到上面的错误。

粗略地浏览一下调用堆栈,发现 Three.js 假设 myWebGLRenderTarget 上存在 texture.image 属性并尝试调用 在其上clampToMaxSize

这是 Three.js 中的错误还是我只是做错了什么?由于我只需要平面渲染(使用 MeshBasicMaterial),因此在调整上面的渲染到纹理演示时我做的第一件事就是删除着色器的所有痕迹,并且仅使用领域。我是否需要恢复这些着色器才能使用 UV 映射和自定义网格?

最佳答案

无论其值(value)如何,我不必要地设置了 needsUpdate = true在我的纹理上。 (needsUpdate 的处理显然假定存在纹理所基于的 <canvas>。)

关于three.js - 使用 Three.js 将场景渲染到自定义网格上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28079101/

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