dskjal
広告
広告

Blender のシェーダでオブジェクトの基底ベクトルを取得する

カテゴリ:blender

matrix_world から取得する。拡縮に対応させるには各要素を拡縮の対応する要素で割る必要がある。

X軸の(x, y, z)は matrix_world[0][0]、matrix_world[1][0]、matrix_world[2][0] だ。

basis node
ノード
x x
X軸の x を取得するドライバー

Y軸の(x, y, z)は matrix_world[0][1]、matrix_world[1][1]、matrix_world[2][1] だ。

Z軸の(x, y, z)は matrix_world[0][2]、matrix_world[1][2]、matrix_world[2][2] だ。


拡縮対応版

拡縮の(x, y, z)はそれぞれ scale[0]、scale[1]、scale[2] で取得できる。

scale
拡縮に対応したノード

.blend ファイルダウンロード(2.80)

法線に直交する基底ベクトルを作成する

法線と(0, 0, 1)の外積で右側ベクトルを作成し、作成した右側ベクトルと法線とで残りの基底を作成する。法線が(0, 0, (-)1)の時は代わりに(0, 1, 0)を使う。以下のノードの Greater Than には 0.999999 を入力する。

gen from normal
法線から基底ベクトルを作成

.blend ファイルダウンロード(2.80)

関連記事

Blender 記事の目次


広告
広告

カテゴリ