メッシュ(&シェーダー)の共有について
同じ形状のブロックでも色が違うと別メッシュになっているのは無駄が多いのでは?と思い、メッシュ (&シェーダー) の共有について調べました。
現状
メッシュを編集しても同じ色のオブジェクトにしか反映されません。
LDraw を直接取り込んでも Mecabricks を経由させても同じです。
Blender はメッシュの子としてマテリアルが紐づく仕様のため、オブジェクト毎にメッシュとマテリアルの組み合わせを変更できないようです。
シェーダー改造
Mecabricks のシェーダーを見てみると、色の異なるブロックでも Color 以外は同じ構成です。
この Color をオブジェクト毎に切り替えればシェーダーを共通化でき、メッシュを共有できそうです。
そこで Object Info ノードを追加して Color を繋ぎます。
この Object Info の Color の値は Object Properties の Viewport Display の中にある Color です。
これを元のシェーダーと同じ色に設定します。
メッシュ共有
改造したシェーダーが紐づいているメッシュを同じ形状のブロック全てで共有します。
メッシュの切り替えは Object Data Properties の一番上のボタンから行います。
Outliner で確認すると、下図のように別オブジェクトでも同じメッシュ、同じシェーダー (マテリアル) が適用されているのが分かります。
レンダリングすると、きちんと元と同じ色になりました。
※上段:元のシェーダー、下段:改造したシェーダー
このようにメッシュを共有しておけば、形状をブラッシュアップするのも楽ですし、メモリ消費も抑えられるはずです。微々たるものかもですが。
またシェーダーを共通化しておくと、エフェクト等で遊びやすくなります。これはまた別記事で紹介します。
おまけ
Solid Viewの表示設定について。
Solid View はデフォルトではマテリアルの色で表示されます。
( Material Properties の Viewport Display の Color )
そのため今回のようにマテリアル (シェーダー) を共通化すると見分けがつかなくなります。
そこで表示設定を変更します。
Viewport Shading 右端のボタンで設定を開き、Color を Object にします。
するとオブジェクトの色で表示されるようになります。
( Object Properties の Viewport Display の中の Color )
参考にしたチュートリアル動画です。
この記事が気に入ったらサポートをしてみませんか?