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

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
オルゲ

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

#1

投稿記事 by オルゲ » 13年前

こんにちは。
ある球体モデルを使って表現したいエフェクトがあるのですが陰影が邪魔になってしまいます。
しかしライトをOFFにするとすべてのモデルに影がなくなってしまいます。
特定のモデルだけ陰影をなくす方法はないでしょうか。

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

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

nil
記事: 428
登録日時: 14年前

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

#2

投稿記事 by nil » 13年前

>MV1SetOpacityRate
アルファの含まれている、モデルを描画するときは遠いものから順番に描画しなければなりません。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

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

#3

投稿記事 by softya(ソフト屋) » 13年前

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

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

半透明に関しては、 涼雅さんの言われる通りでZソートが必要です。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

オルゲ

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

#4

投稿記事 by オルゲ » 13年前

こんばんわ。
 涼雅さんの言った通りレンダリングの順番を変えることで透明になりました。
途中まで透過出来ていたのは何だったんでしょう。疲れていたのかも知れません。

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

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

閉鎖

“C言語何でも質問掲示板” へ戻る