3Dモデルを表示させる時のライトの設定についてなのですが、
標準のライトのみでは影が濃すぎる(光源と反対方向からモデルを見るとすごく暗い)ので
別のディレクショナルライトを標準ライトと逆の方向に設定したところ、明るくなりすぎてしまいました。
DxLibModelViewerのようにまんべんなくモデルを照らしたいのですが、そうしたい場合はカメラが回転するたびにライトの照射向きも回転させる、といった方法で正しいのでしょうか?
また、モデルをアニメ調(影をはっきり出させない・色がくっきりしてる感じ)に表示させたい場合にDXライブラリで設定するべきことはありますか?
それともモデル作成の時点でテクスチャにいろいろ工夫する、といった方法をとった方がよいのでしょうか?
この二点をどなたか回答していただけるとありがたいです。よろしくお願いいたします。
3D時のライト設定について
Re: 3D時のライト設定について
前者はアンビエントカラー、後者はディフューズカラーのパラメータを弄ってみると良いのではないでしょうか。
本格的なセルアニメ調にするのなら、プログラマブルシェーダーを駆使することになるでしょう。
本格的なセルアニメ調にするのなら、プログラマブルシェーダーを駆使することになるでしょう。
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: 3D時のライト設定について
ライトに関してはISLeさんの言われる通りで、アニメ調(トゥーンシェード)に関してはMMDモデルなどのトゥーンシェードには対応していますし、自分でトゥーンにも出来ます。
「DXライブラリ置き場 3D関係関数リファレンスページ」
http://homepage2.nifty.com/natupaji/DxL ... .html#R1N1
参考。
「PMDファイルを読み込むときのトゥーンレタリング表示」
http://hpcgi2.nifty.com/natupaji/bbs/pa ... ew&no=2518
「トゥーンと環境光について?」
http://hpcgi2.nifty.com/natupaji/bbs/pa ... st&no=1891
「トゥーンについて」
http://hpcgi2.nifty.com/natupaji/bbs/pa ... st&no=1676
「DXライブラリ置き場 3D関係関数リファレンスページ」
http://homepage2.nifty.com/natupaji/DxL ... .html#R1N1
参考。
「PMDファイルを読み込むときのトゥーンレタリング表示」
http://hpcgi2.nifty.com/natupaji/bbs/pa ... ew&no=2518
「トゥーンと環境光について?」
http://hpcgi2.nifty.com/natupaji/bbs/pa ... st&no=1891
「トゥーンについて」
http://hpcgi2.nifty.com/natupaji/bbs/pa ... st&no=1676
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
-
えん
Re: 3D時のライト設定について
トゥーン調については紹介していただいたところなどでいろいろ調べてみます。ありがとうございました!
光をまんべんなくあてる方法ですが、
ご指摘の通り標準ライトのアンビエントカラーを色々いじってみましたが、思うようになりませんでした。
アンビエントカラーの値をSetLightAmbColor( GetColorF( a, a, a, 0.0f ) ) として、aを0から1の間で動かしてみましたが
光が当たっているところも陰で暗くなっているところもまとめて白っぽくor黒っぽくなってしまい、
カメラとキャラクターの延長線に光源があると最初と同じくキャラクターが灰色になってしまいました。
他にもデフューズカラーをすべて0にして同様にしてみたのですが、
こちらは影が出なくなった(光の当たる角度によって暗くなったりしなかった)のですが、bmp以外のテクスチャやDrawSphere3Dで描いた線などの色がすべて黒や灰色になってしまいました。
説明下手で申し訳ありませんが、こんな感じでどうしてもうまく表示できませんでした・・・
光をまんべんなくあてる方法ですが、
ご指摘の通り標準ライトのアンビエントカラーを色々いじってみましたが、思うようになりませんでした。
アンビエントカラーの値をSetLightAmbColor( GetColorF( a, a, a, 0.0f ) ) として、aを0から1の間で動かしてみましたが
光が当たっているところも陰で暗くなっているところもまとめて白っぽくor黒っぽくなってしまい、
カメラとキャラクターの延長線に光源があると最初と同じくキャラクターが灰色になってしまいました。
他にもデフューズカラーをすべて0にして同様にしてみたのですが、
こちらは影が出なくなった(光の当たる角度によって暗くなったりしなかった)のですが、bmp以外のテクスチャやDrawSphere3Dで描いた線などの色がすべて黒や灰色になってしまいました。
説明下手で申し訳ありませんが、こんな感じでどうしてもうまく表示できませんでした・・・
Re: 3D時のライト設定について
3Dモデルのアンビエントカラーとディフューズカラーを調整してみてください。
-
えん
Re: 3D時のライト設定について
すごく遅くなりましたが、私の使っているテクスチャが原因で白く発光してしまっていたようで、ライトのアンビエントをいじれば大丈夫だそうです。
ご回答ありがとうございました!
ご回答ありがとうございました!