white water: ボリュームからポイントレンダーに
例えばシェルフツールからの設定そのままに以下ような White Water のシミュレーションを作成した場合、デフォルトの設定のまま60フレーム目でレンダリングすると以下のよう画像を得る。
レンダリング時間は、Windows Experience Index=5.9の PCで、約35秒。
デフォルトの設定では /obj/import_whitewater/volumerasterizepoints1 にレンダリングフラグが指定され、 /obj/import_whitewater/ のMaterialに /shop/spray が設定されているために、whitewater パーティクルがボリュームレンダリングされている。 これでは、ボリュームレンダリングのクオリティを相当あげないと、キレイな画像とは正直言えない。
よって、パーティクルのままレンダリングするようにしてみたい。
- /obj/import_whitewater/の中に入り、pointwrangle1 ノードにadd1 を追加する。
- add1 ノードのParticles タブに行き、"Add Particle System" をオンにする。
- add1 ノードにレンダリングフラグ(Ctrlキーを押しながら表示フラグをクリック)を設定し、add1がレンダリングされるようにする。
- 一つ上に上がり、/obj/import_whitewater/ のマテリアルタブに行き、設定されていた /shop/spray を削除する。
レンダリング時間は約13秒。
- /obj/import_whitewater/pointwrangle1 に行き、エクスプレッションの
"@pscale *= 1;" となっているところを
"@pscale *= .1;"と変更し、レンダリング。
レンダリング時間は5.5秒。
これにより、発生させる whitewater パーティクルの量を増やしてもレンダリング時間に大きな増加がなくなる。以下2枚は/obj/whitewater_sim/whitewater_emitterのConst. Birth Rate を100 (デフォルト)から10,000に増やした結果。
この状態でのレンダリングを効率よく行うには、キャッシュを効率よく行う必要がある。
それに関してはまた次回。
0 件のコメント:
コメントを投稿