αテストについて
マニュアル
によると、
テクスチャのα値が 0 であると描画されません
とあります。
テクスチャで完全に透明な部分は「無い」ものと一緒であり、
テクスチャの裏が透けたりすることに悩まずにすむというわけですね。
テクスチャの裏が透けたりすることに悩まずにすむというわけですね。
勘違いしやすい事
シャドウ機能との親和性が良くない
RSIIのシャドウはポリゴンを元に生成しているので、
αテストを設定した面から落ちるシャドウは、テクスチャの形ではなくマッピングしているポリゴンの形となります。
αテストを設定した面から落ちるシャドウは、テクスチャの形ではなくマッピングしているポリゴンの形となります。
またαテストを使用する材質には、
NoCastShadow
などのプロパティを設定しないと、
影を受けるときに不具合が発生します。
影を受けるときに不具合が発生します。
つまりαテストを使用するには
- NoCastShadow で影を落とさないようにする
- NoReceiveShadow で影を受けないようにする
- NoShadow で影に関わらないようにする
のいずれかの対策が必要になります。
影を落とさないようにNoCastShadowの設定にするのが無難ですが、
どうしてもシャドウが必要ならば別な対策が必要になります。
どうしてもシャドウが必要ならば別な対策が必要になります。
例えば以下のような方法が考えられます。
- モデルを変える
- 別途αテストを使わないモデルを作成
- "_SHADOW" スイッチにより切り替え
- ※別モデルのテクスチャを作成する場合は作業が増えることになります
- 影専用ポリゴンの作成
- 材質が透明な(α値=0)のモデルを作成
- そのモデルにNoReceiveShadowを設定して一緒に定義する
- ※ポリゴンだけサクっとモデリングすれば可能ですが表示ポリゴンが増えます
α値が0じゃ無いと?
恥ずかしながら最近まで理解していなかったのですがαテストでは、
α=0でない部分は普通の透過テクスチャと同等の扱いになる
つまりαテストに用いるテクスチャには
完全に透明か、完全に不透明
な部分以外あってはいけないということです。
半端なα値が含まれていれば、↓のようになるのですぐにわかりますw
完全に透明か、完全に不透明
な部分以外あってはいけないということです。
半端なα値が含まれていれば、↓のようになるのですぐにわかりますw
添付ファイル