ページ 11

【DxLib使用】特定のモデルの陰影をなくす方法

Posted: 2012年12月08日(土) 13:23
by オルゲ
こんにちは。
ある球体モデルを使って表現したいエフェクトがあるのですが陰影が邪魔になってしまいます。
しかしライトをOFFにするとすべてのモデルに影がなくなってしまいます。
特定のモデルだけ陰影をなくす方法はないでしょうか。

こんな感じです↓
陰影がない方がいいですね。
画像

 タイトルと関係ありませんが、MV1SetOpacityRateを使っても透明にならず黒くなってしまう現象が起きています。透明になるモデルとならないモデルがあり困惑しています。
↑の画像の黄色い丸は途中まで透過出来ていたのですが途中から透明にならなくなってしまいました。。
他に透明なモデルもゲーム内に存在しそのモデルは透明になっているのに↑の奴だけ透明になってくれません。原因として思い当たる節があればご教授お願いいたします。

Re: 【DxLib使用】特定のモデルの陰影をなくす方法

Posted: 2012年12月08日(土) 14:12
by nil
>MV1SetOpacityRate
アルファの含まれている、モデルを描画するときは遠いものから順番に描画しなければなりません。

Re: 【DxLib使用】特定のモデルの陰影をなくす方法

Posted: 2012年12月08日(土) 14:33
by softya(ソフト屋)
モデルのカラーは次の式で算出されます。
ディフューズカラー =
  大域環境照明色 × マテリアルのアンビエントカラー +
  頂点とライト0との距離減衰係数 × ( ライト0と頂点法線との角度減衰係数 × マテリアルのディフューズカラー × ライト0のディフューズカラー + マテリアルのアンビエントカラー × ライト0のアンビエントカラー )
「アンビエントカラーについて」 引用元。
http://hpcgi2.nifty.com/natupaji/bbs/pa ... ew&no=1792

なので、マテリアルのディフューズカラーを0にするとライティングの角度の影響(陰影がなくなります)を受けなくなります。
後は大域環境照明色とアンビエントカラーなどを調整して下さい。

半透明に関しては、 涼雅さんの言われる通りでZソートが必要です。

Re: 【DxLib使用】特定のモデルの陰影をなくす方法

Posted: 2012年12月08日(土) 20:26
by オルゲ
こんばんわ。
 涼雅さんの言った通りレンダリングの順番を変えることで透明になりました。
途中まで透過出来ていたのは何だったんでしょう。疲れていたのかも知れません。

 ソフト屋さんご返答ありがとうございます。
陰影を消すことができました!またひとつ賢くなれました。

お二方、ご返信ありがとうございます!
解決させて頂きます!