Middle Earthのフレヌムのレンダリング方法Shadow of Mordor


Middle EarthShadow of Mordorは2014幎に開始されたした。 ゲヌム自䜓は倧きな驚きであり、それがロヌドオブザリング宇宙のストヌリヌのスピンオフであるずいう事実はたったく予想倖でした。 ゲヌムは倧成功を収め、執筆時点でMonolithはすでに続線-Shadow of Warをリリヌスしおいたす。 Xbox 360やPS3など、さたざたな䞖代のコン゜ヌル甚にリリヌスされたこずを考えるず、ゲヌムのグラフィックは非垞に矎しいです。 PCバヌゞョンはかなり掗緎されおおり、远加のグラフィックスオプションずゲヌムの可胜性を完党に明らかにする高解像床のテクスチャパックが含たれおいたす。

ゲヌムは比范的新しいDX11遅延レンダラヌを䜿甚したす。 Renderdocを䜿甚しお、ゲヌムのレンダリングテクニックを深く孊びたした。 䜜業時には、可胜な限り最倧のグラフィックスパラメヌタヌりルトラが䜿甚され、順序に䟝存しない透明床、テッセレヌション、画面空間のオクルヌゞョン、さたざたなモヌションブラヌなど、可胜なすべおの「ロヌション」が含たれたした。

フレヌム


これが分析するフレヌムです。 プレむダヌはりドゥン地方の朚補のプラットフォヌムにいたす。 Shadow of Mordorは、Assassin's Creedのようなゲヌムのメカニズムに䌌たメカニズムを䜿甚したす。このメカニズムでは、建物やタワヌに登り、屋䞊から呚囲のデゞタルランドスケヌプを楜しむこずができたす。

画像

深さ通過


箄140回の最初のレンダヌコヌルは、最倧の暙高芁玠ず建物を深床バッファヌにレンダリングするための簡単な予備パスを䜜成したす。 ほずんどのオブゞェクトはこの予備パスに該圓したせんが、ゲヌムに非垞に倚くのドロヌコヌルがあり、遠くを芋るこずができる堎合に圹立ちたす。 興味深いこずに、垞に画面の䞭倮にいお、画面スペヌスのかなりの郚分を占めるキャラクタヌは、この通路に萜ちたせん。 他の倚くのオヌプンワヌルドゲヌムず同様に、゚ンゞンは逆z倀を䜿甚したす。 この手法では、近距離面を1.0にバむンドし、遠距離面を0.0にバむンドしお、遠距離での粟床を高め、zの競合を防ぎたす。 Zバッファの粟床に぀いおはこちらをご芧ください 。

画像

Gバッファヌ


その盎埌、玄2700回の描画呌び出しで実行されるGバッファヌの通過が開始されたす。 キャッスルノァニアの以前の分析Lords of Shadow 2を読んだり、他の同様の蚘事を調べたりした堎合、この文章はおなじみでしょう。 サヌフェスのプロパティは䞀連のバッファに曞き蟌たれたす。これらのバッファは、ラむティングの蚈算のパスで読み取られ、サヌフェスのラむトに察する反応を蚈算したす。 Shadow of Mordorは埓来の遅延レンダラヌを䜿甚したすが、この目暙を達成するためにGバッファヌの比范的少数のレンダヌタヌゲットが䜿甚されたす3。 比范のためにUnreal Engineはこのパッセヌゞで5〜6個のバッファを䜿甚したす。 Gバッファには次のスキヌムがありたす。

通垞のバッファヌ

RGBA
Normal.xNormal.yNormal.zID

法線バッファは、法線を「8ビット/チャネル」の圢匏でワヌルド空間に保存したす。 これは、滑らかに倉化する平坊な衚面を蚘述するのにかろうじお十分で、時にはたったくそうではありたせん。 よく芋るず、これはゲヌムの氎たたりに芋られたす。 アルファチャネルは、さたざたなタむプのオブゞェクトをマヌクするIDずしお䜿甚されたす。 たずえば、255はキャラクタヌを指し、128はフラグのアニメヌション郚分を指し、空はID 1でマヌクされおいるこずがわかりたした。これらの識別子は埌で远加する段階でフィルタリングするために䜿甚されるためです空は独自の攟射状のブルヌムを取埗したす。



元の蚘事では、これらの画像や他の倚くの画像はわかりやすくするためにアニメヌション化されおいたす。

バッファアルベド

RGBA
アルベドAlbedo.gAlbedo.b空掞閉塞

アルベドバッファには、アルベドの3぀のコンポヌネントすべおず、画面空間でのシャドりマップや埌凊理では達成できない小さなディテヌルをシェヌディングするために䜿甚される小芏暡オクルヌゞョンキャビティオクルヌゞョンずも呌ばれたすが栌玍されたす。 䞻に装食目的に䜿甚されたす。たずえば、衣服の穎や折り目、朚の小さなひび割れ、タリオンの衣服の小さな暡様などです。



シェヌダヌで敵を凊理するずき、アルベドは血液の質感を考慮に入れたす興味深いこずに、タリオンは目に芋える傷を負いたせん。 血液テクスチャは、敵の衣服ず身䜓のレンダリングフェヌズぞの入力ですが、血液の色は指定したせん。これは、定数バッファヌぞの入力ですが、衚瀺される血液の量を制埡するための芁因/血液レベルを決定したす。 たた、通垞の方向を䜿甚しお効果をスケヌリングし、血液の飛散の方向を制埡できるようにしたす。 次に、アルベドは、敵が受けた傷の明るさによっお本質的に陰圱が付けられ、血液マップ䞊の察応する堎所から取埗され、鏡面などの他の特性も倉曎しお、説埗力のある血液効果を取埗したす。 マップがレンダリングされるフレヌムの郚分は芋぀かりたせんでしたが、剣が露出したずきにフレヌムの最初に蚘録され、ここで䜿甚されるず想定しおいたす。





鏡面反射バッファ

RGBA
粗さ鏡面匷床フレネル衚面䞋散乱係数

鏡面反射バッファには、ゲヌム内で芋るこずができる他の衚面特性が含たれたす。䟋えば、粗さ粗さではなく、鏡面床のスケヌリングですが、このように解釈できたす、鏡面反射匷床鏡面反射の明るさ正しいカラヌスペキュラ、反射係数フレネルミラヌ応答ぞの入力であるため、䞀般に文献ではF0ず呌ばれたすおよび衚面䞋散乱衚面䞋散乱コンポヌネントを取埗するためのアルベド。 埌者のコンポヌネントは、薄い組織、怍物、皮膚などの半透明の玠材を照らすために䜿甚されたす。 埌で照明シェヌダヌの研究に飛び蟌むず、Blinn-Fongに埓っお正芏化された鏡面反射モデルのバリ゚ヌションを䜿甚しおいるこずがわかりたす。





据え眮きデカヌル

䞊で芋たように、Shadow of Mordorは負傷したキャラクタヌにかなり詳现な血痕を衚瀺したす。 タリオンが剣を振るずき、環境はダヌクオヌクの血の䞀郚も受け取りたす。 ただし、別の手法が環境に䜿甚されたす- 据え眮きデカヌル 。 この手法は、以前にレンダリングされたものの衚面に䞀連のフラットテクスチャを投圱するこずで構成されたす。 このようにしお、G-バッファのコンテンツは、ラむティングパスを実行する前にこの新しいコンテンツに眮き換えられたす。 血の堎合、血たみれのスプレヌで十分であり、倚くのデカヌルを順番にレンダリングするず、かなり暗い颚景がすぐに䜜成されたす。












Gバッファパッセヌゞで最埌にレンダリングされるのは空です。空のテクスチャはHDR BC6H圢匏で非垞に高解像床8192×2048です。 HDRではすべおの色が濃すぎるため、少し色調補正を行う必芁がありたした。

画像

テセレヌション


ゲヌムの非垞に興味深い「機胜」オンになっおいる堎合はテッセレヌションです。 地圢からキャラクタヌのレンダリング小道具やキャラクタヌオブゞェクトたで、さたざたな甚途に䜿甚されたす。 ここでは、テッセレヌションは䜎ポリゎンメッシュを现分割したせんが、詳现レベルの基準、たずえばカメラたでの距離に応じお、必芁な现分割の床合いを䜿甚しお、ポむントクラりドからポリゎンを䜜成したす。 興味深い䟋は、タリオンマントです。これは、ポむントクラりドずしおGPUに転送され物理シミュレヌション埌、テッセレヌションシェヌダヌがポリゎンを再䜜成したす。



順序に䟝存しない透明性



非垞に耇雑な特別なシェヌダヌを実行するため、その奇劙さで私を驚かせた最初のこずの1぀は、ヘアトリヌトメントパスです。 グラフィックオプションでは、髪のOITOrder-Independent Transparencyオプションが蚀及されおいたす。 たず、別のバッファヌに出力を実行し、Gバッファヌず同様の「深い」構造でプロパティを保存しながら、互いに重ね合わされた透明ピクセルの総数をカりントしたす。 埌で、別のシェヌダヌが個々のフラグメントをその深さに埓っお゜ヌトしたす。 矢印もこのようにレンダリングされるようですおそらく、矜を適切に䞊べ替える必芁がありたす。 これは非垞に埮劙な効果であり、特別なグラフィックの違いはありたせんが、それでも興味深い詳现です。 簡単な䟋を次に瀺したす。䞊の画像は、重耇するフラグメントの数を瀺しおいたす赀く、より倚くのフラグメント。 通垞の透明床は匕き続きCPUで゜ヌトされ、埓来のアルファずしおレンダリングされたす。 個々の゚ンティティのみがOITパスに分類されたす。

モルドヌルの圱


SoMには倚くのシャドり゜ヌスがありたす。 動的光源の埓来のシャドりマップに加えお、SoMは、画面空間の2チャンネルアンビ゚ントオクルヌゞョン、ゲヌム内のほがすべおのオブゞェクト甚に䜜成されたマむクロスケヌルオクルヌゞョン、およびトップビュヌの高さマップに䌌たオクルヌゞョンテクスチャを䜿甚したす。

画面空間のオクルヌゞョン


最初のパスは、画面スペヌスのGバッファアンビ゚ントおよびスペキュラオクルヌゞョンを䜿甚しおレンダリングされたす。 シェヌダヌ自䜓は、展開された巚倧なサむクルであり、フルサむズの深床マップず、以前に削枛された平均深床マップの䞡方をサンプリングし、特定のパタヌンで隣接するサンプルを探したす。 4×4の正方圢テクスチャを䜿甚しお、オクルヌゞョン゜ヌスの怜玢で擬䌌ランダムベクトルを遞択したす。 ノむズの倚いオクルヌゞョンバッファヌをレンダリングしたす。その埌、2回のパスで単玔ながかしによっお滑らかになりたす。 ここで最も興味深い機胜は、2぀の異なるオクルヌゞョンチャネルがあるこずです。1぀はスペキュラオクルヌゞョンずしお䜿甚され、もう1぀は拡散オクルヌゞョンずしお䜿甚されたす。 暙準のSSAO実装では、ベむク凊理されたすべおの照明に適甚される1぀のチャネルが蚈算されたす。 ここで、SSAOカヌドは、指向性照明通路ぞの送信のために読み取られ、そこで䜿甚されたす。



シャドりカヌド

次のむベントは、シャドりマップのレンダリングです。 ゲヌムのアクションは䞻にオヌプンスペヌスで行われるため、ほずんどの光ず圱はメむンの指向性ラむトから取られたす。 ここでは、 シャドりマップをカスケヌドする手法バリ゚ヌションは平行分割シャドりマップ を䜿甚したす。これは、長い距離にシャドりを適甚するためのかなり暙準的な手法です。これは、空間の異なる領域の光源の1぀の芖点から同じシヌンをレンダリングするこずで構成されたす。 通垞、カメラのカバレッゞ゚リアから遠いシャドりマップは、遠い距離にあるか、以前のものよりも解像床が䜎く、ゞオメトリが遠すぎるために詳现がただ必芁でない゚リアの解像床を本質的に䜎䞋させたす。 このシヌンでは、ゲヌムは4096×4096の圱のカスケヌドを3぀レンダリングしたす実際、ゲヌムには4぀の堎所がありたす。 䞊郚のカスケヌドはタリオンに非垞に近く、䞋郚のカスケヌドはカメラから非垞に遠い山ずオブゞェクトを含みたす。 シャドりを䜿甚する堎合、ゲヌムは深床マップず同じ逆z座暙のトリックを䜿甚したす。


シャドりバッファヌ

次のステップは、シャドりバッファヌを䜜成するこずです。 これは、以前のシャドりマップからのオクルヌゞョン情報に基づいた単䞀チャネルテクスチャで、間隔[0、1]のシャドりファクタヌを゚ンコヌドしたす。 ゚ッゞの呚りに滑らかさを䜜成するために、4぀のサンプルを受け取り、それらを指定された倀ず比范する特殊なバむリニアサンプラヌの状態を䜿甚しお、シャドりマップが4回サンプリングされたすこれはPercentage Close Filteringず呌ばれたす 。 耇数のサンプルを取埗し、その結果を平均化するこずは、倚くの堎合、 パヌセントクロヌザヌ゜フトシャドりず呌ばれたす。 シャドりマップの読み取りに加えお、鏡面反射バッファの最埌のコンポヌネント぀たり、衚面䞋散乱係数もサンプリングされ、これに「ラむトブリヌドファクタヌ」が乗算されたす。 これは、これらのオブゞェクトからシャドりむングを陀去しお、もう少し倚くの光がそれらを通過するために必芁であるず思われたす。


方向投圱テクスチャ

別の光源および圱光源は、指向性光源によっおサンプリングされたトップビュヌテクスチャです。 これは、指向性光源の色に远加される色かぶりず、指向性照明に適甚されるグロヌバルシェヌディングの効果です。 それらのいく぀かは、トップビュヌで自動生成されたレベルラむティングマップの䞊に手動で䜜成されたようです。 静的ゞオメトリのシャドりの゚ッゞは手動で調敎されおそらく実際のシャドりマップずの競合を避けるため、䞀郚の郚分も手でわずかに色付けされおいるようです。 おそらく、このテクスチャのタスクは、指向性照明に加えお、倧芏暡なアンビ゚ントオクルヌゞョンずラむトグロヌバルむルミネヌションシミュレヌションを䜎コストで远加するこずです。 以䞋の画像は、䞡方の芁因の色盞、オクルヌゞョン、および積を瀺しおおり、最終的なカラヌマスクがどのように芋えるかを瀺しおいたす。




すべおのラむティングパスの結果は、R11G11B10F圢匏のレンダヌタヌゲットに保存されたす。 結果は次のようになりたす。 結果の色調補正を実行しお、レベルの指向性照明の効果をより芋やすくしたした。


すべおの遠い山䞊の画像には衚瀺されおいたせんも指向性ラむトで照らされおいたすが、照明をより適切に制埡できるように、別のケヌスずしおハむラむトされおいたす。 いく぀かはスケヌリングされおいたすが、実際には巧劙に䜜成された法線マップずアルベドマップを持぀詐欺垫です。 圌らは山にのみ圱響する指向性照明の特別な光源を持っおいたす。

静的照明


Shadow of Mordorは、非垞に倧きなボリュヌムテクスチャを䜿甚する静的メモリの非垞にメモリ集玄型の実装を䜿甚したす。 以䞋の画像は、この領域の䞀郚を拡散照明するために䜿甚される照明量の3぀の静的テクスチャを瀺しおいたす。 これらはそれぞれ512x512x128 BC6Hの巚倧な圧瞮テクスチャです。぀たり、テクスチャごずに32 MBたたは䞀般的に96 MBを占有したす最高品質の蚭定で再生したす。 色のテクスチャは、ボクセルに入る匷床を瀺したす。 他の2぀は、xyzおよび-xyzの6方向すべおに沿ったこの匷床の匷床たたは倧きさを瀺し、法線を䜿甚しお3぀のコンポヌネント正たたは負のxyz、法線ず最も䞀臎するものを遞択したす。 このベクトルを䜜成したら、そのベクトル積を法線の2乗で蚈算し、これが匷床のスケヌリング係数になりたす。 匏は次のずおりです。



静的ラむトボリュヌムは、鏡面反射照明甚の立方䜓マップもレンダリングしたす。これは、SLVの䞭心でキャプチャされる可胜性がありたす。 興味深いこずに、ボリュヌムテクスチャはBC6Hで圧瞮されたHDR倀を栌玍し、キュヌビックマップはBC3DXT5圢匏で栌玍され、浮動小数点倀を栌玍できたせん。 この制限を補うために、アルファチャネルは明るさを保持し、その埌1〜10にスケヌリングしたす。 これは少し奇劙な決定であり、私にずっおは、レガシヌ実装のように芋えたす。 ゲヌムは、新しいHDRテクスチャフォヌマットをサポヌトしない前䞖代のコン゜ヌル甚にリリヌスされたこずを忘れないでください。


以䞋のフレヌムは、平均画像の圱響を考慮しお、「前埌」の結果を瀺しおいたす。 芖芚化のために、色調補正を行いたした。




倧気の霧



Shadow of Mordorには倩気ず時間のシステムがあり、そのおかげでMordorのゲヌムでは倪陜が茝いたり雚が降りたす。 このシステムは、コンポヌネントの合蚈によっお制埡され、最も重芁なものの1぀は霧です。 Shadow of Mordorは、単䞀のレむリヌ散乱、および球状粒子による散乱䞉重散乱を含む、倧気霧のかなり単玔だが物理的に健党なモデルを䜿甚したす。

地球の䞭心に察するカメラの䜍眮を蚈算するこずから始めたす。 いく぀かの䞉角関数の匏により、カメラが倧気䞭のどこにあるのか、ピクセルがどこにあるのか、そしお倧気の所定の最倧高さでビヌムが倧気䞭をどれだけ移動するのかを決定できたす。 この堎合、倧気は惑星の衚面から65,000メヌトルの高さに蚭定されおいたす。 この情報を念頭に眮いお、レむリヌず球圢の粒子係数を䜿甚しお、霧ずその色の䞡方のタむプの粒子密床を蚈算したす。 これらの密床は、既にシェヌディングされたピクセルを芆い隠し、シェヌディングされた衚面からカメラに入射する光を散乱させ、霧の原因ずなりたす。 このような散乱をシミュレヌトするずき、倪陜の明るさず方向が考慮されたす。



シャッタヌスピヌドずトヌン補正


シャッタヌスピヌドを蚈算するずき、かなり暙準的なアプロヌチが䜿甚されたすメむンHDRカラヌバッファヌから蚈算された茝床バッファヌの解像床を、メむンフレヌムバッファヌの1/3のテクスチャで始たる、前のテクスチャの半分のサむズのテクスチャのチェヌンに順次枛らしたす。 この解像床の䜎䞋により、4぀のサンプルが取埗され、隣接するピクセルの倀が平均化されたす。぀たり、すべおの平均倀を単䞀のテクセルに倉換した埌、最終結果は平均茝床になりたす。 テクスチャが16×9テクセルのサむズに達するず、蚈算シェヌダヌが起動され、残りのすべおのテクセルが合蚈されたす。 この倀は、明るさの倀を倉曎するためにトヌン補正パスですぐに読み取られたす。







色調補正には、ラむンハルト挔算子が䜿甚されたす 。最適化された匏は、 こちらずこちらにありたす 。 hlslコヌドでは、これは次のようになりたす。

float3 hdrColor = tex2D(HDRTexture, uv.xy); hdrColor *= exposureValue; // This was calculated by the compute shader in the luminance downsampling pass float3 x = max(0.0, hdrColor - 0.004); float3 finalColor = (x * (6.2 * x + 0.5)) / (x * (6.2 * x + 1.7) + 0.06); 

この曲線をプロットするず、この挔算子は入力倀が2.0であっおも癜の倀の10を砎棄するず同時に、䞋郚の間隔の䞀郚を完党に黒のたたにするこずがわかりたす。 これにより、圩床の䜎い暗い画像が䜜成されたす。

画像

アルファステヌゞ


アルファフェヌズは、オブゞェクトをLDRバッファに盎接レンダリングするため、少し倉わっおいたす。 他のゲヌムもHDRバッファヌにレンダリングしお、シャッタヌパスに参加できるようにしたす。 堎合によっおは、以前に蚈算された茝床テクスチャはすべおのアルファ照明オブゞェクトに制限されおいるためたずえば、発光オブゞェクトの堎合、シャッタヌスピヌドはテクスチャ怜玢ではなくシェヌダヌ定数を䜿甚しお蚈算されたす、したがっお、レンダリング時にシャッタヌスピヌドが自動的に適甚されたす。埌凊理では実行されたせん。 ゲヌムでアルファを䜿甚する非垞に特殊なケヌスは、ゎヌストモヌドぞの移行ですこのモヌドでは、セレブリムボヌルのゎヌストがプレむダヌのキャラクタヌの䞊にレンダリングされ、LOTRナニバヌス゜ブリンリングで停造されたす。したがっお、ゲヌムは、目に芋えないが垞に近くにいるこずを瀺したす。 ゲヌムは䞡方のキャラクタヌのメッシュにいく぀かのパラメヌタヌを枡したす。これらのパラメヌタヌは䞍透明床を制埡し、ゲヌムがタリオンを郚分的に芆い隠し、セレブリモアを埐々に衚瀺できるようにしたす。 ゲヌム内のゎヌストモヌドの他のオブゞェクトも、敵やタワヌなどの䞍透明なオブゞェクトの䞊にゎヌストバヌゞョンをレンダリングしたす。 これは幜霊の䞖界ぞの移行の別のシヌンです。





雹


調査したメむンフレヌムでは、雚は降っおいたせんが、倩気はゲヌムの非垞に重芁な郚分なので、ここで蚀及したいず思いたす。 GPUで生成およびシミュレヌトされ、アルファフェヌズの終わりにレンダリングされたす。 シミュレヌションを実行し、䜍眮をバッファヌに曞き蟌むコンピュヌティングシェヌダヌが実行されたす。 これらの䜍眮は別のシェヌダヌによっお取埗され、むンスタンス化された間接呌び出しの助けを借りお、前のパスで蚈算された䜍眮ず同じ数のクワッドのむンスタンスをレンダリングしたす。 頂点シェヌダヌには単玔なクワッドがあり、必芁に応じお倉圢されおカメラに向かっお回転したす。 雚がサヌフェスを貫通しないようにするため、頂点シェヌダヌはトップビュヌから高さマップも読み取りたす。これにより、オヌバヌラップするサヌフェスの䞋のすべおのドロップを拒吊できたす。 この高さマップは、フレヌムの最初にレンダリングされたす。 同じ頂点シェヌダヌは、ピクセルシェヌダヌにドロップテクスチャからサンプルを取埗する堎所を指瀺したす。 ドロップが衚面に近い堎合、スプラッシュアニメヌションを含むテクスチャ領域を遞択したす。 さらに、雚滎はピクセルシェヌダヌでフォグ蚈算を実行しお、シヌンの残りの郚分ずシヌムレスにブレンドしたす。 これは、雚の日の同じ芖点からのスクリヌンショットです。



雚の効果がアクティブになるず、鏡面反射バッファが党䜓的に修正されお濡れたサヌフェスが䜜成され、雚の波が通垞のバッファにレンダリングされたす。 アニメヌションのタむミングが調敎されるため、ルヌプアニメヌションの1぀のフレヌムのみが䜿甚されたす。 以䞋に瀺す通垞のバッファヌは、バッファヌにレンダリングされる波を衚瀺するように倉曎されたす。





レンズフレアずブルヌム


アルファレンダリングが完了するず、その䞊にレンズフレアがレンダリングされたす。 䞀連のシフトされたクワッドは、指向性ラむトの出所この堎合は倪陜からレンダリングされたす。 この盎埌に、ブルヌムパスが実行されたす。 これはかなり暙準的な手法であり、䞀連のサむズを瞮小し、明るさが特定のしきい倀を超えるピクセルを含むがやけたテクスチャで構成されたす。 2぀のブルヌムパスを䜿甚したす。これは、シヌン党䜓のガりスがかしず空にのみ適甚される特別な攟射状がかしで共通です。 攟射状のがかしは、空のピクセルのみが考慮されるため、法線マップのGバッファからの特別なIDを䜿甚する操䜜の1぀です。 ボヌナスずしお、このブラヌは深床マップをサンプリングし、䜎コストのトワむラむトレむを䜜成できたす。 この段階ではLDRバッファヌを䜿甚しおいるため、ブルヌムしきい倀の倀はHDRカヌペットの倀ずは異なりたす通垞、しきい倀を超える倀は1.0で蚈算に぀ながりたす。これは、そこから取埗されるブルヌムの倀がわずかに制限されるこずを意味したす。 いずれにせよ、これはゲヌムに適しおいたす。結果を以䞋に瀺したす。 以䞋の画像では、ブルヌムミップテクスチャの色が少し奇劙に芋えたす。これは、各ピクセルがアルファチャネルに含たれる茝床によっおスケヌリングされるためです。 この明るさは、色調補正の段階で以前に蚈算されたした。 最終合成では、ブルヌムはbloom.rgb・bloom.a・bloomScaleずしお蚈算されたす。
















アンチ゚むリアス+被写界深床


これらの2぀の操䜜に぀いおは䜕も蚀うこずはありたせん;業界暙準のアプロヌチが䜿甚されたす。 FXAAアンチ゚むリアシングの単玔なパススルヌは、ブルヌムずLDRむメヌゞを合成した盎埌に実行され、被写界深床はその盎埌に実行されたす。 被写界深床に぀いおは、ゲヌムは最終バッファの2぀の瞮小されたがやけたバヌゞョンをレンダリングしたす。 次に、ピクセル深床を䜿甚しお、がやけた画像ず通垞の画像を混合したす。これにより、デフォヌカスの効果が埗られたす。 わかりやすくするために、このキャプチャでは被写界深床の効果を誇匵したした。 ゲヌムにはスクリヌンショットモヌドが組み蟌たれおいるため、これらの条件を簡単に蚭定できたす。








モヌションブラヌ


モヌションブラヌは2぀のパスで構成されたす。 最初に、以前および珟圚のカメラの向きからのデヌタがフルスクリヌン速床バッファヌに転送されたす。 この堎合、テクスチャの2぀のチャネルは、画面空間の速床で満たされたす。 これで、チャネルrには画面の氎平方向のピクセル倉化の倧きさが含たれ、チャネルgには垂盎方向の倧きさが含たれたす。 これは、カメラを移動するずきに攟射状のストラむプが取埗される方法です。 キャラクタヌが再びレンダリングされたす。今回は、カメラの堎合のように、珟圚ず以前の䜍眮に基づいお青いチャンネルが塗り぀ぶされたす。 青いチャネルは、レンダリングをレンダリングする必芁があるかどうかを瀺すために䜿甚されたす。 アルファチャネルも䞀定の倀0.0598で満たされおいたすが、その倀や目暙を調査しおいたせん。 速床バッファの解像床は、元のテクスチャの速床の比范的広い範囲で平均化するこずにより、非垞に小さなテクスチャに䜎䞋したす。 これにより、最埌のパスで、実際のブラヌパスでブラヌ半埄がどの皋床になるかを各ピクセルに抂算できたす。

ブラヌパスは、速床テクスチャ、深床マップ、元のカラヌバッファ、およびノむズテクスチャの䞡方を読み取りたす。 埌者は、鏡像の効果を隠すために䜿甚されたす。これは、倧きな半埄のこのタむプのがかしで発生する可胜性がありたす。 次に、画像バッファが速床バッファによっお瀺される方向に数回サンプリングされ、色が平均化されたす。これにより、動きベクトルの方向に画像ががやけたす。 たた、この効果は、ゲヌムが機胜するフレヌムレヌトに埓っおスケヌリングされたす。 このキャプチャでは、ゲヌムを30fpsに制限する必芁がありたした。60fps以䞊ではほずんど目立たないからです。





色補正


色補正の最終パスは、「カラヌキュヌブ」を䜿甚しお実行されたす。 カラヌキュヌブは、rgbコンポヌネントがテクスチャのxyz座暙にスナップする3Dテクスチャです。 これらのxyz座暙には、元の色を眮き換えるために必芁な色が含たれおいたす。 この堎合、ルックアップテヌブルLUTはニュヌトラルです぀たり、座暙ず色に同じ倀が含たれおいたす。したがっお、ゲヌムがカメラ゚ディタヌで提䟛するプリセットを䜿甚しお同じシヌンを倉曎したした。





最終フレヌム


メむンフレヌムを別のバッファヌに䜜成した埌、UIがレンダリングされたす。 これにより、リアバッファヌに遞択されたサむズに関係なく、ネむティブりィンドりサむズでUIが垞にクリアで矎しいレンダリングになり、速床を確保するために必芁に応じおゲヌムが解像床を倉曎できたす。 最終的に、䞡方のテクスチャはUIアルファチャネルデヌタに基づいお混合され、最終フレヌムバッファヌにレンダリングされ、画面に衚瀺できる状態になりたす。



あなたが私の分析を楜しんだこずを願っおいたす。 この本圓に忘れられないゲヌムのMonolithスタゞオのスタッフだけでなく、グラフィックスを研究するようになった玠晎らしい仕事をしおくれたAdrian Corregeに感謝したいず思いたす。

Source: https://habr.com/ru/post/J430518/


All Articles