現代のゲームでは、1つのシーンで同時にいくつのシェーダーが通常アクティブになっていますか?複数のシェーダーが使用されており、各フレームでゲームが切り替えられることを知っています。シェーダーを介してオブジェクトを描画することは一般的です。
- すべてのオブジェクトをシェーダー1で描画します
- シェーダー1からシェーダー2に変更する
- シェーダー2ですべてのオブジェクトを描く
それでも、特にシーン全体のグローエフェクト、テクスチャへのレンダリングなどのエフェクトの場合、それほど単純ではないことはわかっていますが、ほとんどの場合、そのように動作すると想定できますか?シェーダーの切り替えは高価な操作であるため、「シェーダーごとのグループ化」アプローチが適しています。
片側からは、シーンを高速でレンダリングするため、シェーダーを多くしすぎることはできません。一方、スキン、金属、水などには、多くの異なるシェーダー(または枝を持つ超シェーダー-非常に似ています)が必要です。
理論的、現代的、三人称のPC用3D探偵ゲーム(重要な場合はDirectX 11)は、いくつの(そしてどの)シェーダーを使用しますか?いくつかの「フレームX」で、アクティブのみをカウントする100個のアクティブシェーダーのように、5、20、またはそれ以上ですか?私はそれが1つの数字ではないことを知っていますが、PCゲームを考慮して、どのような規模と要因が重要なのかと思います。
私のサンプルゲームでは、フレームごとに約9〜11を使用します(別の小さなシェーダーまたは1つの超シェーダーとしてカウントします-今は関係ありません)。
- スキンシェーダー
- アイシェーダー(多すぎない?
- メタルシェーダー
- グラウンドシェーダー
- 雪/雨シェーダー(必要な場合)
- ウォーターシェーダー(シーンに水が存在する場合)
- グローシェーダー(一部の特殊効果が含まれる場合のみ)
- 発光シェーダー(街灯など)
- 標準シェーダー(他のすべての場合は標準シェーディングのみ)
- 法線マップ付きの標準シェーダー
- 2Dシェーダー(GUIなど)
それは「たくさん」ですか「あまり多くない」ですか?必要ないくつかの重要なシェーダーを忘れましたか?