リアルタイムクラウドアルゴリズム


7

このゲームでアルゴリズムがどのように機能するか知りたい:http : //www.gametrailers.com/user-movie/cloud-the-game/45068

特に、ゲームがどのようにリアルタイムクラウドを生成し、他のクラウドと動的にマージできるか。

いくつかの情報をグーグルで検索しようとしましたが、有用な情報を見つけることができませんでした。おそらく間違ったキーワードに慣れていたからでしょう

回答:


13

クラウドレンダリングは難しい作業です。しかし、ビデオ内のこれらの雲は、「曇った」粒子のほんの一部です。それはいいことだとは思いません:)

素敵な雲の問題は雲のシミュレーションではなく、雲のレンダリングです。動的な照明のあるシーンでリアルタイムに写真をリアルに処理することは不可能です。クラウドのような参加メディアで何が起こるか: ここに画像の説明を入力してください

発光は、参加しているメディアが(高温ガスや火のように)発光する場合、またはそれらが点灯する場合(通常のレンダリングと同様の部分)にのみ存在します。吸収とは、光が吸収されることを意味し、散乱が最大の計算上の問題です。ボリューム内で光が散乱します。次に、セルフシャドウと、地面および不透明なシーンへのシャドウエミッティングを行います。どうやってするの?

クラウドはどこで入手できますか? 雲はパーリンノイズによってシミュレートできます。それは非常に一般的で見栄えが良いです。パーリンノイズは4Dになる可能性があり、4次元目は素晴らしいダイナミックな雲を作成する時間です。雲の形を指定したい場合:目的の形をボリューム化して密度3Dグリッドとして保存し、パーリンで乗算する必要があります。

それをレンダリングする方法

粒子をレンダリングすることによって?。粒子雲が可能です。最も簡単な方法です。ただし、粒子間の光の伝播のシミュレーションはかなり困難です。パーティクルをカメラのビュー方向に(または、camera-dirとlight-dirの間のいわゆる半軸に)ソートする必要があるのは非常に一般的です。ターゲットプラットフォームがシェーダーモデル4以上のシェーダーモデル5およびgpgpuコンピューティング(cuda、openClまたはdirect computeなど)をサポートしていない限り、これはリアルタイムアプリケーションでは不可能です。リアルタイムになります)。並べ替えは、アルファブレンディングとスマートシャドウマッピングにも必要です。

いくつかの記事をご紹介します。

ボリュームレイキャスティング。ボリュームレイキャスティングとは、流体シミュレーションを行った場所にグリッドがあることを意味します(通常はNavier-Strokesですが、ボクセル化された雲の形状でもかまいません)。そして、ボリュームを介してすべてのピクセルの光線を発射し、光線全体の輝度を統合します。これは驚くべきことに、リアルタイムアプリケーションでは問題ありませんウィキ上のレイキャスティング。gpgpuコンピューティングを使用する必要はありません。ボリュームレイキャスティングは、スレッド(レイ)間の同期を必要としないため、ピクセルシェーダーで実行できます。3Dテクスチャにグリッドがあると、グラフィックスハードウェアに最適です。これは、テクスチャユニットのネイティブの3線形補間を利用できるためです。セルフシャドウイングは、すべてのサンプルからライトに光線を発射し、ライトシャドウイングボリュームの密度をカウントすることで実行できます。これは遅いです。トランジションでいくつかのシャドウマッピングを使用できます(ディープシャドウマップなど)。光散乱もリアルタイムでは不可能です(gpgpuでは可能です)。

ボリュームレイキャスティングは高速で、パーティクルソーティングよりも実装が簡単で、古いハードウェアでも高速に動作します。

勉強すること:


詳細情報をありがとう。私たちの目的のために、雲は指定した形状に変形する必要があります。したがって、パーティクルを使用してPerlin Noise 3dグリッドを使用できると思います。ボリュームレイキャスティングによる照明であっても、モバイルプラットフォームは私たちの目的のプラットフォームであるため、おそらく禁止されています。
Leo

ルミオンの雲の種類はどうですか?それらは飛行可能ではありませんが、豪華に見えます。vimeo.com/12173355
ジョージR

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.