どうして透過病が起きる?
今回はどうして透過病になるの?って所を書いちゃいま~す。
まぁ、プロではないので間違っている可能性もなくはないのですが~
私の頭の中では今から書く内容の妄想になってます(;^_^A
では、透過病がそもそもなんで起こるか、なのですが~
ざっくりいうと~
透過していようが、していまいが、ゲーム内にDATAが存在していると全てが絵画処理の対象になるからなのです。
これにつきます、っがぁ、なんのこっちゃですよねぇ。
実は~
カメラとの距離の情報と、アルファチャンネルの情報とが色々交錯して透過病が起こっているようなのです。
まぁ、厳密にいうとフレーム位置による絵画順とかも絡んできますのでなかなか複雑にはなっていますが~、
その辺は置いといても大丈夫そうなので上記の2つを基軸に書いていこうかと。
では本題ですが、
実はカメラからの距離なのですが、Zバッファという情報が存在しているようです。
このZバッファの情報を元に絵画順が決められており、全てのオブジェクトがその都度Zバッファを割り当てられているようです。
一方でメッシュに透過テクスチャを貼りますと、貼ったメッシュにはアルファ情報が内包されます。
このアルファ情報とZバッファの情報の2つを同時に使うと透過病発生の元になる様ですねぇ。
通常、Zバッファでカメラから一番遠いと判断されたものから絵画されてるようで、
アルファ情報の持たないメッシュの場合は問題なく上書きされてどんどん絵が出来上がっていきます。
ですが、アルファ情報をもったメッシュを配置した場合、
アルファ情報をもったメッシュより先に絵画されたメッシュは当然上書きされ、
先に絵画されたものは消えてしまい、後ろの物が前の物の輪郭で切り取られたような絵になっちゃうのです。
その消え方が現在起きている透過病と酷似しており、おそらくこの状態が私たちの言う透過病と思われます。
ですが、プレクラの場合、透過していないメッシュに透過してあるメッシュを重ねても消える事は無いので、
その辺の処理はしっかりとされていると言うことなんでしょう。
つまりは、透過処理してあるメッシュはガラスの様な存在ではなく、
透過してある部分は「透過」と言う色が塗られているメッシュっと考えた方が良いようです。
なので、初めに述べました「透過していようが、いまいが・・・」のくだりが全てっていうことに~。
そして透過メッシュ同士の透過病だけが今も残っており、その対処法の一つが「SortingOrder」なのです。
しかしこれも完ぺきではなく、どうやらこのオーダーも順番が逆転してしまいますとZバッファを元に絵画されるようで、
先ほど述べたようなことになります。
これさえ回避出来れば完ぺきなのになぁ、実に惜しい・・・・
まぁ、簡単に言えば、透過は透明ではなく、透過と言う色情報みたいなものなので、しっかり上書きできちゃうって事でぇ、
透過病になっちゃうって事かなぁ・・・・
ここからはいつも通り、まだ検証もしていない事なのですが
実はもう一つ「SortingLayer」なるものも存在しておりまして、これがどういう物なのか今一まだ理解は出来ていませんが、
この「SortingLayer」なる物は、Zバッファを計算する際にレイヤー分けをして計算できる機能のようです。
SB3Uにもその記述と数値を打ち込む枠が存在してはいますが、果たしてプレクラで機能するかどうかは不明。
以上です、今回は画像も何もないのでとっても解りにくいかも~(;^_^A
最後まで読んでいただき有難う御座います(o_ _)o