【blender】ジオメトリノードを用いた法線スムース

最近のアプデで追加された法線設定ノードを使うことで、法線を簡単にスムースすることができる

あまりにも便利かつ簡単なので、ひょっとしたら既出かもしれないが、もしかしたら既出じゃないかもしれないので、一応共有してみる

最近のアプデで追加された↑のノードは、ジオメトリの法線を任意のものに設定できるというものだ

実のところ、太古の昔から、通常のベクトル属性にカスタムノーマルを格納することで、似たようなことはできた

が、その方法では、新たに属性を作らないといけないだけでなく、マテリアルノード側でも属性をシェーダーにつなぐ必要があったりと、若干の手間はかかっていた

それが、先日のアップデートにより、より直感的に、ジオメトリ自体の法線をいじることができるようになったというわけだ

効果を見てもらうのが早いと思う

左が法線を編集していない状態の影、右が法線を編集した状態の影だ

右側はジオメトリの形状がそのまま法線になっているため、細かい凹凸が影のラインに影響してしまい、余計な情報が乗ってしまっている感じがある

対して右側は、影のラインが柔らかくなっているのがわかると思う

ジオメトリの形状はいじらずに、法線のみいじることにより、こういった、疑似的に影をスムーズにすることができる

ビューポートで見ると↑のような感じだ

陰影の感じが左右で全然違うのがわかると思う

従来の方法だと、球体を用意して、転写して、というような工程が必要だったと思うが、ジオメトリノードで行うことにより、球体などのほかのオブジェクトを用意する必要もなく、また、動的に法線をスムースにすることができる

ジオメトリノードとしてプロパティから追加するだけで、オブジェクトの法線をスムースにすることができる

ブラーの回数を変更することで、どの程度法線をスムースにするのかを設定することもできる

中身はこんな感じで、意外とシンプルだ

入ってきたジオメトリの法線情報を、メッシュ法線設定ノードを用い、スムースし

たノーマルに置き換える

スムースする。というのは要するに、ブラーするということなので、属性ブラーノードで簡単に実現できる

そのため、法線転写のためのマスクなどの機能を追加しているので若干ノードが増えてしまっているが、本題の法線スムースの機能自体はノード3つくらい追加すれば実現できる

今回のノードの例では、一応、頂点カラーを用いて、法線スムースをする個所としない箇所、マスクを作れるようにした

これにより、例えば、キャラクターの素体の場合、顔だけは法線スムースさせたいけど、耳や鎖骨周りの細かい凹凸は影をつけたい、というような工夫が可能になる

この方法はとても直観的に法線をスムースできる一方で、やはり直感的なだけあって、細かな部分で課題が残る

例えば、今の状態だと目のくぼみのために変な方向を向いた法線が目の周りの法線に影響してしまったり、

あごのシャープな線までブラーがかかってしまって変な見た目になってしまう

ただ、例えば、部分的にシャープにするノードを追加したり、それを指定できるような属性の入力を追加したりすることでその辺は解決できるだろう

実際、法線スムースとテクスチャを応用して影を狙った形にするというのをちょっと前まで試してみていた

それに関してはまだ検討中という感じなので、次の自主制作にも向け、いろいろ考えてみたい

実際のところ、自分はキャラクターを作らない人間なので、これがどの程度使える技術なのかはよくわからない

ただ、少なくとも、樹木の表現や雲の表現などには十分使える気がする

この記事をツイートする

Youtubeやってます!

作品発表、メイキング、解説もやってます

よろしければ高評価、チャンネル登録、よろしくお願いします

お仕事募集中です

お問い合わせフォーム、またはX(Twitter)のダイレクトメッセージからお気軽にお問い合わせください。

お仕事以外のご相談、顔合わせ等のご連絡も大歓迎です。