ページ 11

3D時のライト設定について

Posted: 2012年2月03日(金) 18:09
by えん
3Dモデルを表示させる時のライトの設定についてなのですが、
標準のライトのみでは影が濃すぎる(光源と反対方向からモデルを見るとすごく暗い)ので
別のディレクショナルライトを標準ライトと逆の方向に設定したところ、明るくなりすぎてしまいました。
DxLibModelViewerのようにまんべんなくモデルを照らしたいのですが、そうしたい場合はカメラが回転するたびにライトの照射向きも回転させる、といった方法で正しいのでしょうか?

また、モデルをアニメ調(影をはっきり出させない・色がくっきりしてる感じ)に表示させたい場合にDXライブラリで設定するべきことはありますか?
それともモデル作成の時点でテクスチャにいろいろ工夫する、といった方法をとった方がよいのでしょうか?

この二点をどなたか回答していただけるとありがたいです。よろしくお願いいたします。

Re: 3D時のライト設定について

Posted: 2012年2月03日(金) 19:04
by ISLe
前者はアンビエントカラー、後者はディフューズカラーのパラメータを弄ってみると良いのではないでしょうか。

本格的なセルアニメ調にするのなら、プログラマブルシェーダーを駆使することになるでしょう。

Re: 3D時のライト設定について

Posted: 2012年2月03日(金) 20:30
by softya(ソフト屋)
ライトに関しては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

Re: 3D時のライト設定について

Posted: 2012年2月03日(金) 21:59
by えん
トゥーン調については紹介していただいたところなどでいろいろ調べてみます。ありがとうございました!

光をまんべんなくあてる方法ですが、
ご指摘の通り標準ライトのアンビエントカラーを色々いじってみましたが、思うようになりませんでした。
アンビエントカラーの値をSetLightAmbColor( GetColorF( a, a, a, 0.0f ) ) として、aを0から1の間で動かしてみましたが
光が当たっているところも陰で暗くなっているところもまとめて白っぽくor黒っぽくなってしまい、
カメラとキャラクターの延長線に光源があると最初と同じくキャラクターが灰色になってしまいました。

他にもデフューズカラーをすべて0にして同様にしてみたのですが、
こちらは影が出なくなった(光の当たる角度によって暗くなったりしなかった)のですが、bmp以外のテクスチャやDrawSphere3Dで描いた線などの色がすべて黒や灰色になってしまいました。

説明下手で申し訳ありませんが、こんな感じでどうしてもうまく表示できませんでした・・・

Re: 3D時のライト設定について

Posted: 2012年2月03日(金) 22:42
by ISLe
3Dモデルのアンビエントカラーとディフューズカラーを調整してみてください。

Re: 3D時のライト設定について

Posted: 2012年2月15日(水) 22:54
by えん
すごく遅くなりましたが、私の使っているテクスチャが原因で白く発光してしまっていたようで、ライトのアンビエントをいじれば大丈夫だそうです。
ご回答ありがとうございました!