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を読み込んだ場合の画面
(「メニュー/表示/描画」で、点、線を非描画にしています。)