Rosso Laboratory

Rosso Laboratory

主に鉄道模型シミュレーター(VRM)などの仮想鉄道アプリを扱うブログです。またHDR写真の記事も書いています。

Opacity


<左:? 右:正常>

どちらもPlaneに透過両面テクスチャーを貼って組んだだけの単純なモデル。しかし、左をよく見ると何だか気持ち悪くなりますよね。見えてはいけない部分が見えたり見えなかったり、「なんじゃ、こりゃ?」と思うこと、これで2度目。

ようやく理由が判りました。最初はポリゴンの表裏の問題かと思ったのですが、それだけでは無いんです。表裏の問題なら見えるべき面が全く見えず、見えぬべき面が全て見えるというもっとハッキリとした状態になります。

ココから先は実際にモデリングが出来る人向けなので、専門用語連発で行きます。

---*---*---*---

この症状はOpacityテクスチャーが8bitの時に発生します。

Targaは1チャンネルあたり8bitであり、これはアルファも同様です。それによって半透過が可能になる訳ですが、どうやらアルファの「中身」が1bitになっていない場合にはジオメトリ表示が逆転し、奥のモノが手前に見えるという問題が発生するようです(TS2009で解決しているかどうかは不明ですが、同じような状態のSSを何度か見ているので多分直ってはいないでしょう)

Targaは1bitとしては保存できず、8bitとして保存するしかないですが、中身は1bitという少々面倒な状態にしておかなければなりません(右側の正常な絵の方が1bit化したモノです)。なので、BMPの方が容量的にも小さく出来るし、間違いが無いと思いきや、gmaxはBMPを弾く仕様。TrainzではBMPをマスクに使っているものも多いのに「gmaxじゃ駄目なのかいな」という状況です。

(2010/2/23 訂正)
当時はgmaxでBMPが使えなかったが現在は使える模様。どうも当時のContentManagerがおかしかったみたい。


2-SIDEを使わず、フリップでやったらどうかな?と思いやってみましたが、

やはり変わらなかったです。なお、1枚目と2枚目で見え方が違うのは「1枚目が外面側に表裏、2枚目が外面側に全て表」とポリゴン面の向きを変えているせいで、表裏の違いが影響を与えているのでしょう。

もし半透過オブジェクトを使うならば、別オブジェクトの別テクスチャーで部分的に扱わないと駄目でしょうね。

---*---*---*---



このテストモデルは火の見櫓にしようかと思ったんですが、Hanshin9501氏が既に公開されているので、そのうち何かしらに使うことにしましょう。