11.マテリアルの効果の利用



マテリアルの効果を利用すると、描画されるモデルに質感を与えることができます。
10.で作成したモデルビューワにマテリアルの効果を付加します。

実行形式ファイルダウンロード (ModelViewer8_exe.lzh)

ソースファイルダウンロード (ModelViewer8_src.lzh)

プロジェクトを開く

10.で作成したモデルビューワプロジェクトを開きます。

面に対してマテリアルの効果を有効にする

面に対してマテリアルの効果が有効になるように
CModelViewerView::RenderObjects関数
の実装を変更します。

面の描画処理の、
glEnable( GL_COLOR_MATERIAL );

glColor3f( 0.5, 0.5, 0 );
をコメントアウトし、
直後に、
float f4Ambient[4] = { 0.25f, 0.20725f, 0.20725f, 1.0f };
::glMaterialfv( GL_FRONT_AND_BACK, GL_AMBIENT, f4Ambient );
float f4Diffuse[4] = { 1.0f, 0.829f, 0.829f, 1.0f };
::glMaterialfv( GL_FRONT_AND_BACK, GL_DIFFUSE, f4Diffuse );
float f4Specular[4] = { 0.296648f, 0.296648f, 0.296648f, 1.0f };
::glMaterialfv( GL_FRONT_AND_BACK, GL_SPECULAR, f4Specular );
float fShininess = 0.088f;
::glMaterialf( GL_FRONT_AND_BACK, GL_SHININESS, fShininess );
を追加します。



ビルドし、エラー、警告がないことを確認します。

実行

実行し、sphere.stlファイルを読み込み、真珠のような質感でモデルが描画されているのを確認します。
(「メニュー/表示/描画」で、点、線を非描画にしています。)

実行結果


参考)10.で作成したモデルビューワで、sphere.stlを読み込んだ場合の画面
(「メニュー/表示/描画」で、点、線を非描画にしています。)