私はいくつかの例をいじってみましたが、それらは本当に良さそうです。
しかし、Bullet は独自のベクトル構造体と数学ユーティリティを使用していることに気付きました。残りの DirectX アプリケーションには DirectXMath を使用しています。つまり、これは 2 組の数学関数があることを意味します。
DirectXMath の方が効率的だと思いますが、Bullet は 130,000 行の長さなので、リファクタリングを開始する前に確認する必要があります。
私はいくつかの例をいじってみましたが、それらは本当に良さそうです。
しかし、Bullet は独自のベクトル構造体と数学ユーティリティを使用していることに気付きました。残りの DirectX アプリケーションには DirectXMath を使用しています。つまり、これは 2 組の数学関数があることを意味します。
DirectXMath の方が効率的だと思いますが、Bullet は 130,000 行の長さなので、リファクタリングを開始する前に確認する必要があります。
リファクタリングする必要はほとんどありません。
これは、プロセスで発生する可能性のあるエラーの量を特に考慮すると、困難な作業に聞こえます(また、弾丸の計算も非常に高速で、d3d関数の呼び出しにインライン化されるという利点があります)。
シミュレーションに弾丸データ型を使用し、必要に応じてそれらをd3d数学データ型に変換するだけです(同じメモリレイアウトを使用しているため、ポインターキャストが機能し、コストはほとんどゼロです。いくつかのc ++キャスト演算子を使用すると、プロセスもほぼ完了します。トランスペアレント)