Blender:シェーダー作り

Blenderでシェーダーの研究を行っていきます。

Blender:記事目次 - Mindの雑記ブログ

画像をクリックすると楽天に飛びます。

シェーダー

色々と実験をしてみて色々なことがわかった。

複数の光源が必要性

現実世界ならば真上から太陽の光が当たっていても他の物体の反射や周りこみ現象で上面だけでなく側面も明るくなるがブレンダーの場合は設定にもよるだろうがそれらの影響が少なく側面が暗めになる。これは周りとの対比でとてつもなくおかしい状態になる。真上から光当てているのに影みたいになってしまう。そのため複数の光源を配置して足りないところはポイントライトなどで適切に光を当てる必要がある。

それと反射が少ないので例えば赤い壁に囲まれていたら辺りが少し反射光によって赤くなるはずがならないので、光源の色も環境に合わせて複数用意したほうが良い。

複雑にする

ブロック塀などをきれいに並べてしまうと逆に不自然である。地面などもやはりテクスチャーだけでなくランダム選択で移動してデコボコにしたりディスプレイスなどをかけて歪ませたほうが良い。コケなども複数種類用意しないと不自然に見えてしまう。

シェーダー

テクスチャを貼るのはもちろんだが自然物は特にノイズテクスチャやマスグレイヴテクスチャなどでシミなどを作ったほうが良い。また地面との接地面は地面のテクスチャとうまく融合する必要がある。また頂点プロパティのダーティ頂点カラーなどを利用して汚すのも有効だと思う。

ダーティ頂点カラー

参考としてはこちらの動画がある。

www.youtube.com

まず頂点ペイントに入る。頂点ペイントになった段階で右側のオブジェクトデータプロパティのColor attributeの中に新しい設定が作成される。左上のペイントボタンからダーティー頂点カラーを選択する。この機能は影ができそうな場所に自動で色を塗ってくれる機能である。下図の図形の場合は中心に黒い色が塗られた。しかしこれだけではただ頂点ペイントというファイルができただけなので実際に色を塗っていく必要がある。

実際に色として反映させるには下図のようにColor Attributeノードを使用してそこに先ほどの設定ファイルを反映させる。それをカラーランプやミックスノードで調整し影を作成する。

接地面を地面のテクスチャと融合

こちらのサイトを参考にした。

【Blender】境界部分のテクスチャーを簡単に馴染ませる|yugaki

接地面と地面のテクスチャをうまく融合するにはambient occlusionというノードを使用する。これはダーティ頂点カラーと同じように影を作ってくれる機能である。そのため二つの機能を併用すると重なってしまう部分がある。使用感の大きな違いとしてはこちらの機能は他のオブジェクトも含めて影の位置を計算してくれることである。そのため地面との接点にできる影も計算してくれる。またリアルタイムに計算をしてくれるのでオブジェクトを動かしても追従してくれる。しかし見る角度によって影の付き方が変わる為、思ったように影ができたと思っても見る角度によっては違う時がある。

まずはambient occulusionノードとカラーランプを設定する。主にambient occulusion内の距離とカラーランプを調整して影を作る。この時地面を非表示にしていたり光が強く地面とオブジェクトを照らしていると影ができないので注意が必要。

次にシェーダーミックスのFacに繋ぎ二つのノードを結合させる。

まとめ

自然系はリアルに作ろうと思うとPCの性能が大きくかかわってくると思いました。