ON-BLOG

CGのこと、あれこれ書いてます。

アルファテクスチャをDepthで抜く方法

アルファテクスチャをDepthで抜く方法
ツイッタ―で色々とご教授いただいた、
Land_Yさん、m4g_halさん、TERA256さん、ymt3dさん、YoheiSNMRさん、tsu_guさん
まことにありがとうございました。
ここでお礼をお伝えいたします。


ではメモになります。

まずはDepthパスを作成(作成済みなら飛ばして下さい。)し、
カレントパスをDepthに設定して下さい。
設定はとりあえずデフォルトで。。


ここから大事です。 では始めに、
アルファで抜いているオブジェクトを1つ選択して下さい。
※同じマテリアルをアサインしている場合は
 アサインしてるオブジェクト分選択して下さい。
Renderメニュー(ショートカット「3」)→
パス→パーティション→新規パーティション

ここです↓
f:id:tommy_on:20130502015635j:plain

名前や設定は個々で設定して下さい。
下記の画像の通り、新しくパーティションができると思います。
※このウィンドウはエクスプローラー上で「Pキー」で
パスウィンドウに変わります。
次にそのパーティションを選択し、
コンスタントマテリアルをアサインして下さい↓
f:id:tommy_on:20130502015739j:plain
すると画像のところにマテリアルがパーティションに追加されます。


このマテリアルに対して処理を行なう事で、Depthでアルファ抜きができます。
では以下にその方法を記載します。
1.マテリアルを選択して、レンダーツリーを開く。

2.「コンスタントノード」、「Spriteノード」を追加して下さい。
  (まだ繋がなくて大丈夫です。)

3.次に「imageノード」を追加し、
そのオブジェクトに貼られているテクスチャを読み込んで下さい。
その時UVも設定してください。※既存と同じでOKです。 
で、あとは画像のように繋いで下さい。↓
f:id:tommy_on:20130502020750j:plain

この時spliteの設定を変更してます。
f:id:tommy_on:20130430175539j:plain
こうすると上記の画像みたく見えます。

5.最後に追加した方の「コンスタントノード」のRGBAを
全て「1.000」に変更します。


これで準備できました。
あとはテクスチャで抜いているオブジェクト分行います。
パーティションへのマテリアル設定はいちいち全部手でやる必要はないです。
画像みてもらうとわかりますが、
マテリアルのコピペでOKです。

あとはデフォルト状態だったDepth設定を変更します。
特に密度の値を設定を下げてもらうと、フリンジもなくなります。
※その分レンダー時間は増えます。
設定でこんな感じになります。
f:id:tommy_on:20130502021002j:plain

以上で設定が完了します。
ちなみにmip_card_opacityを使っても面白い事ができそうです。


いい勉強になりました。


では…