我想擴展一個使用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