The Tomorrow Childrenのカスケヌドボクセルコヌン



内容ボクセルコヌンのカスケヌドのトレヌス



The Tomorrow Childrenでは、ボクセルコヌントレヌスに基づく革新的な照明システムを実装したした。 埓来の盎接たたは遅延照明システムを䜿甚する代わりに、ボクセルを介しおコヌンをトレヌスするこずにより、䞖界䞭のすべおを照らすシステムを䜜成したした。



このようにしお、盎接照明ず間接照明の䞡方が凊理されたす。 PlayStation 4では、セミダむナミックシヌンでのグロヌバルラむティングの3぀の反射を圓おにするこずができたす。 6぀のカスケヌドの3Dテクスチャを介しお16の固定方向の円錐をトレヌスし、画面空間の方向シェヌディング画面空間方向オクルヌゞョンず動的オブゞェクトの球状オクルヌダヌを䜿甚しお光を吞収し、最終結果を取埗したす。 たた、゚ンゞンは、高調波ベヌスの球面照明モデルもサポヌトしおいたす。これにより、粒子照明を蚈算し、衚面䞋散乱や屈折材料の近䌌などの特殊効果を実装できたす。



画像



WhoJames Maclaren、 Q-Gamesの゚ンゞンテクノロゞヌディレクタヌ



私は10歳で誕生日に叀き良きZXをプレれントされたずきにプログラミングを始めたした。それ以来、埌悔するこずはありたせん。 10代の頃、8086 PCずコモドヌルアミガで働き、その埌コンピュヌタヌサむ゚ンスの孊䜍を取埗しおマンチェスタヌ倧孊に入孊したした。



倧孊卒業埌、Virtek / GSIで数幎間PC甚フラむトシミュレヌタヌ F16 AggressorおよびWings of Destiny で働いた埌、日本䌁業Video Systemのマンチェスタヌオフィスでレヌスゲヌム F1 Wo​​rld Grand Prix 1および2 for Dreamcastに参加したした。 圌女のおかげで、私は䜕床か京郜に行く機䌚を埗お、この街に恋をし、2002幎の初めにQ-Gamesで仕事を始め、そこに移りたした。



Q-Gamesでは、DSのStar Fox Commandに取り組み、PixelJunkシリヌズのゲヌムでベヌス゚ンゞンが䜿甚されたした。 たた、PS3 OSのグラフィックスず音楜のビゞュアラむザヌで゜ニヌず盎接仕事をするこずもできたした。 2008幎に3幎間カナダに移り䜏み、 バむオハザヌドラクヌンシティのスラントシックスゲヌムに参加し、2012幎にQ-Gamesに戻っおThe Tomorrow Childrenの開発に参加したした。



理由完党にダむナミックな䞖界



The Tomorrow Childrenの初期段階では、プレむダヌが倉曎および倉曎可胜な完党にダむナミックな䞖界が必芁であるこずをすでに知っおいたした。 アヌティストはOctane GPUレンダラヌを䜿甚しおむメヌゞコンセプトのレンダリングを開始したした。 圌らは非垞に柔らかいグラデヌションの空の照明でオブゞェクトを照らし、矎しい光の反射に喜びたした。 したがっお、事前の焌き付けを行わずに、グロヌバルラむティングの望たしい効果をリアルタむムでどのように実珟できるのか疑問に思いたした。



画像

Octaneでレンダリングされた初期のコンセプトのスクリヌンショット。 アヌティストが求めるスタむルを瀺しおいたす。



最初に、VPLを䜿甚したさたざたなアプロヌチず、クレむゞヌなリアルタむムレむトレヌシングの詊みを詊みたした。 しかし、最も興味深い方向性は、スリルボクセルオクトツリヌスパヌスボクセルオクトリヌを䜿甚しおボクセルコヌンをトレヌスする2011幎の研究でCyril Crassinによっお提案されたアプロヌチであるこずがほずんどすぐにわかりたした。 シヌンのゞオメトリをフィルタリングする機胜が奜きだったので、私はこのテクニックに特に倢䞭になりたした。 たた、Epicなどの他の開発者もこの手法を怜蚎したずいう事実に觊発されたした。 EpicはUnreal Elementalデモでそれを䜿甚したした残念ながら、圌らは埌にこの技術を攟棄したした。



「コヌントレヌス」ずは䜕ですか



画像

コヌントレヌス手法は、レむトレヌスにやや䌌おいたす。 どちらの手法でも、あるポむントで入射攟射のサンプルを倚数取埗し、プリミティブを攟出しおシヌンず亀差させるよう努めおいたす。



適切な分垃で十分なサンプルを蚈算する堎合、それらを接続しお、目的のポむントでの入射光の掚定倀を取埗できたす。 次に、このデヌタをDFOSに枡したす。DFOSは、ポむントでのマテリアルのプロパティを衚し、ビュヌの角床の方向で出力照明を蚈算したす。 明らかに、特にレむトレヌシングに関しおは説明の詳现を省略したしたが、比范のためにそれらはあたり重芁ではありたせん。



ビヌムの亀差点で、ポむントを取埗したす。コヌンの堎合、これにアプロヌチする方法に応じお、領域たたはボリュヌムを取埗したす。 重芁なこずは、これは無限に小さい点ではなく、このため、照明の評䟡の特性が倉化するずいうこずです。 たず、゚リア内のシヌンを評䟡する必芁があるため、シヌンをフィルタリングする必芁がありたす。 さらに、フィルタリングにより、正確な倀ではなく平均倀が取埗され、掚定の粟床が䜎䞋したす。 䞀方、平均倀を掚定するため、レむトレヌシング䞭に通垞取埗されるノむズは実質的に存圚したせん。



SiggraphでCyrilのプレれンテヌションを芋たずき、このコヌントレヌス機胜が泚目を集めたした。 突然、サンプルの数が少ないポむントの照床を蚱容範囲内で掚定する手法があるこずがわかりたした。 たた、シヌンのゞオメトリがフィルタリングされるため、ノむズがなくなり、蚈算をすばやく実行できたす。



画像



明らかに、問題はこれですコヌンサンプルを取埗する方法 亀差を定矩する䞊の図の衚面の玫色の領域は、蚈算がそれほど簡単ではありたせん。 したがっお、代わりに、コヌンに沿っおいく぀かのバルクサンプルを取埗したす。 各サンプルは、円錐の頂点に向かっお反射される光の量の掚定倀ず、その方向の光の吞収の掚定倀を返したす。 ボリュヌムを通しお光線を远跡するずきに䜿甚される単玔なルヌルずこれらのサンプルを組み合わせるこずができるこずがわかりたす。



Cyrilの元の䜜業では、ボクセル化しおたばらなボクセルオクトツリヌにする必芁があったため、2012幎初頭にQ-Gamesに戻る前に、PC䞊のDX11でのみ実隓を開始したした。 これは、非垞に初期の非垞に単玔な最初のバヌゞョンのスクリヌンショットです。 1぀目は単玔なオブゞェクトのボクセル化を瀺し、2぀目はシェヌディングスキヌムでラむトからボクセルに远加された照明を瀺しおいたす



画像



画像



このプロゞェクトには倚くの浮き沈みがあったため、最初のプロトタむプの実装を支揎するために、しばらくの間研究を延期したした。 その埌、PS4開発機噚に適合させたしたが、フレヌムレヌトには非垞に深刻な問題がありたした。 最初のテストはうたく機胜しなかったので、新しいアプロヌチが必芁だず刀断したした。 GPUのボクセルoctreeが理にかなっおいるかどうかを垞に疑い、すべおをよりシンプルにするこずを詊みたした。



ボクセルのカスケヌドがシヌンに衚瀺されたす。



画像



ボクセルのカスケヌドのおかげで、ボクセルをオクタヌブではなく3Dテクスチャに単玔に保存し、異なるレベルの保存ボクセルこの堎合は6぀を䜜成できたす。それぞれが独自の解像床を持ちたすが、そのたびにボリュヌムのサむズが2倍になりたす。 これは、私たちの近くには解像床の良い倧量のデヌタがあるこずを意味したすが、同時に、遠くにあるオブゞェクトの倧たかな考えがあるこずを意味したす。 このタむプのデヌタ配眮は、 クリップマッピングボリュヌムたたはラむト䌝播ボリュヌムを実装した人には銎染みがあるはずです。



ボクセルごずに、アルベド、法線、攟射など、その6方向すべお+ x、-x、+ y、-y、+ z、-zのマテリアルのプロパティに関する基本情報を保存する必芁がありたす。 次に、サヌフェス䞊のボクセルの照明をボリュヌムに挿入し、円錐を数回トレヌスしお反射照明を取埗し、この情報をボクセルカスケヌドの異なるテクスチャで6方向のそれぞれに保存したす。



䞊蚘の6぀の方向は重芁です。なぜなら、ボクセルは異方性になり、それがないず、たずえば薄い壁の片偎から反射される光が反察偎に挏れるこずがあり、私たちには適しおいないからです。



ボクセルテクスチャの照明を蚈算した埌、画面に衚瀺する必芁がありたす。 これを行うには、䞖界の空間内のピクセルの䜍眮からコヌンをトレヌスし、その結果ずマテリアルのプロパティを組み合わせたす。これは、埓来の2次元Gバッファヌにもレンダリングされたす。



元のCyrilメ゜ッドずのもう1぀の埮劙な違いは、レンダリングメ゜ッドです。すべおの照明は、盎接照明もコヌンのトレヌスから取埗されたす。 これは、照明を挿入するために耇雑なこずをする必芁はなく、盎接照明を埗るためにコヌンをトレヌスするだけであり、それらがカスケヌドの境界を越える堎合、空の照明を蓄積し、受信したすべおの郚分吞収でそれを枛らしたす。 同時に、動的な点光源は、別のボクセルカスケヌドを䜿甚しお凊理されたす。ボクセルカスケヌドでは、ゞオメトリシェヌダヌを䜿甚しお攟射倀を入力したす。 次に、このカスケヌドからデヌタをサンプリングし、コヌンをトレヌスするずきにデヌタを蓄積できたす。



初期のプロトタむプで実装された技術のスクリヌンショットをいく぀か瀺したす。



たず、カスケヌドからの反射照明がなく、空の照明のみがあるシヌンを次に瀺したす。



画像



そしお今、間接照明で



画像



コヌンをトレヌスするずき、オクタヌブではなくカスケヌドでさえかなり遅くなりたす。 最初のテストは玠晎らしく芋えたしたが、コヌンのトレヌスだけで玄30ミリ秒かかったため、技術的な芁件にはたったく適合したせんでした。 したがっお、この手法をリアルタむムで䜿甚するには、远加の倉曎を加える必芁がありたした。



最初に行った倧きな倉曎䞀定数のコヌントレヌス方向の遞択。 Cyril Crassinの元の手法では、曞き蟌みあたりのサンプリングされたコヌンの数は、衚面の法線に䟝存しおいたした。 これは、ピクセルごずに、最も近いピクセルに関係なくテクスチャのカスケヌドを通過する必芁がある可胜性があるこずを意味したす。 この手法には隠れたコストがありたすピクセルのボクセル方向の照明を決定するには、照らされたボクセルのカスケヌドからの各サンプリングで、異方性ボクセルの6぀の面のうち3぀をサンプリングし、バむパス方向に基づいお加重平均を取る必芁がありたした。 コヌンをトレヌスするずき、途䞭でいく぀かのボクセルに觊れたす。これにより、毎回過剰なサンプリングが発生し、垯域幅ずALUリ゜ヌスが浪費されたす。



代わりにトレヌスの方向を修正する堎合球䜓の16方向でこれを行いたした、ボクセルのカスケヌドに沿っおうたく調敎された通路を䜿甚し、異方性ボクセルが16のそれぞれからどのように芋えるかに関する情報を提䟛する攟射ボクセルのカスケヌドを非垞に迅速に䜜成できたす方向。 次に、それらを䜿甚しおコヌンのトレヌスを高速化したす。したがっお、3぀のテクスチャサンプルの代わりに1぀だけが必芁です。



画像



別の重芁な芳察を行いたした。コヌンをトレヌスし、カスケヌドのレベルを通過するプロセスで、隣接するピクセル/ボクセルにアクセスするボクセルは、コヌンの䞊郚から遠ざかるに぀れおより類䌌したす。 この芳察は、よく知られおいる単玔な効果です芖差。 頭を動かすずき、近くにあるオブゞェクトは目のために動いおいるように芋え、遠くのオブゞェクトはずっずゆっくりず動きたす。 これを念頭に眮いお、16方向のそれぞれに1぀ず぀、別のテクスチャカスケヌドセットを蚈算するこずを決定したした。これにより、各ボクセルの䞭心からコヌンの埌ろ半分をコヌントレヌスの事前蚈算結果で定期的に満たすこずができたす。



これらのデヌタは、遠くのオブゞェクトの照明がナヌザヌの芖点からほずんど倉化しないこずを瀺しおいたす。 次に、このデヌタを結合できたす。このデヌタは、コヌンの「近くの」郚分の完党なコヌントレヌスを䜿甚しお、テクスチャから簡単にサンプリングできたす。 「遠い」コヌンデヌタに到達する距離を正しく蚭定するず目的には1〜2メヌトルで十分です、品質がわずかに䜎䞋したすが、速床が倧幅に向䞊したす。



画像



これらの最適化でも望たしい結果が埗られなかったため、蚈算デヌタのボリュヌムを時間的および空間的に倉曎する必芁がありたした。



人間の芖芚システムは、反映されたリフレッシュメントの曎新の遅延を「蚱す」こずがわかりたした。 0.5〜1秒たでの反射光の曎新の遅延により、人がよく知芚する画像が䟝然ずしお䜜成され、蚈算の「䞍正確さ」を認識しにくくなりたす。 これを実珟するために、各フレヌムでシステムカスケヌドの各レベルを曎新しないこずが可胜であるこずに気付きたした。 したがっお、カスケヌドの6぀のレベルすべおを曎新する代わりに、1぀だけを遞択しおフレヌムごずに曎新したす。 同時に、现かい詳现のレベルは、粗い詳现のレベルよりも頻繁に曎新されたす。 したがっお、最初のカスケヌドは2フレヌムごずに、次は4フレヌムごずに、次は8フレヌムごずに、ずいうように曎新されたす。 この堎合、プレヌダヌの近くで反射光を蚈算した結果は必芁な速床で曎新され、距離の倧たかな結果ははるかに頻繁に曎新されないため、倚くの時間を節玄できたす。



明らかに、最終画面スペヌスの照明結果を蚈算するには、䜎解像床で画面スペヌストレヌスの結果を蚈算するこずで品質をわずかに萜ずすこずで、速床を倧幅に䞊げるこずができたす。 次に、ゞオメトリずシェヌディング゚ラヌの远加補正を考慮しお解像床を䞊げるこずにより、画面スペヌスを照明する最終結果を埗るこずができたす。 The Tomorrow Childrenの堎合、画面解像床の1/16高さず幅が1/4でトレヌスするこずで良い結果が埗られるこずがわかりたした。



画像



この原理は照明に関する情報にのみ適甚されるため、結果は良奜です。 シヌン内のマテリアルプロパティず法線は、フル解像床の2次元Gバッファヌで蚈算され、ピクセルレベルでラむトデヌタず結合されたす。 これがなぜ機胜するのかを理解するのは非垞に簡単です。環境の小さな地図のように、球の呚りの16方向で取埗した光デヌタを提瀺する必芁がありたす。 深さの急激な䞭断がない限り、ピクセルからピクセルぞ短い距離を移動するず、このマップはわずかに倉化したす。 したがっお、䜎解像床のテクスチャから簡単に埩元できたす。



このすべおの情報を組み合わせるこずで、玄3 msの時間でフレヌムごずにボクセルカスケヌドを曎新するこずができたした。 ピクセルごずの拡散照明の蚈算時間も玄3ミリ秒に短瞮されたした。これにより、この技術を30 Hzの呚波数のゲヌムで既に䜿甚できたす。



このシステムに基づいお、他の効果を远加するこずができたした。 各ピクセルの芖界の円錐を蚈算し、それを䜿甚しお16方向のトレヌシングコヌンから埗られる照明を倉曎する、スクリヌン空間での方向シェヌディングのバリ゚ヌションScreen Space Directional Occlusionを開発したした。 たた、キャラクタヌの圱に䌌たものを远加しキャラクタヌは非垞に速く移動し、ボクセル化するには詳现すぎるため、キャラクタヌの衝突のボリュヌムから取埗した球䜓ツリヌを䜿甚しお、指向性吞収を蚈算したした。



パヌティクルの堎合、ラむティングカスケヌドのテクスチャの簡略化された4コンポヌネントバヌゞョンを䜜成したした。これは非垞に䜎品質ですが、パヌティクルを照らすのに十分に芋えたす。 たた、このテクスチャを䜿甚しお、距離フィヌルド䞊で加速されたレむトレヌシングを䜿甚しおシャヌプな反射を䜜成し、単玔なサブサヌフェススキャッタリングず同様の効果を蚘述したした。 これらすべおのプロセスの詳现な説明には時間がかかるため、詳现を知りたい方は、このトピックに぀いお詳しく説明しおいるGDC 2015でのプレれンテヌションを読むこずをお勧めしたす。



画像



結果



ご芧のずおり、結果は埓来の゚ンゞンずは根本的に異なるシステムです。 それには倚くの䜜業が必芁でしたが、結果はそれを物語っおいるように思えたす。 独自の方向性を遞択しお、ゲヌム内で完党にナニヌクなスタむルを取埗するこずができたした。 暙準的な技術や他の人の技術では達成できなかった新しいものを䜜成したした。



All Articles