元記事:
blender.org - Shading Nodes
シェーディングノード
Geometry ノード - 前・背面の出力
Front と Back のソケットから、Face の前面もしくは背面(オリジナルの Face Normal から決定)の見える方を描画するためのモノクロマスクを出力します。1.0で前面、0.0で背面です。モノクロマスクは各種のシェーディング効果で柔軟に使用できますが、紙切れの表裏などの、Material のブレンドに使用するのが一番便利です。
(
ページめくりアニメーションデモビデオ(185KB))
二つの Material のマスキング
Extended Material ノード
これは従来の Material ノードと同じですが、Input と Output ソケットが増えています。
ほとんどの場合、シェーダのデザイン中には、すべてのオプションが必要ではないと思います。この新しいノードは旧 Material ノードから分離されており、大量のパラメータのある巨大なノードを扱わなくてもいいようになっています。
Material ノードエディタの Invert ノード
Composite ノードエディタの Invert ノード
Invert ノード
Composite ノードでも利用できるこの Invert ノードは、従来の、入力を1.0で減算することで可能だった動作をシンプルにします。
この新しいノードには RGB チャネルや Alpha チャネル、そして両方を反転するオプションが付いています。これにより、単に Alpha チャネルを反転したい場合でも、多くのノード(Separate RGBA、Subtract、Set Alpha)を追加しなくてすみます。
以降 yamyam による記事です。原文にはありません。
Pyノード
Python スクリプトにより、ノードを自分で作成できる機能です。様々な演算を行いたい時、プログラミングに親しんでいる人なら、目的の結果を得られるようノードを構築するより効率が向上するでしょう。
実際の作成方法は以下のとおりです。
1) Blender の TextWindow に、ノードを処理するためのコードを書く。具体的には、Nodeライブラリをimportし、MyNodeクラスを定義して行います。もちろん外部エディタで書いて Load するか、TextWindow 上にコピペ([Ctrl]+[V]でペースト可)しても構いません。分かりやすい名前も付けておきましょう。
2) Material ノードを使用する準備を行う。
3) ノードエディタで、Add→Dynamic→Dynamic、もしくは先ほど作成したスクリプトの名前が表示されていればそちらから選択する。Dynamic を選んだ場合、ノード上からスクリプトを選択できます。
4) 問題がなければ、(コーディングされていれば)ソケットなどが表示され、通常のノード同様に操作できます。エラーの場合、ノード上にErrorと赤字で表示されます。コンソールウィンドウに詳細が表示されますので、該当部分を修正し、その後ノードエディタ上のノードの[Update]を押すと修正が反映されます。
テストコードBlenderDev-PyNodes-APIからの引用です。最後の行はいらないかもしれません。
from Blender import Node
from Blender.Noise import random
class RandomNode(Node.Scripted):
def __init__(self, sockets):
col = Node.Socket('Color', val = 4*[1.0])
sockets.input = [col]
sockets.output = [col]
def __call__(self):
self.output.Color = map(lambda x: x * random(), self.input.Color)
__node__ = RandomNode
リンク・
BlenderDev-PyNodes - BlenderWikiサンプル.blend ファイルがダウンロードできます。テストコードもありますが、こちらはインターフェイスが変更された所為で使用できなくなっているようです。
・
BlenderDev-PyNodes-API - BlenderWikiノードを作成するのに必要な主な API と、作成方法が記されています。
注意まだ結構不安定です。レンダリング後フリーズしたり、名前をつけなかった時に、Add→Dynamic→で空欄を選択したら強制終了したことがありました。保存はこまめにして下さい。
元記事:
blender.org - Shading Nodes