使用CanvasRenderer的three.js纹理,但使用WebGLRenderer显示为黑色

three.js textures working with CanvasRenderer, but show up as black with WebGLRenderer

本文关键字:WebGLRenderer 显示 黑色 CanvasRenderer three js 纹理 使用      更新时间:2023-09-26

我正在画布上绘制图像(使用http://haldean.github.com/citycanvas/city.js)然后将其用作纹理。当我使用三个.js的CanvasRenderer时,这非常有效,但当使用WebGLRenderer的时候,纹理显示为黑色。我将纹理生成为边长为256的正方形。

演示和代码在这里,顶部是CanvasRenderer,底部是WebGLRenderer:http://haldean.github.com/citycanvas/3d.html

这不会是一个问题,只是CanvasRenderer的性能在渲染大量几何体时相当差,而WebGL的性能似乎要好得多。(考虑到这一点,如果有人有任何建议可以提高CanvasRenderer的效率,那也太好了)。谢谢

问题解决了:我需要将mesh.dynamic = true添加到网格中,将texture.needsUpdate = true添加到纹理中。