我想扩展一个使用Three.js作为API的JS游戏。最近已经发生的一个问题是这样的错误:什么时候“WebGLRenderingContext.uniform4fv的参数2不能”使用three.js出现?
TypeError: Argument 2 of WebGLRenderingContext.uniform4fv could not be converted to any of: Float32Array, UnrestrictedFloatSequence.
在这行代码导致这就是游戏的基本渲染电话:
renderer.render(scene, camera);
我现在可以在这里粘贴乱码,但多数民众赞成不是为什么我在这里。我希望有人也曾经历过,并能告诉我问题是什么。
注:
I.原始误差是从内three.js所(内部呈现的东西)
three.min.js:7:118
II.The第一帧可以没有任何问题地呈现,之后的错误发生
三,现场作一些简单的物体,但问题的根源是这样的对象:
this.geometry = new THREE.PlaneGeometry(0.8, 0.8);
this.texture = new THREE.TextureLoader().load("graphics/racers/" + racer + ".png", function() { return;});
this.texture.generateMipmaps = false;
this.texture.minFilter = THREE.NearestFilter;
this.texture.magFilter = THREE.NearestFilter;
this.texture.repeat.set(0.25, 1);
this.material = new THREE.MeshBasicMaterial({ map: this.texture, transparent: true });
this.mesh = new THREE.Mesh(this.geometry, this.material);
scene.add(this.mesh);
如果你有什么事随时问。
提前致谢!
编辑: 我发现错误只出现在相机看到Mesh-Object(上面提到的)时!
其实我也有这个想法,所以我确定纹理在我继续之前被加载。该错误仍然存在,但我能够找到源代码:将“texture.offset”更改为例如'0.25'会导致渲染在下一帧失败。我不确定为什么会发生这种情况,但我会再次看看异步加载。 (注意:当我不应用偏移量时,纹理渲染到相机时没有任何错误(但也没有偏移))。谢谢你的帮助!非常欢迎! – Luftbaum