fc2ブログ
3DCGについての初心者向けTipsなんか
久々にHDRI関係
2010-01-26 Tue 12:26
現在、ウイングマンのモーション付けに悪戦苦闘中…
やっぱり資料がないと作業が進まないので、実家に眠っていた原作コミックスを発掘、久々に全13巻を読み返しておりました。

ちょっと困っているのが待機状態のポーズ。
いわゆる「構え」のポーズですが、原作中ではあまりないんですよね…なぜか。
クロムレイバーを構えて足を開いた基本姿勢をとらせてみたら、ウイングマンらしいけど格ゲーっぽくない…orz
個々の技のポーズは作れますが、肝心の基本状態が定まらないので作業が難航しております。


…そんなわけで、唐突にフリーHDRIのリンクを貼ってみます(笑)
今回は国内サイト限定です。

http://homepage3.nifty.com/vitamin_cg/
http://vitamin-cg.cocolog-nifty.com/
札幌や都庁付近で撮られたパノラマHDRIが10枚ほどダウンロードできます。
上のホームページからは.hdr形式のファイルがダウンロードできますが、下のブログのエントリを開くと出る「HDRI」のページからだと.hdrと.exrの二種類が選べます。
.hdrの方はvidroに読み込むと真っ白になるファイルが多い?ので、.exrの方が良いかもしれません。夜のパーキングのパノラマとかが個人的に好きです。
「大怪獣バトル ウルトラ銀河伝説」のCG作製担当されている方みたいですw


http://www.dstruevision.com/

こちらはMayaやZBrushでCGを作ってらっしゃる方のようです。
「tutorial」から都庁や歌舞伎町の夜景なんかのパノラマHDRIを7枚ほどダウンロードできます。
…ただし、画像が非常に高解像度で(11000x5500とか!!)、ファイルサイズが100~200MBあり、落とすのに時間がかかります。
しかもそのままレンダしようとすると、自分の環境ではメモリエラーでvidroが落ちる… ( ̄▽ ̄;
こういう時はHDRShopでサイズ調整すればOKなんですが、exr形式のものはHDRShopで読めないんですよね…
HDRI編集・変換手段をフリーウェアで探してみましたが、Photomatixというソフトの体験版くらい?(出来るかどうかは知りません)。
自分は素直にPhotoshopでリサイズしました…。

どちらもそうですが、日本の風景ってHDRI関係ではあまりないので重宝します。
パーキング関係のHDRIなんて車のレンダに使うと良さげですな。



school_hdr.png
school_npr.png

ついでと言ってはなんですが、かこみき様のフリー素材の教室セットを使って、vidroでHDRI自作のテストをしたのを貼ってみます(上がフォトリアル、下がNPRです)。
あくまでテストなんで、あんまり設定は詰めていません。
蛍光灯はマテリアル発光、窓の外には適当にHDRI貼ったんですが、うまく行かなかったので平行光源を使っています(ちょっと強すぎた)。
次に作る時はきっちり光源設定して風景画像を貼りますわ。
室内などの閉じた空間ではレンダに時間がかかるもんですが、360°パノラマレンダにすると滅茶苦茶です。
800x400のレンダに丸々一晩かかりました…(ー_ー;

光源さえちゃんと設定すればちゃんとIBLに使えます。
でも背景画として使うなら、最終出力画像の倍~3倍は解像度が必要だと思われます。

自作するなら屋外のシーンかスタジオ照明セットくらいにした方が良いかも…
スポンサーサイト



別窓 | [シーン]について | コメント:0 | トラックバック:0
透過について
2010-01-14 Thu 12:26
透過テクスチャを指定した場合に、メタセコのプレビューとvidroでのレンダリング結果が異なるetc.不明な部分が多少あったので、整理してみたいと思います。

dark_hair0011.jpg dark_hair0011alpha.jpg
髪の毛のテクスチャ(左)と透過用テクスチャ(右)を用意し、板ポリに貼ってみました。

touka_def.png
メタセコの画面上ではこのように毛先が透過して表示されています。

touka01.png
このデータをvidroに読み込んだところ。
何だかヤケに薄い…

touka_mae.png
マテリアルの設定画面を開くと、「透過」の欄がグレーになっており、「unmodifiable」という見慣れない文字が…
しかもこのままシーンファイルを保存しても、「髪」マテリアルはvdr内に記録されません。

touka_ato.png
そこでvdrファイルに手書きで「髪」マテリアルを作成し、読み込ませてみました。
今度は「透過」の欄が通常に表示されています。

touka02.png
この状態でレンダリングしたところ…???

実は、vidroで透過テクスチャを指定する場合には、白黒の階調が逆のものを使わなければなりません。
しかし元データにmqoを使っている場合にはvidro内部で反転して処理してくれているのです。
マテリアル画面でいじれなくなっているのもvdrに保存されないのもそのためのようです。

dark_hair0011alpha2.pngtouka04.png
透過テクスチャをネガポジ反転させたものを使うと、設定通りのレンダ結果になりました。



touka_png.png
ちなみにメタセコではアルファチャンネル付きのPNGテクスチャを使うと、透過テクスチャを指定しなくても透過表示されます。

touka03.png
…んが、vidro上では透過しないので、透過テクスチャは別途必要です。

問題点:
・レンダリング結果がメタセコのプレビューと大きく異なる
・vdrにマテリアル設定が保存されないため、鈍い鏡面・法線マップ等の他の設定も毎回やり直しが必要

対応策:
・透過テクスチャを使用したデータをvidroに渡す場合は、一旦透過テクスチャを外しておき、vidro上で指定すること。
・α付きのテクスチャは使用しない
…じゃないとvdrをチマチマ編集しなきゃならんので面倒です。



NPRを使った場合。

touka_edge.png
輪郭線表示。
透過後のエッジがきちんと検出されています。

touka_npr.png
NPR表示(わかりやすくするため輪郭線を赤にしてあります)。
ちゃんとアウトラインが検出されているので、トゥーン調でレンダする場合にも使えそうです。
キャラの髪先とか睫毛なんかの表現に使うと良さげです。
テクスチャを貼らずに透過テクスチャだけ使っても良いんじゃないかな…

touka_warabi.png
ちなみにwarabiMPでのレンダリング結果。
きれいに影が落ちますが、残念ながら輪郭線はポリの外周に沿ってしか描かれません。
でも好きなんですよね…warabiの画質



ss.png
ちなみに今回のテクスチャは3dmd.netのを使ってます。
髪の色とウエーブ別で40種類ほど、それぞれに透過テクスチャが用意されています。
ハイレゾなものは有料ですが、640x640サイズのものなら無料で落とせます。
光沢が描き込まれているのが残念ですが、ペラッと貼りつけるだけでかなりリアルに見えますよ。

他にも肌・金属・布地・地面なんかのシームレステクスチャもあって、かなり重宝します。
別窓 | [シーン]について | コメント:0 | トラックバック:0
鏡面反射について
2009-12-30 Wed 16:22
よそ様のブログで紹介して頂いたので、記念の鏡面反射の実験(記事書くの忘れてた…)
今まではアバウトでも使えていたんですが、調べてみてわかった事もチラホラ…

(とりあえず)
vidroで鏡や自動車のボディのような映り込みを表現したい場合は、マテリアルの「完全鏡面反射(Reflection)」を設定します。
今回は設定項目「Weight(RGB)」「テクスチャ(UV)」「相対屈折率(RGB)」の3つについて実験してみました。

実験用に球のオブジェクトと背景のHDRIを用意しました。
当たり前といえば当たり前ですが、マテリアルに反射を設定しても周りの空間にオブジェクトがなければ、映り込む像がないので鏡面効果が出ません。
最低でも鏡面設定したオブジェクトの他に一つくらいは映り込むモノを用意した方が良いでしょう。

ref01_0.png
とりあえず「拡散反射」Weight=0.8/0.8/0.8の白い球。

ref01_1-0.png
「完全鏡面反射」Weight=1/1/1 屈折率=0/0/0

これが完全なミラーの設定です。
この場合の屈折率=0は「屈折しない・反射しない」ではなく、全く逆の意味なので注意。
この設定にした時点で「鈍い鏡面反射」「拡散反射」「発光」の入力ボックスが選択不能になることからわかるように、材質が持つ色関係の設定を完全に排除して100%反射します。

※普段私たちが目にしている「物の色」は「光の各要素をどれだけ反射するか」によって決まるので、全ての光を100%反射する物体は色を持ちません(表現としてあってるかどうかはわかりませんが)。



屈折率のパラメタでミラーの強度を調整してみます。
以下、Weight=1/1/1で屈折率だけを変化させたサンプルです。

ref01_0.png ref01_1-1.png
左:鏡面反射なし、右:屈折率=1。ほとんど違いがわかりません…

ref01_1-2.png ref01_1-4.png ref01_1-8.png
左から屈折率=2、4、8

ref01_1-16.png ref01_1-32.png ref01_1-64.png

左から屈折率16、32、64
これ以上は屈折率=0と変わらないと思われます。

パラメタの設定範囲ですが、Weightは「0~1の実数」、屈折率は「実数」です。
鏡面の効果を調整する場合にWeightの調整をメインにするか屈折率をメインにするかですが、個人的には屈折率=0/0/0で固定してWeightを0~1の範囲で増減させた方が把握しやすいかなぁ…と思います。
まぁ、その辺りはいろいろ試して好きな方を使われるとよろしいかと。



たまには色つきのサンプルを出して見ます。

ref01_blue.png
青い球(拡散反射=0/0/0.8)。

ref01_blue_1-2.png ref01_blue_01-0.png
左:Weight=1/1/1 屈折率=2/2/2  右:Weight=0.1/0.1/0.1 屈折率=0/0/0
青い色のまま映り込みが入っています。

ref01_blue_1-8.png ref01_blue_06-0.png
左:Weight=1/1/1 屈折率=8/8/8  右:Weight=0.6/0.6/0.6 屈折率=0/0/0
どちらもミラーの強度が上がると色が薄くなります。



「テクスチャ(UV)」について

とりあえず定番のマスクとして
ref01_earth.pngsima.pngref01_earth2.png
反射させたい部分には白、させたくない部分には黒でマスクすると良いようです。

次に色つきテクスチャ
ref01_grassball.pngref01_glassball01.png=ref01_glassball02.png
中空のガラス球にカラフルなテクスチャで反射を指定したらシャボン玉に
…と思ったけどかなり微妙 (― ―;
もうちょっと設定詰めないとダメですな



ちなみにWeightや屈折率の値は三つ統一する必要はないので、変化をつけると面白い材質表現ができるかも。

ref01_blue_red_05-0.png ref01_black_red_01-16.png
拡散反射=0/0/0.8、Weight=0.5/0/0、屈折率=0/0/0 のピンク光沢の青い球
拡散反射=0/0/0、Weight=0.1/0/0、屈折率=16/0/0 の赤く輝く黒い金属
別窓 | [シーン]について | コメント:0 | トラックバック:0
マテリアル「鈍い鏡面」サンプル
2009-11-16 Mon 12:17
「鈍い鏡面反射」
指数と反射率との関連ですが、設定のたびにトライ&エラーするのが面倒なので、簡単な見本を作りました。
ついでなのでその辺をアップします。

「鈍い鏡面反射」の「指数」
>鈍い鏡面反射の滑らかさ。接線方向の値と従法線方向の値をそれぞれ指定する(異方性反射)。この値が大きいほど物体表面は滑らかになり、小さいほど荒くなる。(以上、マニュアルより)
解説では「32」辺りで大理石の表面程度の滑らかさと言う事です。

specul_XY
「拡散反射」weight(RGB)=0.8、「鈍い鏡面」反射率(RGB)=1.0に固定し、指数のみを変化させてみた例。
天球光源はOFFで、平行光源を1つ置いています。
黒い部分は周囲の光源の無い空間が映っている部分、白は平行光源からの光が当たっている部分です。

値が大きくなるほど「鈍い」鏡面反射ではなく、「完全」鏡面反射に近い質感になっています
(映り込みの設定をしていないのでわかりづらいですが)。
このパラメタで3桁とかの無茶な設定をするよりは「完全鏡面反射」のパラメタを設定した方が良いでしょう。

specul_weight weight=0.0~1.0
specul32 反射率=0.0~1.0

指数32での比較例。
上:weight(RGB)=0.0~1.0、反射率(RGB)=1.0 / 下:反射率(RGB)=0.0~1.0、weight(RGB)=1.0
※左上0.0~右下1.0の0.1刻みで並んでいます。

「反射率固定で適用値が変化する場合」と、「適用値固定で反射率が変化する場合」では意味合い的には同じかな?
…と思ったのですが、結果は違いますね。
特に0.0~0.5の辺りの違いが顕著です。

今回は「鈍い鏡面反射」単品での実験ですが、weightの割合は「完全鏡面反射」や「拡散反射」とも関連してくるハズなので、そのうち実験してみます。



以下、設定のサンプル(weight=1.0、反射率0.0~1.0)

specul04指数4
specul08指数8
specul16指数16
specul32指数32
specul64指数64



まぁ、「艶」の見本程度に考えて下さい。
実際の質感はオブジェクト自体の他パラメタ(拡散反射色etc.)、光源の強度や位置、周囲のオブジェクトによって変わります。
別窓 | [シーン]について | コメント:0 | トラックバック:0
光源-スポットライト 2
2009-10-15 Thu 16:49
久々の更新ですな。
実は点光源の方向ベクトルを設定するアプリを作っていたのですが、sin、cos、tanとか、三次元の行列変換とか、ベクトルとか…
高校時代に習ったような気はしますが、もう遥かな昔。
ほとんど1から勉強し直すような感じで悪戦苦闘しておりました。
3D関連のライブラリを使えば早いのかも…とか思いながらも、ムキになって素計算で作製w

…が、しかし、vidro20091008版でメタセコβの光源の向きを読み込むようになったとのこと(先を越された!!)。


…今回はとりあえずそれを使ってみます。

まずはメタセコで点光源を作製。
デフォでは光源の位置は(0,0,0)で、(0,0,-1)方向(Z軸の-方向=画面奥)に向いていると思って下さい。

091015arrow01.jpg
といっても素の状態ではわかりづらいため、ガイドオブジェクトを作ってみました(DOWNLOADに置いておきます)。
十字の交差する点が点光源の中心、矢印の方向が点光源の向きを表しております。
これを「ローカル」コマンドを使って移動・回転させます。
※通常の移動・回転では点光源は動きません。注意!!

starlight2.jpg
今回使用したマスク画像。黒い部分は光が透過しません。
点光源への貼り方は光源-スポットライト参照の事。

091015_pl01.jpg 091015_pl02.png
光源を置いただけの状態。
マスクに使った画像がZ軸奥へ投影されています。

091015_pl02.jpg 091015_pl04.png
軸を下向きに調整した状態。
光源の照射点を正確に設定したい場合は、「ローカル」→「拡大」でZ軸方向にガイドを伸ばすとわかりやすいです。

091015_pl01_.jpg 091015_pl02_.png
右に30°傾けてみました。
操作のコツとしてはヘッド・ピッチ(XY軸回転)で方向を設定し、バンク(Z軸回転)でテクスチャの傾きを調整すると良いでしょう。

とりあえず今回の変更で、以前紹介したマスク画像の極座標変換を使う必要はなくなりました。
好きな画像をそのままマスク/テクスチャとして使う事ができ、簡単にスポットライトとして使う事ができるようになりました。

091015kagee_.jpg 091015_kagee.png
白黒画像だけでなく、カラー画像も貼り付けることができます。
影絵やステンドグラス調の効果も付けられます。



平行光源も方向だけでなく位置が読み込まれるようになりました。
試しに平行光源を中に仕込んだ箱を作ってみましたが、レンダリングすると天井に遮られてしまいます。
091015_pal01.jpg 091015_pal02_.png
やはり平行光源は無限遠からの平行光源です(当たり前ですが)。
あくまでもテクスチャを貼るための仕様変更のようですね。



ちなみに…
拙作の光源設定アプリは不要になったっぽいですが、そのうち公開するかもしれません。
光源の色と強度は簡単に設定できるようになっています。
一応、始点・終点を入れるだけで光源の位置と向きを設定できるので、ローカルでチマチマ回すよりはかなり楽だと思います。
しかし…肝心の光軸が微妙にズレるので、そこをなんとかしないとどうにも…(- 。-;)
20091015vid_ap_.png
vidro本体に光源関係のGUIが実装される方が早かったりしてw
別窓 | [シーン]について | コメント:1 | トラックバック:0
| Aether 「哀愁の昼休みモデラー」のブログ | NEXT