)1.ベースOpenGLビュークラスを作るOpenGLの初期化処理と終了処理を行い、OpenGLを用いた描画処理の骨格を担う、ベースOpenGLビュークラスを作成します。)に関する処理を担うトラックOpenGLビュークラスを、ベースOpenGLビュークラスの派生クラスとして作成します。3.ピックOpenGLビュークラスを作るピッキング(要素選択)に関する処理を担うピックOpenGLビュークラスを、トラックOpenGLビュークラスの派生クラスとして作成します。4.モデルビューワを作る1.~3.で作成したクラスを用いてモデルビューワを作成します。5.モデルデータ構造を作る4.で作成したモデルビューワは、表示するモデルデータを描画関数内で定義していました。モデルデータ構造を作成し、4.で作成したモデルビューワを、モデルデータ構造データを描画するようにします。6.モデルデータファイル読み込みを作る5.で作成したモデルビューワは、表示するモデルデータをアプリケーション内で定義していました。モデルデータファイル読み込み処理を作成し、5.で作成したモデルビューワを、ファイルからモデルデータを読み込んで描画するようにします。(アスキー形式STLファイル読み込み処理を作成します。)7.描画速度の計測6.で作成したモデルビューワに、描画速度をステータスバーに表示する機能を付加します。8.描画の高速化(通常描画とピック描画の処理の分離)5.で作成したモデルビューワの描画処理は、通常描画とピック描画を同一の処理で行っていました。通常描画とピック描画とで処理を分けることにより通常描画の高速化を行います。9.描画の高速化(ディスプレイリストの利用)8.で作成したモデルビューワの通常描画処理は、再描画のたびに、すべての描画要素に対してOpenGLの処理を呼び出していました。ディスプレイリストを使用した描画高速化を行います。(ディスプレイリストを使用すると、一連のOpenGLのコマンドの呼び出しをひとまとめにしてメモリ上に蓄えます。再描画の際にはメモリ上に蓄えた一連のOpenGLのコマンドの呼び出しをひとまとめで処理します。一連のOpenGLのコマンドの呼び出しを順次処理する場合に比べて、短時間で処理が行われます。光源の効果を利用すると、描画されるモデルの面に陰影ができ、より立体感がでます。9.で作成したモデルビューワに光源の効果を付加します。11.マテリアルの効果の利用マテリアルの効果を利用すると、描画されるモデルに質感を与えることができます。10.で作成したモデルビューワにマテリアルの効果を付加します。12.「面はすべて同一のマテリアル設定」ではないモデルファイルの描画に対応する11.で作成したモデルビューワは、モデルファイルの面はすべて同一のマテリアル設定としていました。マテリアル設定が同一である面の集まりに対してグループというデータ構造を用意し、モデルはグループの集まりであるとするデータ構造を用意することで、「面はすべて同一のマテリアル設定」ではないモデルファイルの描画に対応します。ついでに、頂点法線ベクトルデータ、面法線ベクトルデータも保持するようにモデルデータ構造を変更します。13.「面はすべて同一のマテリアル設定」ではないモデルファイルの読み込みに対応する「面はすべて同一のマテリアル設定」ではないモデルファイルの読み込みに対応します。12.のファイル読み込み処理は、アスキー形式STLファイル読み込み処理でしたが、新たに、OBJファイル読み込み処理を追加し、読み込むファイルの拡張子により、アスキー形式STLファイル読み込み処理とOBJファイル読み込み処理のどちらかが呼び出されるように変更します。※STLファイルは、「面はすべて同一のマテリアル設定」であるモデルしか表現できませんが、OBJファイルは、「面はすべて同一のマテリアル設定」でないモデルも表現できます。OBJファイルは、頂点ごとに異なる法線ベクトルデータを持ったモデルも表現できます。14.頂点法線ベクトルデータを使用した描画13.で作成したモデルビューワは、光源の効果の利用に際して面法線ベクトルデータを使用した描画を行っています。面法線ベクトルデータを使用した描画の場合、面の折れ目が目立ちます。頂点法線ベクトルデータを使用した描画を行うと、面の折れを目を立たなくすることができます。15.Hira3D読み込みプラグインを利用したモデルファイルの読み込みに対応するHira3D読み込みプラグインを利用したモデルファイルの読み込みに対応します。Hira3D読み込みプラグインを利用したモデルファイルの読み込みに対応すると、読み込みプラグインが存在するモデルファイルフォーマットに関しては、自分でファイル読み込み処理を作る必要がなくなります。Hira3DViewerには、「.3ds」「.dxf」「.gts」「.obj」「.stl」読み込みプラグインが添付されています。)16.モデルファイル読み込みの進捗表示15.で作成したモデルビューワは、ファイルサイズの大きなモデルファイルを読み込んだ際など、ファイル読み込み開始からファイル読み込み完了まで時間を要する場合に、ソフトウェアが固まったかのような状態になります。モデルファイル読み込みの進捗表示ダイアログを表示し、ファイル読み込み開始からファイル読み込み完了まで時間を要する場合でも、ソフトウェアが固まったかのような状態にならないようにします。(続きの章のネタがないわけではないので続きの章ができる可能性は否定できませんが、ひとまず、「モデルビューワを作る」は16章で完結とします。MFCのDOC/VIEWアーキテクチャー上にOpenGL描画処理を実装する方法を丁寧に説明しています。絶版?「1.ベースOpenGLビュークラスを作る」は、本書籍のプログラムが元になっています。MFCプログラマー必読書です。MFCを使用してプログラミングをするならばこれを読まなくてははじまりません。WindowsプログラミングのイベントドリブンがどうMFCで隠蔽され、プログラマーは何をすべきかを正しく学ぶことができます。始めから終わりまで通して読むべき教科書本です。OpenGLを使用してプログラミングをするならばこれがなくてははじまりません。必要な時に必要な箇所を参照する辞書本です。