|
/*========================================================*/ <<<あゆしゃのC言語プログラミング>>> /*========================================================*/ 第624回 DX10 マテリアルの設定 発行 2005年12月16日(金曜日) 発行数 約2500 {magclick} /*========================================================*/ はじめに ( 決り文句 ) /*========================================================*/ ・このメールマガジンは、主にまぐまぐさんから発行しています。 ・ジャンルは、マルチメディアのプログラム、C言語です。 ・横60文字で作成し、インデントは大抵半角スペース4つです。 ・ここで扱うプログラムは、C言語と半光年以内のものです。 ・登録解除は、メルマガのホームページでお願いします。 ・過去ログはバックナンバー(下欄参照)を活用して下さい。 ・内容は私が感じたもので、最新の技術も、へたれもあります。 ・わかりやすさを優先させる為、たまに嘘があるかもしれません。 /*========================================================*/ ご挨拶 /*========================================================*/ こんにちは。あゆしゃです。 {magclick} /*========================================================*/ 今回のお題 << DX10 マテリアルの設定 >> /*========================================================*/ サンプルソースです。 http://ayusya.hp.infoseek.co.jp/Source/DX9Sample_051216.cpp その実行結果です。 http://ayusya.hp.infoseek.co.jp/Image/DirectXSample_051205.png /*========================================================*/ 今回は光源の次の、マテリアルの設定です。 // マテリアルを設定 ZeroMemory( &Material, sizeof( D3DMATERIAL9 ) ); DLM_SET_RGB( Material.Diffuse, 0.5f, 1.0f, 0.0f ); // 草原色 DLM_SET_RGB( Material.Ambient, 0.5f, 1.0f, 0.0f ); こんな感じですね。 /*========================================================*/ マテリアルの設定については、描画の段階で行うので、この段階 デバイスに登録することはありません。 単純に、マテリアルの情報を用意するだけです。 マテリアルとはポリゴンの材質です。 つまり、草原のような材質を持たせたポリゴンは、草原の様に 描画されます。 仮に金属のように設定すれば、金属のように描画されます。 具体的には、 ・ディフューズカラー ・アンビエントカラー の2つを設定します。 /*========================================================*/ ディフューズカラーは、光源の光に対してポリゴンが反射する 色の種類を指定します。 赤を反射するポリゴンは赤く、青を反射するポリゴンは青く 見えます。 これにより、ポリゴンの色を指定します。 /*========================================================*/ アンビエントカラーは、光源とは別にデバイスに直接指定した アンビエント光に対して、ポリゴンが反射する色の種類を指定し ます。 青くすれば青く、赤くすれば赤くなります。 指定する値は1.0fが100%という意味ではありません。 1.0を超える値を指定することもできます。 特にアンビエント光自体が弱い光なので、ディフューズを使用 しない場合、高い値を指定しないと予想以上に暗い色になります。 /*========================================================*/ マテリアルの構造体にはもう1つ、エミッシブカラーの設定が ありますが、これはポリゴン自体の純粋な色を設定します。 ディフューズカラーとアンビエントカラーを指定せずに、 このエミッシブカラーのみを指定すると、光源に左右されない、 淡色のポリゴンを描画します。 光源に左右されない物体、たとえば太陽などの光源そのものに 使用します。 // 太陽の色は純白 DLM_SET_RGB( Material.Emissive, 1.0f, 1.0f, 1.0f ); こんな感じですね。 /*========================================================*/ マテリアルの構造体にはもう2つ、スペキュラーカラーとその 強さを設定する項目がありますが、 これは「グローシェーディング」という、丸っこいポリゴンを 描画するときに使うもので、ハイライトを設定します。 金属など、ハイライトが描画されるものに使用しますが、 今回はまったく使いません。 {magclick} /*========================================================*/ さいごに /*========================================================*/ 今後の予定です。 12月16日金曜日 第624回 DX10 マテリアルの設定 済 12月19日月曜日 第625回 DX11 メッシュの設定 12月21日水曜日 第626回 DX12 描画処理 12月23日金曜日 第627回 2005年総集編 1月 9日月曜日 第628回 2006年 1月11日水曜日 第629回 DX13 マップを描画 {magclick} /*========================================================*/ 次回予告 /*========================================================*/ 次回は12月19日(月曜日)に、第625回をお送りします。 お題は「DX11 メッシュの設定」 一番大変な項目に入ります。 お楽しみに! /*========================================================*/ 最後の決り文句 /*========================================================*/ このメールマガジンは、まぐまぐさんから発行しています。 このメールマガジンを解除したい場合は、まぐまぐさんをご利用 ください。このメルマガのまぐまぐアイディーは最後にあります。 このメールマガジンには広告が挿入されていますか? このメールマガジンの内容に文面の引用はありませんか? めーらっくすの場合はめーらっくすの利用方に従ってください。 このメールマガジンの内容の、転用、流用、宣伝、リンク、 外気センサーが1℃を記録 なんて大歓迎です。 {magclick} /*========================================================*/ /*========================================================*/ 発行者 あゆしゃ ホームページ::あゆしゃの世界 http://ayusya.hp.infoseek.co.jp/ ご意見・ご感想・ご質問メール mailto:ayusya@flamenco.plala.or.jp まぐまぐ::アイディー 0000020674 まぐまぐ::登録と解除 http://www.mag2.com/m/0000020674.htm まぐまぐ::バックナンバー http://jazz.tegami.com/backnumber/frame.cgi?id=0000020674 めーらっくす::アイディー MM3E1AEE285AB4F めーらっくす::登録と解除 http://www.mailux.com/mm_dsp.php?mm_id=MM3E1AEE285AB4F めーらっくす::バックナンバー★最近のものならこちらが便利★ http://www.mailux.com/mm_bno_list.php?mm_id=MM3E1AEE285AB4F |