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



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

解説

10. で作成したモデルビューアは、色設定をマテリアル設定として使用して光源の効果を利用した描画をおこなっていました。

色設定をマテリアル設定として使用した描画では、質感の表現力は十分ではありません。
マテリアル設定を使用した描画をおこないます。

プロジェクトを開く

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

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

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

面の描画処理の、
glEnable( GL_COLOR_MATERIAL );
glColor3f( 0.5f, 0.5f, 0.0f );
をコメントアウトし、
直後に、
float f4Ambient[] = { 0.25f, 0.20725f, 0.20725f, 1.0f };
float f4Diffuse[] = { 1.0f, 0.829f, 0.829f, 1.0f };
float f4Specular[] = { 0.296648f, 0.296648f, 0.296648f, 1.0f };
float fShininess = 0.088f;
glMaterialfv( GL_FRONT_AND_BACK, GL_AMBIENT, f4Ambient );
glMaterialfv( GL_FRONT_AND_BACK, GL_DIFFUSE, f4Diffuse );
glMaterialfv( GL_FRONT_AND_BACK, GL_SPECULAR, f4Specular );
glMaterialf( GL_FRONT_AND_BACK, GL_SHININESS, fShininess );
を追加します。



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

実行

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

sphere.stlファイルの読み込み
(「メニュー/表示/描画」で、点、線を非描画にしています。)


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

ダウンロード

ソースファイルダウンロード (ModelViewerOpenGLMFC2015_11_material.zip)

関連ページ

前項目:10.光源の効果の利用

次項目:12.「面はすべて同一のマテリアル設定」ではないモデルファイルの描画に対応する