WebGLを使用して、バイナリエンコードされたメッシュファイルをレンダリングしています。バイナリファイルはビッグエンディアン形式で書き出されます(これは、ファイルを16進エディターで開くか、フィドラーを使用してネットワークトラフィックを表示することで確認できます)。Float32ArrayまたはInt32Arrayを使用してバイナリ応答を読み取ろうとすると、バイナリはリトルエンディアンとして解釈され、値が間違っています。
// Interpret first 32bits in buffer as an int
var wrongValue = new Int32Array(binaryArrayBuffer)[0];
型付き配列のデフォルトのエンディアンへの参照がhttp://www.khronos.org/registry/typedarray/specs/latest/に見つからないので、何が問題なのか疑問に思います。型付き配列を使用して読み取る場合、すべてのバイナリデータはリトルエンディアンであると想定する必要がありますか?
この問題を回避するには、DataViewオブジェクト(前のリンクで説明)を使用して、次のコマンドを呼び出します。
// Interpret first 32bits in buffer as an int
var correctValue = new DataView(binaryArrayBuffer).getInt32(0);
「getInt32」などのDataView関数は、デフォルトでビッグエンディアン値を読み取ります。
(注:Google Chrome15とFirefox8を使用してテストしましたが、どちらも同じように動作します)