Cyclesレンダラーで透明テクスチャを使う
使用ソフト:Blender 2.61RC1
バージョン2.61からBlenderに搭載される新たなレンダラーのCyclesでアルファ情報を持ったテクスチャを使う方法を説明します。黒色を持たないテクスチャが対象です。
以下の内容はアップグレードで意味を為さなくなる可能性があります。

バージョン2.61からBlenderに搭載される新たなレンダラーのCyclesでアルファ情報を持ったテクスチャを使う方法を説明します。黒色を持たないテクスチャが対象です。
以下の内容はアップグレードで意味を為さなくなる可能性があります。

Cycleレンダラーではマテリアル設定が従来のものとは大きく変わっています。複雑なマテリアルの場合はPropertiesウィンドウのMaterialタブから編集するよりNode Editorで編集する方が楽です。
オブジェクトを選択してNode Editorの上図赤四角部分をクリックするとマテリアルノードを表示できます。
マテリアルノードの内容はMaterialタブの内容と対応しています。片方を変えるともう片方も連動して変わります。
各種ノードはAddボタンから追加できます。
0.透明シェーダとアルファ画像
ためしに上図のように正方形のPlaneにTransparent(透明)シェーダを適用し、色としてアルファ情報を持った円形の画像を入力してみました。
黒とアルファ部分は黒く、白の部分は完全に透明に、色つき部分は半透明になっています。
このことから以下の二つが分かります。
a) アルファ(透明)部分は黒として処理される。
b) 透明シェーダでは画素の明るさで透明度が決まる。(白で完全透明)
a)の制約から1.の方法は画像内に黒と透明部分が共存している場合には使えません。
1.アルファ画像に黒色が無い場合

上図のようにノードをつなぎます。(黒部分まで透明になっていますが)透明になるべきところが透明になり、色つき部分は透けずにきちんと表示されているのが分かるかと思います。
方針としては(D)のノードで透明にしたい部分を抽出し、それをFactorとして(B)ディフューズシェーダと(C)透明シェーダを(A)ミックスします。
(D)のMathシェーダのLess thanは下Valueが上Valueより小さかった場合、1(白)をそうでない場合に0(黒)を出力します。
つまり、図の設定では入力画像の画素値が0.01よりも大きいとその画素を白に、小さいと黒にします(下図のような感じ)。
透明(黒)部分が白に、他の部分が黒になっています。

(A)ミックスシェーダではFactorの画素値が1(白)に近いほど下に接続されたシェーダを優先します。
今は上に(B)ディフューズシェーダ、下に(C)透明シェーダをつなげているので(D)シェーダで白にした部分だけ透明に表示されるわけです。
(C)透明シェーダは白色を入力値にしますが、デフォルトでは白に見えますが完全な白ではない入力値の場合があるので注意してください。
2.アルファ画像に黒色が有る場合
一枚の画像だけを使うのはあきらめて、別画像でアルファ部分とそうでない部分を黒白にしたマスク画像をつくって、ミックスシェーダのFactorに入力してください。
関連するタグ Blender 2.60 透明 アルファ テクスチャ Cycles オブジェクトを選択してNode Editorの上図赤四角部分をクリックするとマテリアルノードを表示できます。
マテリアルノードの内容はMaterialタブの内容と対応しています。片方を変えるともう片方も連動して変わります。
各種ノードはAddボタンから追加できます。
0.透明シェーダとアルファ画像
ためしに上図のように正方形のPlaneにTransparent(透明)シェーダを適用し、色としてアルファ情報を持った円形の画像を入力してみました。
黒とアルファ部分は黒く、白の部分は完全に透明に、色つき部分は半透明になっています。
このことから以下の二つが分かります。
a) アルファ(透明)部分は黒として処理される。
b) 透明シェーダでは画素の明るさで透明度が決まる。(白で完全透明)
a)の制約から1.の方法は画像内に黒と透明部分が共存している場合には使えません。
1.アルファ画像に黒色が無い場合

上図のようにノードをつなぎます。(黒部分まで透明になっていますが)透明になるべきところが透明になり、色つき部分は透けずにきちんと表示されているのが分かるかと思います。
方針としては(D)のノードで透明にしたい部分を抽出し、それをFactorとして(B)ディフューズシェーダと(C)透明シェーダを(A)ミックスします。
(D)のMathシェーダのLess thanは下Valueが上Valueより小さかった場合、1(白)をそうでない場合に0(黒)を出力します。
つまり、図の設定では入力画像の画素値が0.01よりも大きいとその画素を白に、小さいと黒にします(下図のような感じ)。
透明(黒)部分が白に、他の部分が黒になっています。

(A)ミックスシェーダではFactorの画素値が1(白)に近いほど下に接続されたシェーダを優先します。
今は上に(B)ディフューズシェーダ、下に(C)透明シェーダをつなげているので(D)シェーダで白にした部分だけ透明に表示されるわけです。
(C)透明シェーダは白色を入力値にしますが、デフォルトでは白に見えますが完全な白ではない入力値の場合があるので注意してください。
2.アルファ画像に黒色が有る場合
一枚の画像だけを使うのはあきらめて、別画像でアルファ部分とそうでない部分を黒白にしたマスク画像をつくって、ミックスシェーダのFactorに入力してください。
- 関連記事
-
- Cyclesレンダラーで透明テクスチャを使う (2011/12/12)
- Cycles バンプマップ (2011/12/26)
- 蝶チュートリアル1 ~透過画像テクスチャの利用~ (2010/12/02)