Blender Tutorial: Water
http://www.pekaro.de/blender/water/water_tutorial.html 概要: ただのPlaneをリアルな川面・湖面に見せる手法のチュートリアル。
ノーマルマップ(Clouds)と環境マップ(実写サンプル)を使って水面の波を表現。
テクスチャのオフセット変化(=Material IPO)使って、川が流れる/風で波が動くアニメも作成。
________________________________
Blender Tutorial: Water(その1/5)
■イントロダクション■
この前の土曜、とても天気が良かったので自転車でささやかな旅に出ることにした。
エルブ川(
http://en.wikipedia.org/wiki/Elbe)を渡る時、自然に川に目を向けたので
川を観察するためしばし足を止めた。
あなたがイメージに説得力の有る見た目を持たせたい場合、観察は最も重要な要素だ。
これは単純な論理である:世界を知らなければそれを再び創造することはできない。
■水の特徴■
土曜日と他の機会に水を観察した結果、次の特徴が明らかになった。
1.水にはとても沢山の種類がある。
水のタイプと水本体のサイズ・深さに依存するらしい。天気と環境、透明度等にも依存して
いる。よってCGにおける水の表現は、1種類ではありえない。どんな状況でも使える
表現は無い。このチュートリアルでは穏やかな風の元で波打つ川面・湖面を真似してみよう。
2.水面の波は様々なサイズである。
川のように水本体が動く場合は大きな波だけが形を変える。しかしそれ以上/以下の
並みは同じ場所に留まり続け{?}, while the small waves show the movement
down the river. ただし湖のように水本体が動かず、風の影響だけ受ける場合、
大きな波は小さな波より大きく動く。波の頂と谷間{The crests and throughs of
water waves}は均等ではない。実際、頂は大抵谷間より狭い。
3.水は透明で反射する。
反射光の量は見ている角度に依存する。水面に対し直角から見れば透明に見える。
鋭角から見れば水は鏡のように振舞う。 どんな透明素材も同じように振舞う。
Blender Tutorial: Water(その2/5)
■チュートリアル■
私の観察結果と印象をBlenderで再現してみよう。説得力の有る水のCGを作るんだ。
ただしこれは単なるマテリアルのテストで周囲に何も無い。これをちゃんとしたシーンに組み込む
にはいろいろ調整しなくてはならないだろう。
デフォルトシーンからCubeを削除してPlaneを追加。 サイズを拡大してカメラビュー 一杯にする。
Materialボタンウィンドウに移動[F5]、デフォルトマテリアルを選択。
■Waves/波■
最初のテクスチャ・チャネルはダミーのテクスチャで埋まっていると思う。そうでないなら作成する事。
それからTextureボタンウィンドウに切り替える[F6]。''Texture Type''を'Clouds'に、
''NoiseSize''を0.350に変更。これで解像度が少し良くなる。さらに''Hard Noise''ボタン
を選択。後者は波の頂を細くするために重要だ。これで完璧という訳ではないが、均等な
SoftNoiseよりは実際の波に近い。これは私が知ってる限りBlenderでの最良の設定だ。
Materialボタンウィンドウに戻りテクスチャを''Nor''にマッピング。''Nor''スライダーを適当な値にする。
私は0.8にした。これは大きな波に適した値。
小さな波用として同じテクスチャを2つめのチャネルに割り当てる。''Map Input''パネルのサイズは
1/4に小さくする。例えばSizeX/SizeY/SizeZを4.0に。 これを''Nor''にマッピングして
''Nor''スライダーを大きな波の値より少し小さく、ここでは0.6にする。
テストレンダーを使用。 次のように見えるはずだ。
http://www.pekaro.de/blender/water/water_tutorial1.jpg
Blender Tutorial: Water(その3/5)
■Reflection/反射■
Planeを水面のように見せるには、観察した水面の属性を真似しなければならない。
綺麗な水は光を拡散反射しない。 そこで''Ref''スライダーをゼロにする。
但し濁ってる様に見せたい場合は、色を茶色にし適当な拡散反射{Ref}を与えてもいい。
さてSpecular反射(光沢)の番だ。簡単に可視化するには光源をPlaneの向こうに置く。
''Blinn''シェーダーを選択する。これはとてもシャープなハイライトを作り出せるので、水面の
ハイライトのように見える。 ''Spec''=1.0、''Hard''=150、''Refr''=10.0にすると
良い感じに見える。もう一回テストレンダーしよう。
http://www.pekaro.de/blender/water/water_tutorial2.jpg 次に必要なのは環境から来る水面への反射だ。私は既に持っていた環境マップを使った。
なぜなら我々のテストシーンにはレイトレーシングで反射させられる周囲が無いからだ。 私が使った
のは次のenvmapで、ここからダウンロードできる。
beach envmap.pnt(265kB)
http://www.pekaro.de/blender/water/beach_envmap.png 3番目のテクスチャ・チャネルに新しいテクスチャを追加する。Textureコンテキスト{ボタンウィンドウ}で''EnvMap''
を選択する。''Load''ボタンをオンにし、envmapをBlenderに読み込むために''Load Image''
ボタン を押す。 ''Material''コンテキスト に戻り、''Map Input''パネル の''Refl''を選択、
{''MapTo''パネル で}''Cmir''に マッピング する。 これでマテリアルは面全体が水銀のように強く反射する。
マテリアルを仕上げて外見を水銀から水のように変えるには、''MirrorTransp''パネルで3つ
設定が必要だ。
-''ZTransp''をオンにして水を透明にする。~
-''Fresnell''値を上げ、見る角度によって反射を変える。~''Fresnell''=3.3が我々の目的に合う。
-~最後に''SpecTra''スライダーを1.0にして、見栄えが良く不透明なハイライトにする。
デフォルトの青い背景はちょっとチーズ風に見える{?}。最終的な静止画をレンダリングする前に
''World''コンテキストで黒に変えよう。
http://www.pekaro.de/blender/water/water_tutorial3.jpg
Blender Tutorial: Water(その4/5)
■アニメーション■
この水をBlenderでアニメーションさせるのは全然難しくない。
2つの波のテクスチャチャネルに対しテクスチャ・オフセットのキーフレームを追加する。まずマウスカーソルをMaterial
ボタンウィンドウに置いて[I]キーを押す。ポップアップメニューが出たら''Ofs''を選択。それから
フレーム100に移動し、両方のテクスチャチャネルで''ofsZ''の値を0.6にしてから、さっきと同じ手順
で再びキーフレームを追加する。''ofsZ''の値は波の形に影響する。これにより、XY平面に
沿って置かれた水面のPlaneを、ずらす必要がない。値を大きくすると速い動きになる。
値を小さくすると遅い動きになる。
IPOウィンドウでIPOタイプを''Material''に変更する。2つの波のテクスチャ・チャネルに対するOfsの
IPOカーブを''Linear Interporation''に変更する。こうするとアニメーションの間中、一定の
速度で動く。{<Curve>-<Interpration Mode>-<Linear>メニューで設定}
テクスチャ・チャネルにはIPO typeフィールドの右にある番号からもアクセスできる。
フレーム1から100まで水のアニメーションをレンダリングし、''Play''ボタンで再生しよう。さあ見て!
我々はまだ波の横移動{? sideway shifting of the waves}を実現していない。
今こそこれでアニメーションを改良するときだ。 ''ofsZ''のそばに有る''ofsX''と''ofsY''を
最初に書いた観察結果に基づいてアニメーションさせよう。
私は川と湖のサンプルを作った。
Video: river_divx.avi (1.4 MB)
http://www.pekaro.de/blender/water/river_divx.avi Source: river.blend (72 KB)
http://www.pekaro.de/blender/water/river.blend Video:lake_divx.avi (1.3 MB)
http://www.pekaro.de/blender/water/lake_divx.avi Source: lake.blend (72 KB)
http://www.pekaro.de/blender/water/lake.blend
Blender Tutorial: Water(その5/5)
あなたがこのチュートリアルを楽しんでくれる事を願っている。このbasisを体験して欲しい。
There is always room for improvement. あなたのCGプロジェクトに幸あらん事を!
原文著者: Roy Schulz
原文更新日: 22.01.2005