1

私はいくつかの例をいじってみましたが、それらは本当に良さそうです。

しかし、Bullet は独自のベクトル構造体と数学ユーティリティを使用していることに気付きました。残りの DirectX アプリケーションには DirectXMath を使用しています。つまり、これは 2 組の数学関数があることを意味します。

DirectXMath の方が効率的だと思いますが、Bullet は 130,000 行の長さなので、リファクタリングを開始する前に確認する必要があります。

4

1 に答える 1

3

リファクタリングする必要はほとんどありません。

これは、プロセスで発生する可能性のあるエラーの量を特に考慮すると、困難な作業に聞こえます(また、弾丸の計算も非常に高速で、d3d関数の呼び出しにインライン化されるという利点があります)。

シミュレーションに弾丸データ型を使用し、必要に応じてそれらをd3d数学データ型に変換するだけです(同じメモリレイアウトを使用しているため、ポインターキャストが機能し、コストはほとんどゼロです。いくつかのc ++キャスト演算子を使用すると、プロセスもほぼ完了します。トランスペアレント)

于 2012-11-13T07:13:12.917 に答える