v-rayで水の中に気泡を作る方法
- 山野 幸一郎
- 2019年8月5日
- 読了時間: 4分

こんな感じの水の中に空気が入っているように見えるシーンの作り方を説明します! いろんな事に使えるTipsだと思うので、色んな使い方を試して頂きたいです。 では早速進めましょう!
まず、この方法はv-rayだと間違いなく再現できるのですが、他のレンダラーだと成功するか分かりません。僕の先輩がRedshiftで試してくれた結果同じような表現が出来ました。バイアスだったらある程度同じような結果になるかもしれません。アンバイアスは分かりません。試された方いたら共有して頂けたら嬉しいです! バイアスとアンバイアスってなに?って方はこちらをどうぞ! https://c3dpoly.com/renderer
結果的にいうと、 「内側のモデルのノーマルを反転してv-ray materialを使用し、完全な同一のマテリアルにすれば、同じ物体として認識される。」 という事が分かりました!
まず、今まで僕が陥っていた状態について説明します。

いやこれなんなの? まぁそうなりますよね。この結果と同じになってるなら、この記事読む価値あると思います。これは、「オブジェクトの中にオブジェクト入れたら反射していい感じになるのでは?」の結果です。下の図を見てもらうと分かりやすいと思います。

これは、言ってしまうと、水の中に水が入ってしまっているのです。

こういう事ですね。水の中に水があるなんて物理的におかしいので、結果が良くないのもうなずけます。オブジェクトは総じて、「中身が詰まっている」のです。この場合は水のマテリアルを適応させているので、中に水がパンパンに詰まったオブジェクトです。その中にまた水が詰まったオブジェクト置いているので、そこだけ二重になってしまいます。
さて、そんな時に中に空気を入れなければいけません。悩んだ末に、オブジェクトは中身が詰まっている。さすれば中のオブジェクトのNormalを反転すれば別空間が作られるのではないか!?と考えました。

こうしたいわけですね。 なので、中に入っているオブジェクトのNormalを反転します。 3dsmaxのビュー的にはポリゴンの色が黒味がかるので、分かると思います。

余談なのですが、Normalを反転させるという行いは、モデリング界隈ではかなり嫌がられます。僕も学生の頃に怒られました。何故かというと、レンダリング結果が変わってきますし、同一頂点を作る時もありますし、エラーで落ちる時もありますし、ゲームエンジンだと表示すらされない時もあります。今回の場合は特別に反転する。という考えのもと行っております。
それでは、早速レンダリングを・・・。

あいやー! 結果が違う! そうですね。もう一個言っとかないといけないことがあります。この問題に関しては、はっきりと分かってないんでChaos Groupさんに聞かないと分かりません。あくまで仮説として今回は記事にします。 これ実は同じマテリアルなんですけど、コピーした別のマテリアルなんですよね。つまり、「パラメーターが全く同じマテリアルでも、別のマテリアルだと別オブジェクト扱いになる。」という事です。

はい。全く一緒ですね。 なのに何で別オブジェクト扱いなのか?多分ですけど、別マテリアルというだけで、別の物という扱いにしておかないと処理出来ないんじゃないですかね。今回の記事の確信を揺るがすことになるかも知れないのですが、実はこれ「1つのオブジェクト状態でやると普通に処理される事」なんですよね。例としてシャボン玉をつくったりする場合は、皆さん普通にやってるような事なんです。厚みがある球体を作ってレンダリングしますよね。それの厚みがすっごい版で、中の空気が動いている。となると、同一マテリアルを使えば別オブジェクトでも同一オブジェクトとして扱われる。というのがみそです。 と、いうわけで同じにしてレンダリングしてみましょう。

これぞ求めていたものです! もろもろ調整して動いているものがこちらです。
まとめ
・内側のオブジェクトのNormalを反転すると、そこには空気が入る。 ・1つのオブジェクトでするとすごく簡単。 ・別のオブジェクトで同じような結果が必要な場合、完全な同一マテリアルを使えば同一オブジェクトとして扱われる。 この記事が皆様のお役に立てれば嬉しいです。 それでは良いCGライフを!
Comments