mieki256's diary



2017/06/26(月) [n年前の日記]

#1 [blender] blenderのパーティクルで影を落とす方法を試したり

_昨日、 blenderのパーティクル機能のビルボードを使って、木っぽいものを大量発生する手順を試したけど。影を落とせなかったのが気になったので、そのあたりを調べて試してみたり。

ちなみに、Cyclesレンダーじゃなくて、blenderレンダーの話です。blender のバージョンは 2.78。

ビルボードの影も落とす。 :

ビルボードの影 ―― というかビルボードに使ってるアルファチャンネル付きテクスチャの影 ―― は落とせないのかもしれぬ、と思い込んでたけど、そうではなかったらしい。「ビルボード側のマテリアル」を弄って試してたから影を落とせなかっただけで、「ビルボードの影を落としたいオブジェクト側のマテリアル」を弄れば、影を落とせる模様。

例えば、地面相当のオブジェクトがあったとしたら…。ビルボードの影は、その地面オブジェクトに落としたいわけだから、地面オブジェクトのマテリアルを設定して、「お前、影をちゃんと受け取れよ?」と指定してやればいい。

具体的には、「影」 → 「半透明影の受信」にチェックをいれてやるだけ。たったこれだけで、ビルボードの影も落ちるようになる。
particle_shadow_ss_01.png

しかし、これはこれで問題が。

ビルボードの影の問題。 :

ビルボードはあくまで1枚のポリゴンでしかないので、光源の位置や方向によっては、影の形がアレなことになる。
particle_shadow_ss_02.png

そりゃそうだ。板が一枚、そこに立ってるだけだもん。

じゃあ、どうすればいいのか。…策の一つとして、影専用のオブジェクトをパーティクルで別途生成してしまう、てのはどうかなと思いついたり。

例えば、以下のような十字ポリゴンのオブジェクトを作って…。
particle_shadow_ss_03.png

ビルボードを発生してるパーティクルとは別に、もう一つ、影専用として使うパーティクルを追加する。設定は、ビルボード用パーティクルの設定とほとんど同じだけど、違うのは…。
  • 各パーティクルの種類を、「ビルボード」ではなく「オブジェクト」にして、先ほど作った十字ポリゴンオブジェクトを指定する。
  • 向きがおかしいので、ちゃんと表示されるように「回転」のあたりを弄ってやる。
particle_shadow_ss_04.png

ところで、このままだと影専用パーティクルの実体(?)までレンダリングされてしまう。今回は、実体を描画する必要が無いわけで。影だけが欲しいわけで。

なので、影専用パーティクルに使うオブジェクトのマテリアル設定で、「影」→「投影のみ」にチェックを入れる。これで実体は描画されず、影だけが描画される状態になる。
particle_shadow_ss_05.png

更に、ビルボード側の影は、もう要らないわけで。ビルボードに使ってるマテリアルの設定で、「影」→「成型」あたりのチェックを外す。これで影がでなくなるはず。というか、影関係は全部無効にしてもヨサゲ。
particle_shadow_ss_06.png

これで、ビルボードの影がアレな形ではなくなった。
particle_shadow_ss_07.png

ていうか、そもそも「ビルボードの影」ではなくて、「ビルボードの影っぽく見える別の物体」がそこに居るわけだけど。

しかし、これもこれで問題が。

十字ポリゴンの影の問題。 :

十字ポリゴンは、あくまで十字ポリゴンなので、例えば光源が真上にあると恐ろしいことになる。

particle_billboard_take7_shadow_preview.jpg

「ところでこのレンダリング結果を見てくれ。こいつをどう思う?」
「すごく…エヴァンゲリオンです…」

(´ω`)

じゃあ、どうすればいいのか。…どうするんでしょうね。頓智の世界ですね。

#2 [blender] blenderのパーティクルビルボードで何種類か表示したい

blenderのパーティクル機能のビルボードを使いつつ、複数のテクスチャを描画したい。例えば一種類の木のテクスチャだけが表示されているのでは、なんだか見た目が不自然なわけで。何種類か欲しいよなと。

調べてみたら、一応そういう設定もできる模様。ただ、複数のテクスチャ画像を割り当てる感じではなく、1枚のテクスチャ画像に何種類も描いておく、みたいなソレになるようだけど。

例えば、こういう感じのテクスチャ画像を用意しておいて…。
particle_multi_ss_01.png

そのまま表示すると、こんな感じになってしまう。
particle_multi_ss_02.png

が、パーティクル設定の、「レンダー」→「UVを分割」の値を1より大きくして、「ビルボード分離UV」にUVMapを指定してやれば、1枚のテクスチャ画像を分割してどれかしらを使う、みたいな状態になるようで。
particle_multi_ss_03.png

このスクリーンショットでは、ちょっとよく分からんけど…。よーく見ると複数の種類の木が表示されてることが分かるかと。

UV分割に指定する値は…。 てな感じで指定すればいいらしい。

一応、実験に使った画像も置いときます。CC0 / Public Domain ってことで。

_trees.png (5.3MB、2048x2048)

#3 [blender] blenderのCyclesでビルボード

blenderは、2つのレンダリングエンジンを持ってる。
今まで試していた、パーティクルでビルボードを使うソレは、blenderレンダー上であれば利用できるけど…。

Cyclesレンダーを選んだ場合、パーティクルのビルボードは使えない。実装されてないし、実装する予定も無いようで、レンダリングしてみてもそこには何も描画されない。

となると、Cyclesを使いつつ、ビルボードもやってみたい時はどうすればいいのか。

Cycles利用時も、オブジェクトをパーティクルとして発生させることはできるようで。ソレを使えば似たようなことができなくもないらしい。常時カメラのほうを向く、ポリゴン1枚だけのオブジェクトを作って、ソイツを元にしてパーティクルとして発生させてやる、みたいな。

ということで、やってみた。



たしかに、それっぽくなった気がする。

ところで、動画内の影に注目。角度によっては影が消えてるように見えるはず。ビルボードは、所詮1枚のポリゴンをそこに立ててるだけなので、光源とカメラの角度によっては、影がアレなことになってしまうことが、この動画からも分かるかなと。

操作手順は、以下の動画を参考にさせてもらった。ありがたや。

_Blender 3D Quick Hack : Cycles Billboard Particles - YouTube

しかし、これはこれで問題が。

ビルボードの向きがなんだか不安。 :

blenderレンダー上で、パーティクルビルボードを使った場合、各パーティクルがそれぞれカメラ位置に向いてくれるのだけど。
particle_cycles_ss_01.png

Cycles上で、前述のようなことをして、似た状態を作ろうとした場合、各パーティクルは、元になったビルボードと同じ角度になってしまう。
particle_cycles_ss_02.png
1つだけ妙に大きいヤツが居るけど…コイツが元になったオブジェクト。パーティクル達は、コイツの角度を皆で真似するわけで。

更に、元になったオブジェクトの位置が、カメラに対して頓珍漢なところにあったりすると、パーティクル達がカメラに対して頓珍漢な向きになってしまう。
particle_cycles_ss_03.png

てなわけで、blenderレンダー上のパーティクル+ビルボードとは、かなり動作が違うというか…。

なので、この方法を使う際の注意点としては、元オブジェクトをカメラに対して適切な位置に置いてやる、等の工夫が必要になりそうな予感。おそらく、元オブジェクトをパーティクル達の中に紛れ込ませる、みたいな感じになるのではないかなあ、と。なんだか忍者アニメ等で見かける分身の術みたいですな。「お前が本体だってばよ!」「なにっ!? 見破られた!?」 みたいな。

それはともかく。Cyclesを選ぶ時点でリアルっぽいレンダリング結果を求めてるはずで、そんな場面でビルボードなんか使うのかな、という気もしてきたり。ビルボードを使おうと思う時点で、リアルっぽさは二の次で、つまりblenderレンダーでも済みそうな場面だったりするのでは…。どうなんだろ。

以上、1 日分です。

過去ログ表示

Prev - 2017/06 - Next
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project