3Dタイトルのレベルコンテンツのコンテンツ予算(ポリゴン数など)を設定する達成可能な方法は何ですか?


13

答えではswquinnためにこの質問を、答えは私が答えを聞いてみたいことをより適切な質問を提起しました。独自の戦略を投稿します(答えとして受け入れないことを約束します)が、他の人の意見を聞きたいです。

具体的には、コンテンツチームに適切な予算をどのように設定しますか。通常、開発で最初に尋ねられる質問の1つは、ポリゴンの予算はいくらですか?もちろん、最近では頂点/ポリゴン数だけが制限要因になることはめったになく、代わりにシェーダーの複雑さ、フィルレート、ライティングの複雑さがすべて影響します。

コンテンツチームが望んでいるのは、コンテンツが実際にエンジンに入った後もあまり重くないと合理的に期待できるようにするためのハードナンバー/制限です。「依存する」は特に有用な答えではないことを考えると、a)誤解を招いたり、b)間違ったりせずに実行可能な制限を与えることができる戦略を聞きたいと思います。


1
これは、「本番」よりも「本番前」です。
パトリックヒューズ

回答:


5

私の理解では、スキンを適用してリギングされたモデルに詳細を追加するよりも、モデルの複雑さを軽減する方がはるかに簡単です。一部の企業は、非常に詳細な資産をプールし、状況に応じてそれらを縮小することでこれを利用していることを知っています。

ValveはこれをNPCで行います。NPCは、マッピングを一切行わずに非常に詳細にモデル化され、詳細なモデルに基づいて適用される(または自動的に作成される)さまざまなマッピングテクニックなど、現在のテクノロジやトリックで受け入れられるレベルまで詳細を縮小します。

また、これは将来の校正にも役立ちます。新しいプロジェクトごとにアセットを再作成するだけで、アセットを再作成する必要がないためです。これには、アセットの開発を開始する前に、チームがコンテキスト固有のベンチマークを実行するのを待つ必要がないという利点もあります。アーティストは1日目から完全に参加できます。


2
ただし、実際には予算を提供するわけではありません。「必要に応じて複雑にし、後で規模を縮小する」ことが生産戦略です。:-/
MrCranky

16

さて、私たちの戦略は次のとおりです。

  • 最終コンテンツにほぼ適切なスケールのプレースホルダージオメトリを作成します。それは建物やキャラクターになります。最終的なコンテンツのように見える必要はありません。ボックス/球体などでもかまいませんが、適切な数のポリゴンを持つようにテッセレーションする必要があります。キャラクターを作成している場合は、代表的な数のボーンを作成します。
  • または、他の人のジオメトリを使用します。品質レベルを一致させようとしているタイトルがある場合は、モデルを取得する方法を見つけてください(おそらくDirectXシーングラバーを使用します)。
  • ジオメトリに代表的なシェーダーがあることを確認してください。複数のテクスチャをブレンドする予定がある場合は、テクスチャがすべて単色であっても、それを行います。テクスチャがすべて単色であっても、重要な解像度であることを確認してください。
  • 賢明な数のライトを入れてください。
  • カメラを現実的な場所に置き、可能な限り多くのジオメトリを指してください(たとえば、丘の上に立ち、レベルを見渡してください)
  • 最速および最速のターゲットハードウェアにシーンをロードし、FPSを測定します。
  • ジオメトリ/ライト/シェーダー/テクスチャ解像度の量を上下に変えて、トレードオフが何であるかを把握します(たとえば、12個の余分なライトを使用できますが、ポリゴン数を半分に削減する必要があります)。

最後に:あなたの番号に保守的になります。ゲームで実行する必要があるのはレンダリングだけではないため、フレームのどの割合をレンダリングに費やし、そのターゲットにするかを決定します。たとえば、フレームの3分の2を30fpsのレンダリングに費やしたい場合は、テストで1s / 22ms(45 fps)をターゲットにします。

これらのすべてのうち、あなたは例のシーンを与えることができるはずです。たとえば、モデルごとに200Kポリゴン、5つの静的ライト、3つ以下の動的ライト、15文字の50Kポリゴンと30のボーンを含むシーンがあり、60fpsで実行され、メモリで30MBを占有します。


2
tl; dr:自分でベンチマーク;)
ニコルボーラス

+1これは、構築と測定を行う唯一の方法です。
パトリックヒューズ

本当に?私たちが考えていなかった、よりスマートで安価なソリューションがあることを望んでいました。
MrCranky

@MrCranky残念ながら、はい。既存のエンジンを使用している場合は、既存のサンプルデータを測定し、それをベースラインとして使用して特にゲームの数値をカスタマイズすることにより、プロセスをすぐに開始できます。すべてのゲームは異なります。
パトリックヒューズ

4

頂点数

私は15年以上にわたって「ポリゴンカウント」を調査してきました。特に最新のソフトウェアとハ​​ードウェアでは、制限がいくつあるかを厳密に判断する方法はありません。制限は、レベル全体で4,000個の三角形のみをサポートするエンジンではるかに役立ちました。これで、ゲーム環境のほとんどのオブジェクトが個別にそれを超えることがわかります。

最終的に重要なのは、エンジンがポリゴンストリップで実行していることです。

エンジンが各モデルをレンダリングするとき、UVマッピングされた座標、三角形で表されるテクスチャ/マテリアルを取得し、三角形のストリップを作成します。ほとんどの場合、三角形のファンは三角形ごとに別々の三角形ストリップに分割されます。これにより、三角形のストリップの数が増え、パフォーマンスが低下します。

これを修正する主な例は、シリンダーの平らな上部です。3Dパッケージは通常、中心に頂点を持つ三角形のファンをセットアップします。エッジと中央の頂点を削除してから、面全体に四角形を作成します。これにより、ポリゴン数を変更せずに、複数の片面ストリップではなく単一の三角形ストリップに三角形化する必要があります。

ポリゴンカウントをガイドとして使用し、モデルの作成方法に注意し、メッシュをUVマップします。多くの場合、UVマッピングがより有益な場合、メッシュの分割が少なくなります。

次に、法線マップで偽装できるものを検討します。多くの詳細なケースを持つ平面は通常、法線マップされます。曲線は、シルエットが見える場所でのみ丸くする必要があります。曲面を正面から見ると、高解像度の資産とゲーム解像度の資産の違いに気付かないはずです。法線マップが含まれる場合、シルエットがモデルの違いを生みます。シルエットは、テッセレーションとディスプレイスメントマッピングを使用して、DirectX 11で変更できるようになりました。

ゲームデザイン

ゲームを設計するときは、次のことを考慮してください。

  1. ゲームの種類を定義する(例:アクション/アドベンチャー/レース/スクローラー)
  2. ビュータイプを定義します(たとえば、一人称/三人称/正書法)
  3. 市場の計算能力を定義します。(例:愛好家/カジュアルゲーマー)
  4. 達成したい視覚的なスタイルを作成します。たとえば、Crysis 2、Borderlands、Bloodforge、またはGears of Warのように見せたいですか?
  5. プレーヤーに重要なオブジェクトを定義します。あなたの小道具は焦点の中心になりますか、それとも単に背景になりますか?
  6. 視覚メッシュは衝突メッシュでもありますか?

ゲームとビューの種類を使用して、ビューの深度を決定します。あなたは遠くの物体を見ますか?廊下シューターなど、視界が限られたものを作っていますか?(例:Gears of War)開放的な風景で何かを自由にローミングしていますか?(例:Skyrim)

それがどのように見えるべきかを知ったら、あなたは似ているゲームを研究することができます。

アニメーションにより、ポリゴン数を増やす能力が制限されます。静的メッシュ、同じ位置にとどまるものはすべて、GPUとCPUで最も安価です。特に物理オブジェクトではない場合。物理オブジェクトの場合、多くの場合、単純な衝突ハルと複雑な視覚メッシュを作成できます。ほとんどのゲームでは、違いに気付くのに十分な相互作用がありません。アニメーションは、頂点ごとにいくつかのボーンを使用してモデルを3次元的に移動し、それぞれのウェイトをブレンドします。これはCPU時間のコストが高くなる可能性があり、AIおよびソフトウェアベースの物理と衝突する可能性があります。モデル全体のボーン数の影響を受ける頂点が増えると、CPUパフォーマンスが低下します。これは、ゲームキャラクターが「アート」と見なされるもう1つの理由です。ポリゴンの制限を定義することは非常に困難です。

私の例

私はUDKを使用して、ペースの遅いサードパーソンシューティングゲームを作成し、いつでも画面上のプレイヤーとNPCの数を制限しています。このために、プレイヤーごとに約10,000個の三角形、一般的な一般的な敵には5,000個の三角形、そして「ボス」スタイルのキャラクターを作成する場合は約15,000個を目指しています。さらに、約4,000個の三角形の第三者の武器が非常に詳細に表示されます。10,000個の三角形の周りの車両。表示距離が長いため、すべてに詳細レベルが必要です。

一人称を作成する場合、武器は約2,000個の三角形、武器は約5,000個の三角形に基づいており、それぞれに通常のマッピングがあります。

結論

これはおそらく「依存する」という意味ですが、私はそれが人々がしばしば疑問に思ういくつかのことを明らかにするかもしれないと思いました。

  1. ポリゴン数をガイドとして使用します。
  2. モデル化する代わりに法線マップできるエリアを見てください。
  3. 三角形のファンを配置するときは、可能であればストリップを作成するよう注意してください。
  4. UVマッピングでは、ストリップを念頭に置いて、メッシュの分割を少なくします。

2

私が考えることができる1つの方法は、自動的に構築されたシーンを使用して、探している情報を解読できる統計データを生成することです。

  1. 大量のアセットを取得します(潜在的に自動生成される可能性があります)。

  2. アセットプールを使用してエンジンでロードできるシーンを生成するツールを作成します。

  3. カメラをシーン内で移動させるボットを実行します。また、他のボットを実行して、ライトなどのシーンをより動的にすることもできます。

  4. 可能な限り多くの情報を収集し、データベースに投入します。fps、ポリゴン数、シェーダーの変更、ライトの数、描画呼び出しなど。

  5. データベース内のデータをできるだけ多くの方法で表示するためのツールを作成/取得します。

このリンクはさらにいくつかのアイデアを提供します:Dead Rising Tools


私たち自身の戦略の中で最も費用のかかる部分に取り組むので、私はこの答えが好きです。誰かが代表的なシーンを構築するために努力する必要があります。アルゴリズム生成、または多数の適切なサイズのアセットをすばやく配置するスクリプトは、テスト可能なシーンの作成を大幅に高速化します。私はより一般的な答えを受け入れますが、これは賞金に値すると思います。
MrCranky
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.