ラスタライゼーションは多くの部分からなる巨大なトピックであり、私はエンジンプログラマーではありませんが、ある種の概要を提供するために最善を尽くします(これは完全なリストからはほど遠いでしょう!)。
いくつかの非常に基本的な低レベルのものは次のとおりです。
- 錐台カリング:カメラの錐台の外側にあるすべてのものを捨てます(カメラの視野領域と考えてください)。
- 裏面カリング:カメラに向いていないすべてのポリゴンを破棄します。
- ペインターのアルゴリズム:カメラまでの距離の順にオブジェクトを描画し、遠くのオブジェクトから始めて、カメラに向かっていきます。
ゲームで使用されるより高度なものには、次のようなものがあります。
- テッセレーション:実際にはLODに非常によく似ていますが(以下を参照)、最新のDirectXバージョンではテッセレーションが導入され、自動メッシュ分割または自動削減が提供されます。これにより、グラフィックスのパフォーマンスが大幅に向上します。必要な場合はポリゴンを取得し、不要になった場合はポリゴンを削除できるためです。
- LOD:詳細レベルシステムは、オブジェクトとカメラの間の距離に基づいてオブジェクトのメッシュを置き換えます。たとえば、キャラクターには3つのメッシュがあります。1つは10,000、1つは5,000、もう1つは1,000のポリゴンです。彼の真正面にいる場合、高解像度メッシュ(10,000ポリゴン)が表示されます。離れると、100 m後にキャラクターは中メッシュに置き換えられ、100 m後にキャラクターは低解像度メッシュに置き換えられます。メッシュを置き換える代わりに、メッシュを減らすことができますが、これはコーディングがより複雑になります。
- バイナリスペースパーティション:スペースは2つのボリュームに分割されます。これは、目標に到達するまで繰り返されます。たとえば、画面に描画する必要があるポリゴンのみがスペースに含まれるまで
- ポータルとセル:(別名ポータルカリング)は、屋内シーンや一人称シューティングゲームで使用されます。シーンは、ポータル(例:ドア)に接続されたセル(例:建物の部屋)に分割されます。ポータルを開いたり閉じたりするように設定できます。
グラフィックスパイプラインの基本を理解していると想定して、ラスタライズに焦点を当ててみました。また、ライティングやシェーディングなどを確認することもできます。
これらには、プロジェクトに含めることができるいくつかの可能なテクノロジが含まれています。私はstackexchangeに対する十分な評判がないので、私は多くのリンクを提供することはできませんが、あなたはグーグルですべてのものを見つけるでしょう:)