トップページ > 過去ログ > 記事閲覧
アルファ値が0か1かのみのテクスチャを持つ3Dモデルの描画
名前:子梨 日時: 2012/11/18 23:08

基本的なことだと思いますが、調べても どうにも分らなかったのでここで質問させていただきます。 3Dモデル描画機能についての質問です。 半透明要素を含むテクスチャを持つモデルなりビルボードを Zバッファを有効にして描画すると、半透明部分の後ろのモデルが 描画されない問題が起こりますが、仮に アルファチャンネルを持つけれど半透明要素を含まないテクスチャ (例えば、あるテクスチャをアルファチャンネルなしの"test.png"、 その不透明度を表す画像として、(0,0,0)と(255,255,255)の2色のみの"test_a.png"を使った場合) であっても、このような問題は起こるのでしょうか? 実際にこのようなテクスチャを作成して板ポリに張り付け、DXModelViewerで開いたところ、 テクスチャ「半透明要素」の項目が「あり」と表示されました。 この結果を見ると「完全な透明は半透明に含まれる」のでしょうか? もし「テクスチャの完全に透明な部分に関してはZバッファを書きこまない」 「(ニアレストネイバー法のように)テクスチャの透明部分と不透明部分の境界に半透明部分を作らない」 といったことができる方法があれば、教えていただけないでしょうか? DXライブラリの関数そのままでなく、プログラム上で こうコーディングすれば出来る、というようなものでも構いません。 何がしたいかというと、板ポリを組み合わせて樹木のモデルを作りたいと 思っているのですが、葉の後ろに葉が存在するときに 描画順序によっては後ろの葉が欠けてしまって困っています。

Page: 1 |

Re: アルファ値が0か1かのみのテクスチャを持つ3Dモデルの描画 ( No.1 )
名前:softya(ソフト屋) 日時:2012/11/19 01:03

過去ログによれば、完全に255と0だけならZソートは不要なようです。 「ポリゴンのα=0(抜き)のZ値について」 hpcgi2.nifty.com/natupaji/bbs/patio.cgi?mode=past&no=2183
Re: アルファ値が0か1かのみのテクスチャを持つ3Dモデルの描画 ( No.2 )
名前:子梨(解決) 日時:2012/11/19 20:41

まさに知りたかったあたりの過去ログでした! 少しは遡って探したつもりだったのですが…お手数をおかけしました。 せめて後々見た方のために補足しておくと、 アルファテストを行うための関数SetDrawAlphaTestは 最新版ではライブラリの更新などを行わなくても使用できました。
Re: アルファ値が0か1かのみのテクスチャを持つ3Dモデルの描画 ( No.3 )
名前:子梨(解決) 日時:2012/11/23 13:02

補足2。 自分が勝手に勘違いしていたのですが、上記のSetDrawAlphaTestは3Dモデルのテクスチャに限定されるものではなく、DrawGraphなど描画一般に適用されます。なので、例えば SetDrawAlphaTest(DX_CMP_GREATER, 128); と書くと2D画像も含めて不透明度128以下の半透明の描画が行われなくなるので、デフォルトに戻す場合は SetDrawAlphaTest(DX_CMP_NOTEQUAL, 0); 不透明度が0の時以外は描画する などの設定をする必要があります。

Page: 1 |