これはおそらくトレードオフを扱うコード形式&です。おそらく明らかです。OpenGLおよび独自のライブラリでベクター(および他の構造体)を渡す
裏話:C++からJavaへ移行する場合
私は今、どのように対処することを確認していない違いが発生しました。
すべてのopengl呼び出しでは、オフセットを持つ配列と、渡された配列がどのように構造化されているかを関数に伝える追加パラメタを渡します。例を挙げるとglDrawArraysとする。
だから、描画するときには、すべての頂点を配列内に持つことが最善の方法です.FlatBufferです。 しかし、私はまた、私の物理学の呼び出しの頂点が必要です。
質問:
私は、彼らが可能性があるため、彼らはOpenGLの関数に渡すことはできませんので、Vec3fとPoint3fクラスを扱う、物理学のための別のバッファを作成し、FloatBufferにすべての更新をその結果をコピーする必要があります断片化されてもよい(またはそれらは?)。
また、配列と一緒にオフセットをとる構造体を処理するための別のクラスを用意する必要があります。
public static void addVec3(float[] vec3in_a, int offset_a, float[] vec3in_b, int offset_b, float[] vec3out, int offset_out)
オフセットとは何でしょうか。 vec3のサイズを考慮し、適切に移動する必要があります(offset_a * = 3)。Vec3の配列が動作するか、通常の浮動小数点配列としてオフセットする必要があります。
ありがとうございました。
さらに説明すると、私はアンドロイドのために開発しています。今私はFBがシステムメモリであり、浮動小数点数の配列がJava仮想空間にあることを理解しています。 1つの大きなバッチでコピーすると、パフォーマンスが向上するはずです。しかし、その答えは注目に値するものでした。ありがとう:) – Greg