カラー アルファ コンポーネントを使用してスプライト間の衝突を検出する場合、ワールド空間とビュー (ローカル) 空間のどちらで実行する必要がありますか? この種のトピックへのリンクまたは提案された本は高く評価されます。
ありがとう:)
カラー アルファ コンポーネントを使用してスプライト間の衝突を検出する場合、ワールド空間とビュー (ローカル) 空間のどちらで実行する必要がありますか? この種のトピックへのリンクまたは提案された本は高く評価されます。
ありがとう:)
ここで考慮すべき点がいくつかあります。
ワールドのサイズに比べてスプライトが非常に小さい場合、または固定小数点演算でトリックを実行している場合、ワールド空間で演算を行うと不正確な結果が得られる可能性があります。ローカル空間の値ははるかに小さい可能性が高いため、精度が向上します。
一方、両方のオブジェクトのワールド空間マトリックスが既知であるか、レンダリングできるようにフレームごとに計算される可能性があります。主な例外は、それらのオブジェクトがカリングされた場合です。その場合、それらのオブジェクトで複雑な物理をシミュレートしたいというあなたの欲求に疑問を呈します. ワールド空間行列が利用可能な場合、一方を他方のローカル空間に切り替えるために追加の行列乗算を行う理由はありません。さらに、複数の衝突が同時に発生した場合は、単純にワールド空間で計算を行うのではなく、ローカル空間に 2 回変換する必要があります。
とは言え、多分関係ない。スプライトの衝突はロケット科学ではありません。典型的なユーザーは、値が妥当である限り、浮動小数点計算の違いを見分けることはできません。最新のプロセッサでは、フレームごとに少数の乗算を行っても違いはありません。ラグドールを使ってスプライト ベースの MMORPG をやろうとしているわけではないので、実際には、どちらか好きなものを選んでください。
使用する座標空間は、実際の結果にどのように影響しますか? より速いものを選択するだけでよいと思います。