2

Three.js の R62 を使用していますが、オブジェクトがシーン内の間違った場所にある原因となる丸めエラーがいくつかありました。私は数ピクセルについて話しているのではありません。オブジェクトは、予想される位置からかなり離れています。それMatrix4が問題でFloat32Arrayあり、私の計算には不十分であることがわかりました。だから私はそれをに変更しFloat64Array、すべてがうまくいきました。

ターゲットグループにとってお気に入りのブラウザーであるため、Firefox でのみテストしました。しかし、今度はアプリケーションの相互運用性について話すために、Chrome/IE/Opera でもアプリケーションをテストする必要がありました。私は数ヶ月前にそれを行い、すべてうまくいきましMatrix4たが、Chrome/Opera で何も起こらず、コンソールにTypeErrors.

数時間後、WebGLRenderer関数内setProgramで次の行がエラーを引き起こしていることがわかりました。

_gl.uniformMatrix4fv( p_uniforms.projectionMatrix, false, camera.projectionMatrix.elements );

Chrome/Opera は賛成Uncaught TypeError: Type errorですcamera.projectionMatrix.elementsが、なぜですか? Google によると、この WebGL 関数は Float64array ではなく Float32Array を想定しているとのことですが、Firefox でエラーが発生しないのはなぜですか? Float64Array で動作させるにはどうすればよいですか? または、大きな丸め誤差を回避する別の可能性はありますか?

4

0 に答える 0