トップページ > 過去ログ > 記事閲覧
影に色がついてしまいます
名前:ジャム 日時: 2012/04/03 15:48

こんにちは。 早速ですが、質問です。 私は3Dの物体に影をつけたいと思い、下記のページの管理人さんのコードを参考にプログラムを組みました。 しかし、どういうことか影に物体そのものの色が付いてしまいました。 コードミスがあったかなと思いつつ、管理人さんのコードをまるまるコピーして自分の環境で実行したところ、こちらも影に色が付いてしまいました。 DXライブラリの仕様が変わったのでしょうか、それとも自分の環境のせいでしょうか。 是非、ご享受くださいますようよろしくお願いいたします。 環境:visual studio 2010 DXライブラリのバージョンは3.07dになります。 ttp://hpcgi2.nifty.com/natupaji/bbs/patio.cgi?mode=view&no=1759&p=2

Page: 1 |

Re: 影に色がついてしまいます ( No.1 )
名前:いっち 日時:2012/04/04 02:21

私の環境でも事象確認しました。 MV1SetDifColorScale が効いていない感じです。
Re: 影に色がついてしまいます ( No.2 )
名前:ジャム 日時:2012/04/07 10:38

いっちさん、回答ありがとうございます。 確かにMV1SetDifColorScaleが影の描写時に効いていないです。 加えて、MV1SetDifColorScaleで色のスケール値を元に戻すところをコメントアウトしてみると、影だけ色がついて本体部分は黒くなってしまいます。 MakeGraphやMakeScreenでは色のスケール値が保存できなくなってしまっているのでしょうか。
Re: 影に色がついてしまいます ( No.3 )
名前:管理人 日時:2012/04/09 02:41

こちら http://hpcgi2.nifty.com/natupaji/bbs/patio.cgi?mode=view&no=1759&p=2 の回答では影用の描画する際に SetUseLighting( FALSE ) としてライティングをオフにしていますが、 これを SetUseLighting( TRUE ) ; と、ライティングをオンにすれば真っ黒の影画像が作成されるようになります このスレッドのやりとりより後に、プログラマブルシェーダーが使えない環境で 使用される固定機能パイプラインではライトをオフにするとマテリアルの設定は一切無視されて 頂点カラーがそのまま使用されるということを知り、プログラマブルシェーダーが使用できる 環境でも同様の動作をするように( ライティングがオフの場合はマテリアルの設定を無視するように )処理を変更していました 真っ黒にしたはずのマテリアルの設定が無視されてテクスチャの色が表示される原因はこれです なので計算的には無駄なのですがマテリアルの設定を反映させるために SetUseLighting( TRUE ) で ライティングを行う設定で影用のモデル描画を行う必要があります > 加えて、MV1SetDifColorScaleで色のスケール値を元に戻すところをコメントアウトしてみると、影だけ色がついて本体部分は黒くなってしまいます。 影用画像の描画が終わった後は MV1SetXXXColorScale で変更したカラースケールは サンプル通り元に戻すようにしてください
Re: 影に色がついてしまいます ( No.4 )
名前:ジャム 日時:2012/04/09 18:40

なるほど。 原因の解説までご丁寧にありがとうございます。 問題なく影を表示することができました。

Page: 1 |