グラフィックス書籍一覧7
| 一覧6へ | 書籍一覧目次へ | トップページへ | 一覧8へ |
|
OpenGL
リアルタイム3Dプログラミング ISBN4-87966-973-3 秀和システム 新藤義昭・阿部正平 著 CD-ROM1枚付 B5変 608ページ 本体価格6,800円 2000/06発売 [内容] 本書は、仮想3D空間を支えるCGの標準技術「OpenGL」による、3Dオブジェクト、3D 空間開発のための基礎理論とプログラミングの実際を、豊富な図版と共に詳細解説したものです。また、添付のCD-ROMにはOpenGLの限界を補完し、開発環境を一新する3Dオブジェクト開発ツールと3D動画を作成するバーチャルエンジン、さらに樹木や動物などのサンプルオブジェクト数百点を添付しました。本書はOpenGL開発キットとしても優れています。 [目次] はじめに 本書の構成 本書を読むにあたって 添付CD-ROMの内容と動作条件 glTKの例題プログラム glPIASの例題プログラム 本書および添付CD-ROM収録ソフトウェアについて 第1部 OpenGLレンダリング技法第1章OpenGLプログラミング入門(glTKフレームワーク)1.1最小のglTKプログラム(glTK010) 1.1.1プログラムのエントリポイント 1.1.2フレームバッファの初期化や動作モードの設定 1.1.3投影面の設定と視野錐台の設定 1.1.4点、直線、多角形の描画 1.1.5終了処理 1.2glTKフレームワークの構造 1.3OpenGLの初期化 1.4glTKの機能をMFC(Microsoft Foundation Class)で用いる方法 1.5glTKのAPI関数第2章モデリング変換と投影変換 2.1モデリング座標系と視界座標系 2.2行列の乗算の利用 2.3アフィン変換(単位行列、並行移動、拡大縮小、回転) 2.3.1何も変化しない写像行列(単位行列) 2.3.2並行移動を表す写像行列 2.3.3拡大縮小を表す写像行列 2.3.4回転を表す写像行列 2.4行列乗算の結合律の利用 2.5行列乗算の演算順序による影響 2.6マウス操作で形状モデルの位置や姿勢を変える(glTK020) 2.7視野錐台(ビューボリューム)を変化させる(glTK021) 2.8並行投影法による描画(glTK022) 2.9ディスプレイリストの利用(glTK023) 2.9.1glTK_Init()関数でのディスプレイリストの登録 2.9.2glTK_Draw()関数でのディスプレイリストの再生 2.9.3glTK_Close()関数でのディスプレイリストの削除 2.10マウス操作でカメラ位置や姿勢を変える(glTK024) 2.10.1glTK_Init()関数での初期化 2.10.2glTK_Close()関数での終了処理 2.10.3glTK_Draw()関数での描画 2.10.4glTK_MenuHandler()関数での視点の変更 2.10.5マウスの移動方向の修正(glTK_MOUSEMOVE()の修正) 付録2次元の回転変換行列の証明第3章多角形と陰面消去アルゴリズム 3.1OpenGLの多角形プリミティブ(glTK030) 3.1.1多角形プリミティブの種類 3.1.2頂点座標の並び方 3.2多角形と法線ベクトル 3.2.1凸多角形と凹多角形 3.2.2空間的にねじれた多角形 3.2.3多角形の表と裏の定義(glTK031) 3.2.4多角形の塗りつぶしパターン(glTK032) 3.2.5多角形の法線ベクトルの定義 3.2.6法線ベクトルの算出法1(ベクトルの外積による方法) 3.2.7法線ベクトルの算出法2(Newellの方法) 3.2.8背面消去アルゴリズム 3.3陰面消去アルゴリズム 3.3.1ジオメトリ処理とラスタ処理 3.3.2デプスソート法(ペインターズ・アルゴリズム) 3.3.3空間バイナリ分割法(平面の方程式の利用) 多角形が交差しているかどうかの判定法 3.3.4多角形のラスタ処理 三角形のラスタライズ法 3.3.5デプスバッファ法(Zバッファ法) 3.3.6OpenGLのデプスバッファ法のコントロール デプスバッファの奥行き値の精度/デプスバッファのクリア/ デプスバッファの検査の計算方法 3.4基本的な3次元立体のモデリング 3.4.1頂点座標配列を用いた描画法(glTK033) OpenGL1.1から導入された新機能 3.4.2三角関数を用いて球を描く(glTK034) 3.4.3多面体のよって球を近似する(glTK035) 3.4.4gluを利用して2次元曲面立体を作る(glTK036) 球、円柱、円錐、円板を作る第4章照光処理と曲面のシェーディング 4.1輝度計算アルゴリズム 4.1.1OpenGLが用いている輝度計算モデル 4.1.2放射光の求め方 4.1.3環境光の求め方 4.1.4拡散反射光成分の求め方 4.1.5鏡面反射光成分の求め方 4.2光源の種類と材質情報 4.3面の法線ベクトルの算出法 4.3.1物体が2次の関数曲面の場合 4.3.2物体の形状が関数で記述できないとき 4.3.3glu立体プリミティブ関数を用いた場合 4.4曲面のシェーディング 4.4.1フラットシェーディング 4.4.2スムースシェーディング法1(グーローシェーディング) 4.4.3スムースシェーディング法2(フォンシェーディング) 4.5状態変数システムとスタック操作 4.6球をシェーディングする(glTK040) 4.6.1曲面の法線ベクトルの設定 4.6.2並行光源の設定 4.6.3材質情報の設定 4.7立方体をシェーディングする(glTK041) 4.8gluの基本立体をシェーディングする(glTK042) 4.9動く点光源(スポットライト)の作り方(glTK043) glTK_Draw()の詳細 4.10写実性を追及する輝度計算アルゴリズム 4.10.1レイ・トレーシング法(光線追跡法) 4.10.2ラジオシティ法 ラジオシティ法の2つのステップ第5章映像特殊効果 より自然な映像を目指して 5.1アルファブレンディングによる半透明表示1(glTK050) 5.2複数の半透明体が混在する場合のアルファブレンディング(glTK051) 5.3アルファブレンディングによるフォグ効果(glTK052,glTK053) 5.4アキュムレーションバッファによる画像演算 カラーバッファとアキュムレーションバッファ 5.5シーンアンチエイリアシング1(glTK054) 5.6シーンアンチエイリアシング2(効果的な利用法-glTK055) 視野錐台AccumPerspectiveを作る/glTK_Draw()の内容/glTK_Draw AntiAliasの内容 5.7アキュムレーション演算によるレンズフォーカス描画(被写界震度) 付録glappsub.cppのプログラムリスト第6章自由曲面のモデリング 6.1ベジエ補間法による自由曲線(glTK060) 6.2ベジエ補間法によるベジエ曲面(glTK061) 6.3ベジエ曲面のシェーディング(glTK062) 第2部 3D形状モデルのモデリング技法第1章PiasArtist2000 3Dモデリングの概要1.13Dモデル制作の手順243第2章PiasArtist2000の基本操作 2.1PiasArtist2000のウィンドウメニュー一覧 ブラウザモードとオーサリングモード 2.1.1ファイル(F)メニュー 画像の保存と下絵差し込み 2.1.2編集(E)メニュー 2.1.3表示(V)メニュー ステイタスバーへの表示スイッチがONの場合の画面表示例/ ワイアフレーム表示の利用 2.1.4動作選択(M)メニュー 2.1.5ブラウザ設定(B)メニュー ビューア制御 2.1.6空間設定(V)メニュー 2.1.7マウス操作(M)メニュー マウス感度の設定 2.1.8描画速度(R)メニュー 形状簡略化の描画相違例 2.1.9連続動作(A)メニュー 2.1.10ツールバー 2.23Dオブジェクトのプリミティブ 2.3マウス、キーボードの基本操作 2.3.1オブジェクトの選択 2.3.2オブジェクトの編集 並行移動/回転/3軸全体に作用する拡大縮小/軸を選んだ拡大縮小/ 材質編集(色成分の設定)/ダイアログボックスによる材質編集操作 2.3.3オブジェクトのプロパティ設定呼び出し 2.3.4オブジェクトの複写、削除 子犬モデルの複写(複数のオブジェクト選択の例)/並木(1本の木の複写例) 2.4仮想空間の設定 2.4.1視野錐台の設定 2.4.2光源の設定 2.4.3簡略化クラス 2.4.4LODの設定(形状精度の設定) 2.4.5座標平面の設定と表示選択 座標平面の設定/座標平面の表示 2.4.6投影面の設定と表示選択 オブジェクトの投影面の表示/オブジェクトの投影図の設定 2.4.7プリミティブのプロパティ設定第3章3Dプリミティブのモデリング 3.13Dオブジェクトモデリングの手順 3.1.1プリミティブの選択 3.1.2オブジェクトの形状編集(移動、拡大縮小、回転など) 3.1.3オブジェクトの材質編集(色成分設定など) 3.2球 3軸全体の等サイズ拡大、縮小/個々の軸ごとにサイズ拡大、縮小/ 球の半径サイズ指定によるオブジェクト生成 3.3半球(上半球、下半球) 3.3.1切断円が閉じている半球の例 3.3.2切断円が空いている半球の例(上半球の場合) 3.4円錐、四角錐、三角錐 3.5円柱、円錐柱 3.5.1車輪の例 3.6立方体、直方体、台形、星型六面体 3.7平面、平面円 3.8テキストパネル第4章PiasArtist2000モデリング操作手順 4.1子犬を作る 4.1.1準備作業 モデル格納フォルダの作成/素材の準備 4.1.2オーサリングモードで新規作成を選択 4.1.3作成する仮想空間の設定 4.1.4テンプレートの設定 4.1.5パーツオブジェクトの作成(形状制作〜材質情報の作成) 胴体の作成/足の作成/尻尾の作成(子犬の完成) 4.1.6パーツのシーングラフの設定 4.1.7オブジェクトの保存 4.2ふわふわの子犬に変身(テクスチャマッピング) 4.2.1子犬の毛の写真画像を用意 4.2.2画像ファイルの登録 テクスチャイメージの登録/透過イメージの登録 4.2.3テクスチャの貼り付け(オブジェクトの材質プロパティを変更) 4.2.4輪郭効果(オブジェクトの材質プロパティを変更)第5章モデリング操作アラカルト 5.1テクスクチャマッピング 5.1.1和室の内装 5.1.2建物(アパート)の部屋 5.1.3コーヒー缶のラベル 5.2ビルボード 5.2.1透過イメージ用のテクスチャ画像の用意 5.2.2木のサイズの直方体を作成 5.2.3画像ファイルの登録(透過イメージとして登録) 5.2.4直方体オブジェクトのプロパティ設定 5.2.5木のビルボード完成 5.3半透明オブジェクト 5.3.1半透明のプロパティ設定 5.3.2貼付イメージの登録 5.3.3テクスチャマップの設定 5.4オブジェクト連結動作の検証 5.4.1連結動作の確認 5.4.2連結動作の確認(連結が正しくない場合) 5.4.3オブジェクト名のスペルチェック 5.5ブラウザ・モード 5.5.1オブジェクトを連続して動かす 並行移動/回転 5.5.2描画速度に応じてオブジェクトを動かす 形状簡略化レベルに対応した表示/描画速度の数値指定による表示 5.5.3シーングラフを動かす 第3部 リアルタイム・アニメーション技法第1章サイバースペースハンドルとPiasScript 1.1PiasScriptファイルの読み込みと描画(glPIAS010) 1.1.1テクスチャ画像ファイルのパス 1.1.2PiasScriptファイルの閲覧 1.2ドラゴンと背景となる城を別々に読み込む(glPIAS011) 1.3カメラワークのプログラミング(glPIAS012) 1.4アクタを動かす・・・・・ドラゴンの移動(glPIAS013) 1.4.1サイバースペースの回転API関数 1.4.2サイバースペースの並行移動API関数 1.5アクタの動きとカメラワークを同時に (イベント駆動プログラミング)(glPIAS014) 1.6視界座標系の点光源で統一した照明を行う(glPIAS015)第2章シーングラフによる形状オブジェクトの動作(運動学モデル) 2.1シーングラフのメカニズム 2.2ドラゴンが手足を振ってアクションする(glPIAS020) 2.3ドラゴンが手足を振って城の前庭を走り回る(glPIAS021)第3章透過マッピングの応用(ビルボードと3D文字) 3.1ビルボードで森を作る(glPIAS030) 3.2ドラゴンが城の前庭を走り回る・・・・・・のビルボード版(glPIAS031) 3.3テキストパネルと3D文字(glPIAS032)第4章オブジェクトの生成と削除(API関数によるオブジェクトの作成と削除) 4.1球を使って泡をシミュレーションする(glPIAS040) 4.2サイバースペースハンドル中にオブジェクトを作る(glPIAS041) 曲面オブジェクト/多面体オブジェクト/平面オブジェクト第5章サイバースペースハンドルを用いた特殊効果 5.1サイバースペースハンドルを用いたアルファブレンディング(glPIAS050) 5.2サイバースペースハンドルを用いたアンチエイリアシング(glPIAS051) 5.3サイバースペースハンドルを用いたレンズフォーカス(glPIAS052) 5.4サイバースペースハンドルを用いたモーションブラー(glPIAS053) 第6章オブジェクトのピックとモーションキャプチャ6.1マウスのクリックでオブジェクトをピック(選択)する(glPIAS060) 6.2マウスでオブジェクトを選択して自由に動かす(glPIAS061) 6.3モーション・キャプチャによる モーションキャプチャデータの保存(glPIAS062) 6.3.1動力学モデル 6.3.2逆運動学モデル(インバース・キネマティクス) 6.3.3モーションキャプチャ コマ撮り(フレームキャプチャ)とキーフレーム補間法/ チャネル定義によるモーションキャプチャ/モーションキャプチャスタジオ/ データスーツとデータグローブ/モーションキャプチャデータの保存(glPIA062) 6.4キーフレーム補間法による滑らかなアクションプレイ(glPIAS063) 付録1PiasGL4 API関数リファレンス 付録2PiasScript構文規則 構文規則/予約語/PiasScriptリファレンス 第4部 3D仮想動物園の利用法第1章3D仮想動物園の使い方陸上で生活する哺乳類/海辺や水際に住む動物/鳥類の仲間/ 海に住む仲間/怪獣の仲間/擬人化した動物 第2章シーングラフ・ビューアを作る(glTKVIEW)C++言語とMFCによるSDIプログラミング例題 添付CD-ROMの内容と使い方 (第1部)OpenGLのレンダリング技法 (第2部)3D形状のモデリング技法 (第3部)リアルタイムアニメーション技法 (第4部)3D仮想動物園の使い方 glTKSDK PiasSDK4 PiasArtist2000 索引
|