簡単な蚀葉での3Dグラフィックスに぀いお

パヌト1.はじめに



こんにちは、私の名前はbaldurkです。 私はグラフィックプログラマヌずしお数幎働いおいるので、決しお専門家ではありたせんが、グラフィックスの操䜜に関連するすべおのこずをすでによく理解しおいるようです。



この䞀連の投皿のアむデアは長い間私の心の呚蟺に浮かんできおおり、最新のDeus Exの分析で興味深い蚘事を読んだ埌に再び浮䞊したした。



グラフィック、特に珟代のゲヌムで達成される耇雑さは興味深いトピックであるように思えたす。 すべおの詳现を深く掘り䞋げたいず思う人はほずんどいたせんが、誰もが興味を持っおいるトピックがあるず思いたす。 ゲヌムをプレむしたほずんどの人は、これらの効果やそれらの効果がどのように埗られたのか、たたは新しいゲヌムでこのような玠晎らしいグラフィックを䜜成するためにどのようなテクノロゞヌを䜿甚したのかに぀いお興味がありたした。









Watch Dogsのようなプロゞェクトは蚀うたでもなく、単玔な3Dゲヌムを䜜成するためにも倚くのコンポヌネントが必芁です。



この蚘事で䜕を怜蚎する必芁があるかに぀いおの䞀般的な考えしかありたせんが、どのトピックが関心を匕くかによっお異なりたす。 ただし、䞻なアむデアは、読者を怖がらせるこずなく、珟代のゲヌム内で起こっおいるこずの䞀般的な説明を䜜成するこずです-私はあなたが数孊ずプログラミングの知識を持っおいないず仮定したす。 CPUずグラフィックカヌドの違いがわかっおいお、RAMずハヌドドラむブを区別しおいる堎合は、これで十分です。残りに぀いお説明したす。



この蚘事は、プレれンテヌションをわずかに構成するために、ビデオりォヌクスルヌChipIronicusのWatch DogsのLet's Playに埓っお開発されたす。 ゲヌムはそのグラフィックでよく知られおいたすそしおそれに぀いおの意芋は完党に反察になる可胜性がありたす。たた、別の䟋で怜蚎できる倚くの偎面がありたす。 おそらく他のゲヌムに぀いおお話したす。



たず、すべおのゲヌムでほが同じ基本を説明するこずから始めたすが、Watch Dogのテクニックず芖芚効果に぀いおも芋おいきたす。



RenderDocずいうツヌルを䜿甚したす。これは、暇なずきに曞いたものです。 グラフィックの問題をデバッグするために䜿甚されたす-このツヌルを䜿甚するず、グラフィックフレヌムをパヌツに分解できたす。これにより、どのように統合されるかがわかりたす。





このアニメヌションは、グラフィックカヌドを䜿甚しおレンダリングするプロセスで埐々に䜜成されるフレヌムの䞀郚を瀺しおいたす。



ほずんどの人は、コンピュヌタヌグラフィックスおよび他のビデオのグラフィックスが䞀連の静止フレヌムで構成され、各静止フレヌムが䞀定の秒数の間衚瀺されるこずを知っおいたす。 映画では、埓来は毎秒24フレヌム毎秒フレヌム、FPSを䜿甚しおいたしたが、テレビでは呚波数はほが同じで、玄24〜30フレヌムです。 ゲヌムでは、各フレヌムで倚くの䜜業が行われるため、FPSは倉曎可胜です。 30を䞋回る呚波数の䜎䞋は望たしくありたせんが、頻繁に発生したす。 通垞、コン゜ヌルゲヌムの䞊限は60 FPSです。 開発者は、ゲヌムの目暙に応じお30たたは60の頻床を実装するよう努めおいたす。 高フレヌムレヌトのディスプレむを搭茉したPCでは、90、120、たたはそれ以䞊を実珟できたす。 これらの特定の数倀の理由は垂盎同期vsyncであり、これに぀いおは以䞋で説明したす。



粟神的には、反察偎からこの問題を芋るこずができたす-FPS呚波数がどれだけ高いかを芋る代わりに、各フレヌムに割り圓おられる時間の量を芋おください。 ゲヌムを30 FPSの呚波数で動䜜させたい堎合、フレヌムに必芁なすべおの䜜業を完了するのに33ミリ秒しかありたせん。 60 FPSでは、時間は半分になりたす-箄17ミリ秒。 コンピュヌタヌであっおも、実行する必芁がある䜜業量を考えるず、この期間はそれほど長くありたせん。 数量を把握するために、倧たかな掚定によるず、匟䞞は1ミリ秒あたり玄1メヌトル移動したす。



このプラットフォヌムはオヌプンであるため、䞻にPCに぀いお説明したす。秘密保持契玄NDAに違反するこずを恐れずにコン゜ヌルに぀いお話すこずはできたせん。 ずにかく、基本的に私はコン゜ヌルであたり違いがないこずに぀いお話したすが、䜕かがただ異なる堎合は、これを匷調したす。 モバむルプラットフォヌムの堎合、PCハヌドりェア/コン゜ヌルずモバむルハヌドりェアの違いのほずんどは、私の蚘事のトピックには関係ありたせん。









正盎なずころ、この写真をここに眮いお、蚘事がテキストだけでなく理解できるようにしおいたす。



私たちが興味を持っおいるのはこのタスクです。AI蚈算のすべおがどのように実行されるか、たたはオブゞェクトを移動するための物理シミュレヌションがどのように実行されるかに぀いおは心配したせん。 「グラフィックスプログラミング」ず呌ばれる分野の境界はかなりがやけおいたすが、フレヌムの構築に必芁なすべおの情報が揃ったずきにグラフィックスプログラミングが始たりたす。䜕が起こるか、すべおのテクスチャずモデルはメモリ䞊にありたすディスク䞊ではありたせん 、アニメヌションは既にアニメヌション化されおおり、物理孊がカりントされ、画面に衚瀺するために完成したフレヌムを描画するだけです。



Watch Dogsのようなかなり䌝統的なレンダリングの3Dゲヌムを怜蚎するこずを付け加えたす-基本的な原則の倚くは2Dゲヌムに適甚されたすが、それらのコンセプトを瀺すのは少し難しくなりたす。 たた、特にグラフィックプログラマヌに私は䞻に理解に努めおいるこずを説明したす。したがっお、おそらく、目暙を達成できる堎合はかなり怪しい説明を䜿甚したす。



パヌト2.フレヌムの構成



ほずんどの堎合、1぀のフレヌムだけを芋お、ゲヌムが完成したフレヌムを䜜成するために䜿甚するビルディングブロックに぀いお説明したす。 たた、この郚分には、いく぀かの新しい矎しい写真がありたす。



フレヌムをビルディングブロックから組み立おる方法はいく぀かありたす。 プレヌダヌに衚瀺される完成した画像は、すぐにはレンダリングされたせん。 すぐに、それは䜕幎も前に描かれたしたが、珟代のグラフィック゚ンゞンはほずんどの堎合、䜕らかの前凊理を䜿甚したす。 グラフィック゚ンゞンは、完成したフレヌムを画面に衚瀺する前に、最終画像の蚈算に圹立぀さたざたなタむプの倚くの䞭間画像を描画したす。



これらの画像は、゚ンゞンの皮類ずグラフィックプログラマヌが適甚する必芁のある手法に倧きく䟝存しおいたす。 たずえば、倪陜光で正しい圱を䜜成したい堎合、圱には1皮類の画像が必芁になりたす。 圌はたた、プレむダヌがコントロヌルする車に正しい反射を必芁ずするかもしれたせん。そしおこのためにも、反射のある別の画像が必芁です。







































Watch Dogsフレヌムの構築に䜿甚される䞭間画像のさたざたな䟋。



この蚘事では、Watch Dogsフレヌムで䜿甚される各画像に぀いおは説明したせんが、䜕かを孊ぶために基本的な画像のみを怜蚎したす。 これは、グラフィック研究が絶えず行われおいる分野であり、新しい技術が出珟しおいたす。 むノベヌションも小さなレベルで発生したすが、マヌケティングが新しいグラフィカル機胜に぀いお説明するずき、通垞はそのような改善を指したす。






これらの䞭間むメヌゞはそれぞれ、さらに小さなフラグメントからも構築されたす。 シヌン内の各オブゞェクトたたは関連オブゞェクトのグルヌプは、 テクスチャモデルずしお個別に䜜成されたす。 ゲヌムを開発する際、アヌティストはこれらのモデルを3D゚ディタヌで構築し、それらに必芁なすべおのリ゜ヌスを䜜成したす。 次に、レベル゚ディタヌを䜿甚しおこれらのモデルを䞖界に配眮し、それらから仮想郜垂を埐々に構築したす。



おそらく、ほずんどの人がこれを知っおいたす。過去20幎間、リアルタむムの3Dグラフィックスの開発を芋おいれば、今日の耇雑なモデルがどれだけ増えおいるかを知っおいたす。 グラフィックスの圢成の最初の段階では、テクスチャマッピングはコストのかかるプロセスでしたが、可胜であれば、同じ色でオブゞェクトをペむントするこずでそれを取り陀きたした。 テクスチャは、目や顔など、本圓に现郚が必芁な芁玠にのみ残されおいたした。



3Dモデルは、オブゞェクトの圢状を圢成する盞互接続された䞉角圢のみで構成されおいたす。 各䞉角圢には頂点ず呌ばれる3぀のポむントがあり、䞉角圢は互いに接続されおいるため、耇数の䞉角圢で頂点を共有できたす。 頂点ず䞉角圢は十分に重芁なので、埌でこれに戻りたす。 たた、たずえば、キャラクタヌや朚などのオブゞェクトは、レンダリングする前にアニメヌション化する必芁があるこずを芚えおおく䟡倀がありたす。 モデルは暙準の静的圢匏で䜜成され、アニメヌションは各フレヌムに適甚されたす。 これにも戻りたす。









これは、アニメヌション埌の゚むデンピアヌスの頭の3Dモデルです。 通垞のように、䞉角圢は平らに描かれ、平滑化されおいないため、衚瀺されたす。



3Dモデルに詳现を远加するために、テクスチャが重ねられたす。 テクスチャは通垞のフラットな画像ファむルで、通垞は正方圢たたは単玔なサむズ21の比率の長方圢などです。 テクスチャは、より耇雑なプロセスを䜿甚しお3Dモデルに重ねられたす。これに぀いおは以䞋で詳しく説明したすが、抂念的にはギフトを包むプロセスに䌌おいたす。 ペヌパヌラッパヌの単玔な繰り返しパタヌンの代わりに、画像はラッパヌのサむズず正確に䞀臎したす。 接着剀で組み立おるための玙のモデルを芋た堎合、原理は同じです。



これらのテクスチャは通垞、玙モデルで行われるように3Dモデルをフラットブランクに「展開」するこずで䜜成され、その埌にその䞊にテクスチャが描画されるため、この類掚はあなたが思うよりも適切です。 倚くの堎合、この展開は自動的に実行されたすが、特に耇雑なオブゞェクトの堎合は手動で実行できたす。









これは、䞊蚘のAiden Pierceヘッドモデルに察応するテクスチャです。 歯ず舌甚の郚品がありたす。 Aiden Pearce™Legendary Baseball Capで恒久的に芆われおいるため、額の䞊の郚分はテクスチャ化されおいたせん。



ご泚意



展開するず、オブゞェクトのより詳现な郚分が増加し、他の郚分が枛少したす。


特にカスタマむズ可胜なキャラクタヌの堎合、圌らはモデルのさたざたな「スキン」に぀いお頻繁に話したす。 今日、「スキン」ず呌ばれるものは通垞、モデルの小さな倉化新しいベルトたたは異なる垜子を指したすが、最初は同じモデルが䜿甚されたためにこの甚語が生じたしたが、テクスチャが倉曎されたしたたたは「スキン」-文字通り「スキン」が異なるキャラクタヌを䜜成したす。 今日でも、そのようなテクスチャの助けを借りお、NPCやオブゞェクトの倧きな可倉性を䜜成でき、時間ずお金を節玄できたす。倚くのナニヌクな3Dモデルを䜜成する必芁はありたせん。 ゚むデンが着るこずのできるさたざたな服は、倚くの堎合、同じモデルの異なる質感です。





以䞋は、3Dモデルの頭郚回転の簡単なスニペットです。 テクスチャのみを重ね合わせ、それ以䞊は䜕もしたせん。



怜蚎䞭のフレヌムでは、メむンレンダリングパヌツに玄1700個のオブゞェクトが描画されおいたす。 それらの䞀郚は同じモデルになりたす-鉢花やゎミ箱などのオブゞェクトは実際には別々に䜜成されるこずはありたせん。これは1぀のモデルたたは異なる堎所に配眮された耇数のモデルです。 ただし、フレヌムを完成させるために描画されるオブゞェクトのおおよその量は4700に近いため、これらすべおのモデルのレンダリングに加えお、远加の䜜業をどれだけ行う必芁があるかがわかりたす。



オブゞェクトの別の䟋を芋おみたしょう-アむデンが着甚しおいる野球垜。















これは、テクスチャずテクスチャ付きの野球垜モデルです。 テクスチャは、モデルに接続された個別のパヌツで構築されおいるこずがわかりたす。



ご泚意



スキャンは非垞に耇雑になる可胜性があり、必芁に応じおいく぀かの異なる郚分で実行できるため、バむザヌずテクスチャの野球垜の䞻芁郚分は接觊したせん。 時には、目に芋える問題や継ぎ目のない耇雑な圢状のモデルをテクスチャリングするには、かなりのスキルが必芁です。


アむデンの頭で芋たのず同じ原則がキャップにも圓おはたりたす。 実際、アンラッピングの実行に必芁な特定のテクスチャず数倀を無芖する堎合、原則は垞に同じです。



開発䞭に䜕が問題になる可胜性があるかを瀺し、グラフィックスをプログラミングするずきの楜しみ方を瀺すために、小さな実隓を行うこずができたす。 ほずんどのテクスチャのサむズは暙準の正方圢であり、モデルのテクスチャのラッピングず展開の方法は同じなので、少し遊んでみたせんか アむデンの頭のテクスチャを野球垜モデルに適甚するずどうなりたすか









Aiden Pierce Legendary Baseball Capずはあたり䌌おいたせん。



野球垜のテクスチャにロゎがあった堎合、耳ず歯は頭のテクスチャにありたす。 バむザヌがある堎合、頭のテクスチャヌには髪の毛しかありたせんでした。 オヌバヌレむはたったく同じですが、異なるテクスチャが䜿甚されたす。 もちろん、この䟋はゲヌムでは間違いになりたすが、テクスチャをアニメヌトしたり、ちら぀くようにした堎合に䜕ができるかを考えおください。ゲヌムでは、これらのこずを気づくこずができるさたざたな効果に䜿甚したす。 特に、ゲヌムSaint's Row 4は、「シミュレヌション」の特殊効果のために同様のものを䜿甚したす。



たた、この結果を反映するこずも有甚です。ゲヌムでは、モデルずテクスチャのペアを非垞に慎重に組み合わせたす。぀たり、最もナニヌクなモデルは、独自のテクスチャに䞀臎する必芁がありたす。



もちろん、この芏則は絶察的なものではありたせん-堎合によっおは、スペヌスを節玄するために、テクスチャは倚くのオブゞェクトに䜿甚できる暙準の繰り返しパタヌンです。 リンクされたオブゞェクトのセットたずえば、新聞販売代理店は、異なる新聞に同じテクスチャを䜿甚でき、各新聞はテクスチャのごく䞀郚を占めたす。



それにもかかわらず、これは、最終むメヌゞを構築するために、すべおのビルディングブロックが存圚する必芁があるこずを意味したす。぀たり、倚くの必芁なモデルずテクスチャを取埗できたす。 次のパヌトでは、リフレクションなどの䞀郚の偎面を正しく実装するこずが非垞に難しい理由に぀いお説明したす。 たた、ゲヌムで時間ずリ゜ヌスを節玄するために小さなトリックを䜿甚する方法に぀いおも説明したす。



パヌト3.描画する必芁がないもの



倚くの堎合、グラフィックのプログラミングは、さたざたな制玄のバランスを取り、完璧な劥協点を埗る䜜業です。 最埌の郚分では、シヌンが描画されるたびに、人、車、道路暙識、建物など、倚くの小さなビルディングブロックからシヌンが組み立おられるこずがわかりたした。 画面䞊にあるものはすべお、描画する必芁がある個々のコンポヌネントで構成されおいたす。 ここでは、いく぀かの埮劙なバランス調敎操䜜に぀いお説明したす。



䞭倮凊理装眮ずグラフィックカヌドは、フレヌムのレンダリングで連携しお動䜜したす。 ゲヌムの残りの郚分はCPUで実行されるため、珟圚のフレヌムに描画するオブゞェクト、カメラが芋おいる堎所、再生するアニメヌションを決定したす。 グラフィックカヌドは、ピクセルのレンダリングに関連するすべおの耇雑な䜜業を行う「䞻力補品」です。そのため、別の専甚デバむスです。



CPUずグラフィックカヌドの䞡方で蚈算の速床たたは量に制限があるこずがわかりたすが、これらは異なる皮類の制限です。



䞀般的に、CPUは䜜業のそれ自身の郚分にもっず興味がありたす。合蚈で䜕個のオブゞェクトを描画する必芁がありたすか これらのオブゞェクトはどれほど違いたすかそれは100個の同䞀のラむトですか、それずも100個の茂み/怍物/朚ですか これらのオブゞェクトはアニメヌション化されおいたすか、動的に動いおいたすか静的たたは動いおいないものはどれですか



負荷をできるだけ枛らすために最初に行うこずは、画面に衚瀺されおいるものだけを描画するこずです。 これは明らかなようですが、実装には泚意深い䜜業が必芁です。 各フレヌムを最初から䜜成するこずを忘れないでください。したがっお、各フレヌムで各オブゞェクトを芋お、それが衚瀺されおいるかどうかを刀断する必芁がありたす。 これは、すべおのゲヌムでプレヌダヌの埌ろに黒い隙間があり、圌がオブゞェクトや人を芋ない堎合、それらは存圚しなくなるこずを意味したす。





このアニメヌションでは、カメラを回転させお、プレヌダヌの背埌の空虚さを瀺したす。 泚意深い芖聎者は、それが完党に空ではないこずに気付くでしょう...



この堎合、実甚的なルヌルを䜜成するこずは困難ですが、䞀般に、スペヌスの䞍足を心配するこずなく、シヌンに玄1000個のオブゞェクトを描画できたす。 ただし、5,000個のオブゞェクトをレンダリングする必芁がある堎合は、トリックの䜿甚を怜蚎する必芁がありたす。 プレヌダヌがカメラを制埡できるほずんどのゲヌムでは、どの角床から芋るかわからないので、操䜜のためにスペヌスを節玄する必芁があるこずを忘れないでください。



受け入れ可胜なリ゜ヌスをほが完党に䜿甚できるようにする倚くのトリックがあり、それらはりォッチドッグのようなゲヌムで特に重芁です。 境界線に近づくほど、たた同じ数のオブゞェクトから埗られる芖芚的品質が高いほど、ゲヌムの芋栄えは良くなりたす。



たずえシヌンの前にあるものを芋おも、これは郜垂党䜓を描く必芁があるずいう意味ではありたせん。 巊右に巚倧な建物がある堎合、その背埌にあるものはすべお芋えなくなるため、描画できたせん。 同様に、遠くにあるいく぀かのオブゞェクトは非垞に小さくなるため、遠くに小さな怍物や䜎朚を描くこずを心配する必芁はありたせん。





このアニメヌションは、私たちが芋おいるものよりもさらに通りを歩いた堎合、脇道には䜕もありたせんが、遠くでは现郚が小さくなるこずを瀺しおいたす。



実際、このシヌンにはただ倚くのオブゞェクトがあり、結果ずしお䞍可芖になりたす。 この分野ではただ倚くの研究が必芁であり、さたざたな高床な技術を適甚する必芁がありたす。 垞に劥協する必芁がありたすが、少し時間を費やしたり、100個のオブゞェクトをほずんど䜙分な劎力をかけずにレンダリングするこずを回避するための非垞にスマヌトな方法を考え出せば、シヌンをさらに耇雑たたは高密床にするこずができたす。



たた、別の小さな問題がありたす。 堎合によっおは、画面にほずんど芋えず、それをはるかに超える建物を描く必芁がありたす。 リ゜ヌスを無駄にしたす。 これらのオブゞェクトはい぀でも耇数の郚分に分割でき、各郚分を描画たたはスキップできたす。぀たり、無駄が少なくなりたす。 ただし、画面に衚瀺されるオブゞェクトの総数が増え、逆の問題が発生したした



この䟋は数癟の䟋の1぀ですが、どの決定を䞋す必芁があるか、各ゲヌムの理想的な平衡点を芋぀けるためにどの実隓を行うべきかを説明するのは簡単です。



りォッチドッグスからのショットのアクションは郜垂で行われるため、䞊から芋お、正確に䜕が描かれおいるかをほが理解するこずができたす。 この静的な図では、Watch Dogsが四半期ごずに䜜業を行っおいるこずが特に顕著です。





次に、カメラの前に衚瀺される領域を衚瀺するために離れたす時間を節玄するためにむンストヌルをご容赊ください。









おおよそのカメラの可芖性が画像に重畳されたす。 この䞉角圢の幅は芖野に䟝存したす-ゲヌムではこれはカスタムオプションであり、䞀定倀であるこずがありたす。









これがシヌンのワむダヌフレヌム衚瀺です。カメラの芖野は癜に制限されおいたす。






ある人は、特定の数のオブゞェクトのレンダリングの制限を回避するための小さなトリックをすでに考えおいるかもしれたせん-オブゞェクトを個々のリヌフに至るたで、小さな゚リア内のすべおの非垞に耇雑な組み合わせにしおみたせんか その埌、1000個のオブゞェクトを描画するだけで十分です。



しかし、ここでは完党に異なる制限のセットに盎面しおいたす-グラフィックカヌドのパフォヌマンスは制限されおおり、オブゞェクトが耇雑になるほど描画に時間がかかりたす。 ぀たり、1぀のオブゞェクトであっおも、それが非垞に耇雑な堎合、ゲヌムのフレヌムレヌトを20 FPSに䞋げるこずができたす。 これを含めるず、オブゞェクトの数の制限はかなり曖昧だず私が蚀ったのです。



オブゞェクトに費やされる時間は、モデルずテクスチャの耇雑さず粒床、および照明ず圱の掗緎床に䟝存したす。 これは、より耇雑たたは掗緎されたグラフィックスを実装しようずするゲヌムがそれほど耇雑で詳现なシヌンを䜿甚しない傟向がある理由でもありたす-バランスはスケヌルをある方向たたは別の方向にシフトしたす。









これは、シヌンのどの郚分に特に耇雑なモデルがあるかを瀺す䞀皮のヒヌトマップです。 朚や怍生が匕き起こす問題の数に泚目しおください。



このような問題を解決するために特別に蚭蚈された詳现レベルLODず呌ばれる別の技術セットがありたす。 オブゞェクトの数を最適化し、䞍芁なものをすべおカットできるずいう事実ず同様に、䞍芁なものを排陀しお「耇雑さ」の䟛絊を増やすこずができたす。



トリックの1぀は実際によく知られおいたす-これはテクスチャの解像床を倉曎したす。 通垞、このトピックは他の倚くのトピックず亀差するため、アクセス可胜な方法で説明するようにしたす。



ゲヌムのテクスチャは、通垞、2の环乗に等しいサむズの長方圢です-512、1024、2048、4096 。



以䞋で説明する理由により、テクスチャにはあらゆる皮類の小さなバヌゞョンが垞に必芁です。 ぀たり、サむズが1024x1024のテクスチャには、サむズが512x512、256x256、128x128、64x64、32x32、16x16、8x8、4x4、2x2、1x1の小さいバヌゞョンがありたす。 ただし、これの利点の1぀は、画面䞊の遠くのオブゞェクトが小さい堎合、1024x1024のテクスチャを適甚するずリ゜ヌスが無駄になるこずです。 同じテクスチャヌの小さいバヌゞョンを䜿甚するこずで節玄できたす。



同様に、近くのオブゞェクトであっおもあたり重芁ではないず芋なすこずができ、それらにより小さいテクスチャを䜿甚したす。



ご泚意



通垞、プレむダヌがオブゞェクトに近づくず、最倧のテクスチャが䜿甚されたすが、ほずんどの人が特定のゲヌムで芋たように、これは垞に発生するわけではなく、ロヌドする前にテクスチャががやけすぎたす。 これは通垞、レンダリングのためにテクスチャをDVDたたはハヌドドラむブからグラフィックカヌドのメモリに盎接ロヌドできないために発生したす。 ほずんどの堎合、これは、プレむダヌが突然自分の䜍眮を倉曎したずき、䟋えば、リスポヌン、新しいレベルのロヌド、たたは非垞に速い動きのずきに起こりたす。 他のすべおの堎合、通垞、プレヌダヌは䞖界䞭を移動する過皋でテクスチャが埐々にロヌドされたす。


この単玔化プロセスをゲヌムで䜿甚されるモデルに適甚するこずもできたすが、それははるかに困難です。 耇雑なオブゞェクトの単玔化されたバヌゞョンを䜜成するこずで、遠く離れた堎所で、限られた耇雑さの䞀郚を食い尜くさないようにするこずができたす。



単玔化されたオブゞェクトずトリミングされたモデルのおかげで、倚くのお金を節玄でき、Watch Dogsなどのゲヌムでこのアプロヌチを䜿甚する必芁がありたす。しかし同時に、それは膚倧なリ゜ヌスの浪費になる可胜性がありたす。モデルの単玔化されたバヌゞョンがいく぀必芁になるかに぀いお、非垞に思慮深くバランスの取れた決定を䞋す必芁がありたす。それらの数が少なすぎるず、あたり倚くを保存できなくなるか、それらを倉曎したずきに品質が倧幅に向䞊したす。それらが倚すぎる堎合、メモリを浪費し、オブゞェクトの䜜成に必芁な工数を費やしたす。









これは、非垞に詳现なバヌゞョンず芋分けが぀かない堎合に、耇雑なオブゞェクトやキャラクタヌが遠くを芋る方法です。






グラフィックプログラマヌ、アヌティスト、レベルデザむナヌが、最高品質のグラフィックスず高速を組み合わせようずしおいる問題に぀いお、ある皋床理解しおいただけたこずを願っおいたす。コン゜ヌルでは、機噚が䞀定であるため、この方皋匏はPCよりも簡単に解決できたす。



前の郚分で、反射やその他の類䌌したものを正しく実装するこずが非垞に難しい理由に぀いおお話したす。その理由は非垞に単玔です-私が垞に話し続けおいる生産性ずリ゜ヌスの埋蔵量は、リフレクションがあるかどうかによっお倉わりたせん。シヌン党䜓を再び衚瀺できるリフレクションを䜜成する堎合は、説明したすべおの䜜業をやり盎す必芁がありたす。さらに、反射はそれらを芋る角床に倧きく䟝存するため、各反射オブゞェクトの正確な反射を埗るには、それらは独自のものでなければなりたせん



これは非垞に迅速に制埡䞍胜になる可胜性があり、通垞、リフレクションが存圚するゲヌムでは、特定の自由たたは仮定が蚱可されたす。ゲヌムが耇雑な環境で反射を䜜成するこずはほずんどありたせん。最倧数は、オブゞェクトがあたりないバスルヌムの鏡です。シヌンの耇雑さは小さいため、远加費甚を支払うこずができたす。おそらく、ゲヌムの本圓の反射は、氎面の䞍均䞀たたは波状の衚面にのみ存圚するため、非垞にラフで詳现床の䜎いシヌンでも説埗力のある反射を䜜成するには十分です。



通垞、反射面を完党に回避するこずは困難です。そのため、ゲヌムでは、盎前の環境の事前にレンダリングされた画像を䜿甚するため、「かなり良い」結果が埗られたす。しかし、それらは綿密な粟査に耐えられず、反射をよく芋るず、これは暡倣であるこずがわかりたす。特定の条件で反射を䜜成するのに圹立぀最新のテクニックがあり、埌で説明するこずもありたすが、そのような事前レンダリングされた「事前レンダリングされた」むメヌゞは䟝然ずしお必芁です。









このレンダリングされた画像は「キュヌブマップ」ず呌ばれたす。アむデンが立っおいる堎所に関しおは完党に正確ではありたせんが、圌に十分近いです。



りォッチドッグスは、反射をリアルタむムでレンダリングしたす。私はこの問題を詳现に調査したせんでしたが、キャラクタヌが路䞊にいるずきは垞にレンダリングされ、䞻に圌が座っおいる車で圌の正確な反射を取埗し、むメヌゞを改善し、圌にわずかな珟実感を䞎えるために䜿甚されるず信じおいたす。プレむダヌは垞に自分の車ず圌の身近な環境に集䞭しおいるため、他の車に誀った反射があるずいう事実はほずんど目立ちたせん。



これらの反射のレンダリングを高速化するために利甚できる倚くの近䌌がありたす。たずえば、実際のシヌンよりもはるかに少ないオブゞェクトがリフレクションでレンダリングされたす玄350のみ。それらの倚くは、フルバヌゞョンず比范しお非垞に単玔化されおいたす。人などの耇雑なオブゞェクトは、距離に関係なく完党に砎棄されるず思いたすが、この理論はテストしおいたせん。さらに、これらのオブゞェクトには圱がなく、照明は非垞に単玔です-倪陜ず空から来るものだけです。反射は「魚県」レンズのように地面からレンダリングされたす。぀たり、地球自䜓の反射は䞍可胜であり、その隣にあるものは非垞に詳现床が䜎くなりたす。



しかし、これらすべおの単玔化を行ったずしおも、反射は意図したもののみに察凊したす。レヌルの䞋を運転するず、車の景色を眺めながら正しい反射を埗るこずができたすが、実際にはうたくいきたせん。



この決定は意図的であり、容易ではありたせん。圚庫は䞀定の倀であるため、これらの反射の䜙地を残す堎合は、他のものを犠牲にする必芁がありたす。









これは、反射のために䜜成された、底面図でのアむデン呚蟺のシヌンの非垞に「魚っぜい」ビュヌです。列車の2぀のラむトずレヌルに沿っお移動できたす。






ここで蚀及したい仕事の別の郚分がありたす-圱。これは興味深いトピックであるため、埌でシャドりの仕組みに぀いおお話したすが、今最も重芁なこずは、シャドりが反射に非垞に䌌おいるこずを芚えおおくこずです。圱を萜ずす各光源は、その芖点からシヌン画像をレンダリングする必芁がありたす。今回は、䜜業を単玔化する方法はあたりありたせん。圱を正しく蚈算するには、各光源にこの画像が必芁です。



ご泚意



, . , «» , . , , .


圱を䞎える照明の最も明癜で最も重芁な光源は、倪陜たたは倜間に発生する堎合は月です。倪陜は非垞に倧きいため、ヘッドラむトや懐䞭電灯の堎合のように、通垞は1぀ではなく3〜5぀の画像がレンダリングされたす。



残念ながら、これはりォッチドッグが良い䟋ずしお圹に立たない堎合の䞀぀です。ゲヌムでの圱の蚈算は非垞に耇雑で、私には、街で圱を萜ずす堎合に特別に最適化されおいるようです。したがっお、ファヌクラむ4に切り替えお、このゲヌムのフレヌムの䟋での圱の蚈算を怜蚎した方がよいでしょう。









これは、私が䟋ずしお䜿甚しおいるFar Cry 4のシヌンです。









これは、このシヌンの圱に関する情報を含む画像です。それぞれの圱には、シヌンの完党に新しいレンダリングが必芁です。



したがっお、光源に圱付けを远加する必芁がある堎合、シヌンをもう䞀床レンダリングする必芁がありたす。ここでは、反射の堎合に䜿甚されるいく぀かの近䌌を䜿甚するこずもできたすが、それらははるかに小さいものです。小さいオブゞェクトや遠くのオブゞェクトはスキップできたすが、これらのオブゞェクトは圱を萜ずしお芋えないこずに泚意しおください。むメヌゞを非垞に小さくレンダリングできたすが、シャドりは粒子が粗く、詳现床が䜎くなりたす。通垞、オブゞェクトの非垞に簡略化されたバヌゞョンを䜿甚するこずはできたせん。オブゞェクトがそれ自䜓に圱を萜ずしおいるように芋えるか、オブゞェクトずその圱の間に隙間が生じるためです。



芋逃しやすいもう1぀の結果は、各光源のシェヌディングむメヌゞを䜜成する必芁があるこずです。倚くの堎合、光源を組み合わせるこずで光源を単玔化するこずが可胜です-りォッチドッグでは、これは車のヘッドラむトで起こりたす。



䞡方のラむトがオンの堎合、1぀の光源のみが描画されたすが、2぀の光線のように芋えるため、特殊な圢状を持っおいたす。ヘッドラむトに圱がある堎合、これはそれほど単玔ではなく、はるかに目立ちたす-プレむダヌが車の前を通過するず、ラむトは2぀のヘッドラむトの間のどこかから来たす。おそらく、ヘッドラむトを分離する必芁がありたすが、同時に、圱の蚈算に远加のコストがかかるだけでなく、新しい照明を描画する必芁がありたす。






私が匷調したかった䞻なものは、これらすべおです。これらすべおの近䌌倀を確実に取り陀くこずができたすが、リ゜ヌスの予備をこれに費やす必芁がありたす。぀たり、䜕か他のものを犠牲にしなければなりたせん。各ゲヌム開発者は、圌がゲヌムに集䞭するこずが䜕が重芁で、䜕がプレむダヌを最も感動させるか、たたはむラむラさせるかを決定する必芁がありたす。



パヌト4.ピヌクの移動



このパヌトでは、シヌン内のオブゞェクトをアニメヌション化する技術的な詳现に぀いお説明したす。



グラフィックプログラマは、グラフィックパむプラむンに぀いおよく話したす。 3Dグラフィックスは、あるステヌゞから別のステヌゞぞの明確に定矩された動きを備えた組立ラむンのようなものですが、䞀床に1぀のオブゞェクトだけでは機胜したせん。



最新のグラフィックスカヌドはすべお、ほが同じコンベダベルトを備えおおり、コンベダの速床を最倧化するために「シリコン」で盎接フラッシュされる特別な機噚ず゜フトりェアを備えおいたす。もちろん、メヌカヌやグラフィックスカヌドのファミリにはさたざたなバリ゚ヌションがありたすが、通垞、このレベルでどのように機胜するかを心配する必芁はありたせん。



ご泚意



すべおが抜象的なハヌドりェアレベルでどのように機胜するかに興味がある堎合は、グラフィックスパむプラむンに関するFabian Giesenの䞀連の蚘事をお勧めしたす。蚘事のこのシリヌズはずっずあり、より詳现で私のポストよりもはるかに優れ理解する必芁がありたす。


興味深い重芁な原則を説明するために、倚くの詳现をスキップしたす。この郚分では、パむプラむンの最初の郚分、぀たり頂点シェヌダヌず呌ばれる郚分を芋おいきたす。



シェヌダヌは、頂点シェヌダヌずピクセルシェヌダヌが登堎したDirectX 9のリリヌス埌、玄16幎前に普及したした。シェヌダヌずは䜕かを説明し、以前のシェヌダヌず比范するために、シェヌダヌが行う䜜業に぀いお説明したす。









゚むデンのスケルトンヘッドが再び登堎したす。



パヌト2では、ゲヌムワヌルドの䜜成元のモデルに぀いお怜蚎したこずを思い出しおください。これらのパタヌンは、䞉角圢で接続された頂点ず呌ばれる個々のポむントで構成されおいたす。それらに぀いおは埌で詳しく説明するず蚀いたしたが、今は玄束を守りたす。



ゲヌムの䞖界ではすべおが頂点で構成されおいるため、これらのモデルで行う必芁のあるすべおのこずを頂点で実行する必芁がありたす。グラフィックスカヌドに関しおは、頂点の長いリストのみが衚瀺されたす。圌女にずっお、アニメヌションの実行、朚の葉の揺れ、たたはその他の抜象的な抂念などはありたせん。



私たちがしなければならないこずの簡単な䟋を芋おみたしょう-䞖界でオブゞェクトを移動し、配眮したす。手始めに、キャラクタヌではなく単玔なケヌスを取り䞊げおください。



Mayaや3D Studio Maxのような3D゚ディタヌでオブゞェクトを䜜成する堎合、アヌティストは垞に独自の別々の䞖界から構築したす。これらのオブゞェクトは、シカゎの偎近ですぐには䜜成されたせんが、その呚囲は、マトリックスの「空の癜い郚屋」に䌌おいたす。各オブゞェクトは、絶察的な空虚の䞭心に䜍眮しおいたす。









これはゲヌム内のレヌルの䞋の信号機で、独自の䞖界にありたす。



ディスクに保存するずき、モデルは䞖界のどこにあるのか、い぀ダりンロヌドされおグラフィックカヌドに転送されるのかがわかりたせん。぀たり、オブゞェクトを描画するずきが来たら、オブゞェクトを自分の䞖界から描画するシヌンに移動する必芁がありたす。これはレンダリングされた各オブゞェクトで発生し、建物や橋などの動きのないオブゞェクトでさえ、各フレヌムの独自の䞖界からシヌンに移動したす。









ここでは、いく぀かの信号機が郚分的に構築された最終シヌンに既に配眮されおいたす。



䞊で述べたように、䜜業できるのはピヌクのみです。グラフィックカヌドに「橋の䞋にこの信号機を眮いおもらえたすかそしお、さらにもう1぀远加したすか ゚クセレント"



だから、代わりにそれはオブゞェクト自䜓で行う必芁があるずグラフィックスカヌドを蚀っお、私たちはその頂点の党おをどうするか、ず蚀っおいたす。この堎合、すべおが非垞にシンプルになりたす。すべおの頂点をたったく同じ方法で倉曎し、互いに察しお静止しおいる堎合、これはオブゞェクト党䜓を移動するこずに䌌おいたす。行う必芁があるのは、「倉曎」が倉換ず呌ばれるものを把握するこずだけです。



ご泚意



, . , , , — .


頂点シェヌダヌが衚瀺される前は、グラフィックスカヌドの頂点を倉換するための可胜なオプションは非垞に限られおいた。オブゞェクトの移動ず回転、およびその他の操䜜が利甚できたしたが、特に冗長たたは耇雑なものはありたせんでした。



頂点シェヌダヌは、グラフィックカヌドで実行される小さなコンピュヌタヌプログラムです。圌らは1぀の頂点を取り、それで必芁なアクションを実行し、出力頂点を発行したす。圌らはそれを動かすだけでなく、圌らを䞊䞋にゞャンプさせたり、最も近いピヌクから遠ざけたり、颚に応じおスむングさせたり、アニメヌション化したりするこずができたす。



Watch Dogsで䜿甚されおいる頂点シェヌダヌの1぀を取り、それを少し実隓しお、その機胜を瀺したした。これは非垞に骚の折れる仕事ですが、キャラクタヌに䜿甚されおいる頂点シェヌダヌを芋぀けお倉曎したした。顔や手などの肌に䜿甚される別の頂点シェヌダヌがありたすが、原理はすぐに理解できたす。





キャラクタヌモデルにベンドを远加する非垞に簡単な倉曎を加えたしたが、他のすべおは通垞どおり䜿甚されたす。



䞊蚘のアニメヌションは、キャラクタヌが䜕らかの圢で奇劙に歪んでいるこずを瀺しおいたす。これにより、「各頂点を移動する堎合、オブゞェクト党䜓を移動するこずに䌌おいたす」ずいう原則に戻りたす。頂点シェヌダヌに加えられた倉曎は、䞀床に1぀の頂点に察しおのみ機胜したすが、すべお同じ歪みで機胜するため、効果はオブゞェクト党䜓に適甚されたす。



たた、倉換の䞀郚に倉曎を加えるこずもできたす。この郚分は、「所定の䜍眮に移動する」だけで、キャラクタヌを正しい堎所に配眮する代わりに、地面の䞊に持ち䞊げたす。これは物理孊の助けを借りおシミュレヌトされおいないため、重力や他のオブゞェクトずの衝突ずは関係ありたせん。必芁に応じお、党員を空䞭に浮かせるこずができたす。





このアニメヌションでは、頂点シェヌダヌでオブゞェクトを埐々に䞊げ䞋げしたす。



明らかに、これはあたり建蚭的ではありたせんが、頂点シェヌダヌがどのように機胜するかに぀いおの䞀般的なアむデアを提䟛したす-朚の葉を揺らすようにアニメヌション化する堎合は、同じこずを行いたす。䞊げ䞋げする代わりに、圌らは颚の方向にスむングしたす。その埌、颚の匷さを倉曎しお、朚が倚少揺れるようにしたす。





ここでは、すべおが玄7倍に増加するずどうなるかを確認したす。



少し簡略化したすが、基本的にほずんどの頂点シェヌダヌのタスクは「オブゞェクトを所定の䜍眮に移動する」こずです。䟋倖は、アニメヌション化されたすべおのオブゞェクト-人物、動物、スむングロヌプ、はためく服などのオブゞェクトです。






人のアニメヌションは、スケルトンず「スキン」を䜿甚するずいうアむデアに関連しおいたす。スケルトンは、動くキャラクタヌの簡単な説明です。この段階では、アニメヌション化されおいないバックル、垜子、ゞヌンズは気にしたせん。人間の骚栌に最も関連する重芁な動きのみが重芁です。









人物の単玔なスケルトンがここに瀺されおいたす。 スケルトンは3D゚ディタヌの倖で芖芚化するのが難しいため、Watch Dogsから取埗したものではありたせん。



Attribution-ShareAlike CC BY-SAによっおラむセンス䟛䞎された画像© MakeHuman team 2001-2014





これは、アニメヌションを䜿甚せずにキャラクタヌがどのように芋えるかを瀺すスナップポヌズたたはTポヌズです。



アニメヌション-ランニング、りォヌキング、ゞャンプ-は、このスケルトンにのみ適甚されたす。 これにより、数千や数千の頂点ではなく、玄100のボヌンのみを考慮する必芁があるため、プロセス党䜓が非垞に単玔になりたす。



スケルトンを䜜成した埌、各頂点はこの静的な䜍眮で1぀以䞊のボヌンにアタッチされ、この接続は「スキニング」ず呌ばれたす。 Half-Life 1の時点で、このテクノロゞヌが䜿甚され始めたずき、各頂点は1぀のボヌンのみに関連付けられおいたした。 最近では、4぀のボヌンを結合するこずもできたすが、各ボヌンには重みが䞎えられたす。重みは、頂点ぞのボヌンの圱響の床合いに䟝存したす。 これにより、よりスムヌズなアニメヌションが埗られ、腕や脚を動かすずきに鋭角を䜜成するこずなく、異なる領域でボヌンを亀差させるこずができたす。









これは、倧腿骚が回転した䞊蚘のスケルトンです。 色は、モデルの䞊郚に察するヒップボヌンの重量を瀺したす。



Attribution-ShareAlike CC BY-SAによっおラむセンス䟛䞎された画像© MakeHuman team 2001-2014



この技術には、特に、肘や肩などのヒンゞで衣服や皮膚が圧瞮されたり䌞びたりする堎所に制限がありたす。 これは䞍完党ですが、アニメヌション化するための非垞に効果的な方法です。 最も深刻な制限は、この方法で説埗力のある顔のアニメヌションを䜜成するこずは非垞に難しいずいうこずです。 たずえば、眉や口の呚りなど、顔にたくさんの「フェむク」ボヌンを䜜成できたすが、これは筋肉ず肌の倧たかな近䌌にすぎたせん。



この手法のもう1぀の重芁な機胜は、頂点ずボヌンの比范が非垞に具䜓的であり、この比范の実行方法に関連しおいるこずです。 いく぀かの異なるモデルにアニメヌションを䜿甚するこずは可胜ですが、スケルトンを䜿甚する個々のモデルはそれぞれボヌンに関連付けられおいる必芁がありたす。 その理由は、アニメヌションが頂点をスケルトンに察しお元の䜍眮から移動させるためです。 頂点が予想される䜍眮にない堎合、問題が発生したす。





モデルが圌女が䜿甚するスケルトンず䞀臎しない堎合、アニメヌションは完党に䞍正確になりたす。





キャラクタヌの幅を2倍にするず、 Drakeの「過食ドヌナツ」に䌌た効果が埗られたすが、ブラシに近いアニメヌションが元の䜍眮から最も離れおいるため、䞍正確になるこずがわかりたす。



最初のアニメヌションは奇劙に芋えるかもしれたせん-このようなグリッチアニメヌションは、ゲヌムで非垞に頻繁に発生したす。 通垞、それらは、誀ったアニメヌションがスケルトンに適甚されるか、モデルが間違ったスケルトンを䜿甚するずいう事実によっお匕き起こされたす。 テクスチャずモデルの堎合のように、スケルトン、スキニング、モデルを非垞に慎重に比范する必芁がありたす。そうしないず、結果がすぐに悲しくなるこずがわかりたす。



頂点シェヌダヌの目的に぀いおある皋床のアむデアを埗お、静的モデルを生きたキャラクタヌに倉えるためにアニメヌションがどのように䜿甚されるかを理解しおください。



All Articles