最新のゲームエンジンでのソフトウェアラスタライゼーションの使用法は何ですか?


9

今四半期はコンピュータグラフィックスコースを受講しています。私たちのラボプロジェクトの1つは、ソフトウェアのラスタライズに関するものです。

現在、私はプロジェクトの提案を計画しており、それを現代のゲーム開発において他の人々に役立つようにする方法を考えています。

少し調べた後、ソフトウェアオクルージョンカリングと呼ばれる手法を学びました。さまざまな解像度のバッファでソフトウェアラスタライズを行います。また、階層zバッファーを使用してオクルージョンを照会できます。

私の質問:ソフトウェアオクルージョンカリング以外の最新のゲームエンジンでのソフトウェアラスタライゼーションの使用法は何ですか?

回答:


4

私の知る限りでは、ソフトウェアオクルージョンカリング(既に説明しました)は、ソフトウェアラスタライザが引き続き使用されるほとんど唯一のものです。Procworldは同様の手法を使用して、巨大なボクセル環境を表示します。

錐台カリングのような他のほとんどのカリング方法はCPUで機能しますが、例に固執するために、錐台に対するテストはオブジェクトレベルで行われます。この交差テストは、本格的なソフトウェアラスタライザを使用するよりもはるかに簡単です。

場合によっては、オブジェクトのマウスピッキングにソフトウェアラスタライゼーションを使用できます。ゲームエンジンでは、これは多くの場合、物理エンジンと単純化されたメッシュを使用した光線と三角形の衝突を使用して解決されます。

最新のインタラクティブ3DアプリケーションでGPUを待機している間、CPUはアイドル状態にあるため、ソフトウェアラスタライザを使用してCPUでレンダリングするには、これらのアイドルサイクルを使用することが有益であると考えることができます。ここで問題となるのは、レンダリングがひどく複雑で複雑になるだけでなく、多くの場合帯域幅です。CPUでレンダリングされた画像は、表示される前にGPUに転送する必要があるため、メリットがキャンセルされる可能性があります。


0

「フォグオブウォー」をコンセプトにしたゲームには、多くの場合、各場所でのウォーフォグの状態を定義する可視グリッドがあります。ラスタライズは、グリッド上の特定の形状の戦争状態の霧を変更するために使用されることがあります。

たとえば、特定の半径のマップの円を明らかにする能力、またはおそらく正方形を明らかにする何かを使用します。

厳密にはグラフィックス関連ではありませんが、最新のゲームでのラスタライゼーションの使用と、RTSで使用されている技術が見られます。

ゲームの他のグリッドベースのデータは、同様の状況でラスタライズを使用できます。


-2

ラスタライゼーションは多くの部分からなる巨大なトピックであり、私はエンジンプログラマーではありませんが、ある種の概要を提供するために最善を尽くします(これは完全なリストからはほど遠いでしょう!)。

いくつかの非常に基本的な低レベルのものは次のとおりです。

  • 錐台カリング:カメラの錐台の外側にあるすべてのものを捨てます(カメラの視野領域と考えてください)。
  • 裏面カリング:カメラに向いていないすべてのポリゴンを破棄します。
  • ペインターのアルゴリズム:カメラまでの距離の順にオブジェクトを描画し、遠くのオブジェクトから始めて、カメラに向かっていきます。

ゲームで使用されるより高度なものには、次のようなものがあります。

  • テッセレーション:実際にはLODに非常によく似ていますが(以下を参照)、最新のDirectXバージョンではテッセレーションが導入され、自動メッシュ分割または自動削減が提供されます。これにより、グラフィックスのパフォーマンスが大幅に向上します。必要な場合はポリゴンを取得し、不要になった場合はポリゴンを削除できるためです。
  • LOD:詳細レベルシステムは、オブジェクトとカメラの間の距離に基づいてオブジェクトのメッシュを置き換えます。たとえば、キャラクターには3つのメッシュがあります。1つは10,000、1つは5,000、もう1つは1,000のポリゴンです。彼の真正面にいる場合、高解像度メッシュ(10,000ポリゴン)が表示されます。離れると、100 m後にキャラクターは中メッシュに置き換えられ、100 m後にキャラクターは低解像度メッシュに置き換えられます。メッシュを置き換える代わりに、メッシュを減らすことができますが、これはコーディングがより複雑になります。
  • バイナリスペースパーティション:スペースは2つのボリュームに分割されます。これは、目標に到達するまで繰り返されます。たとえば、画面に描画する必要があるポリゴンのみがスペースに含まれるまで
  • ポータルとセル:(別名ポータルカリング)は、屋内シーンや一人称シューティングゲームで使用されます。シーンは、ポータル(例:ドア)に接続されたセル(例:建物の部屋)に分割されます。ポータルを開いたり閉じたりするように設定できます。

グラフィックスパイプラインの基本を理解していると想定して、ラスタライズに焦点を当ててみました。また、ライティングやシェーディングなどを確認することもできます。

これらには、プロジェクトに含めることができるいくつかの可能なテクノロジが含まれています。私はstackexchangeに対する十分な評判がないので、私は多くのリンクを提供することはできませんが、あなたはグーグルですべてのものを見つけるでしょう:)


2
問題は、ソフトウェア(読み取り:CPU)のラスタライズについてです。あなたが提供した情報のいくつかは、一般的にラスタライズに関するものです。私の本では、いくつかのテクニックはラスタライズとはまったく関係がありません。手法でソフトウェアのラスタライゼーションがどのように使用またはメリットを得るかを回答で明確にしていただけませんか?
David Kuri
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.