コンピューターグラフィックスS

Similar documents
コンピューターグラフィックスS

コンピュータグラフィックス特論Ⅱ

コンピュータグラフィックス特論Ⅱ

免許法認定公開講座: コンピュータグラフィックス

コンピュータグラフィックスS 演習資料

コンピュータグラフィックス第8回

コンピュータグラフィックス特論Ⅱ

補足 中学で学習したフレミング左手の法則 ( 電 磁 力 ) と関連付けると覚えやすい 電磁力は電流と磁界の外積で表される 力 F 磁 電磁力 F li 右ねじの回転の向き電 li ( l は導線の長さ ) 補足 有向線分とベクトル有向線分 : 矢印の位

PowerPoint Presentation

CG

コンピューターグラフィックスS

Microsoft Word - thesis.doc

コンピューターグラフィックスS

Microsoft PowerPoint - [150421] CMP実習Ⅰ(2015) 橋本 CG編 第1回 幾何変換.pptx

演算増幅器

謗域・ュ逕ィppt

vecrot

コンピュータグラフィックス第6回

コンピュータグラフィックスS 演習資料

Microsoft PowerPoint - 9.pptx

Microsoft PowerPoint - 9.pptx

Microsoft PowerPoint - info_eng3_05ppt.pptx

XAML Do-It-Yourself シリーズ 第 12 回 3D グラフィックス -1-

Microsoft PowerPoint - ロボットの運動学forUpload'C5Q [互換モード]

コンピュータグラフィックスS

Microsoft PowerPoint - 10.pptx

Microsoft PowerPoint - 3D.ppt

スライド 1

スライド 1

謗域・ュ逕ィppt

pp2018-pp9base

一方, 物体色 ( 色や光を反射して色刺激を起こすもの, つまり印刷物 ) の表現には, 減法混色 (CMY) が用いられる CMY の C はシアン (Cyn),M はマゼンタ (Mgent),Y はイエロー (Yellow) であり, これらは色の 3 原色と呼ばれるものである なお, 同じシア

Microsoft PowerPoint - Robotics_13_review_1short.pptx

CG

ARToolKit プログラムの仕組み 1: ヘッダファイルのインクルード 2: Main 関数 3: Main Loop 関数 4: マウス入力処理関数 5: キーボード入力処理関数 6: 終了処理関数 3: Main Loop 関数 1カメラ画像の取得 2カメラ画像の描画 3マーカの検出と認識

PowerPoint プレゼンテーション

CG

Microsoft PowerPoint - 04.pptx

相関係数と偏差ベクトル

謗域・ュ逕ィppt

情報システム設計論II ユーザインタフェース(1)

問 1 図 1 の図形を作るプログラムを作成せよ 但し ウィンドウの大きさは と し 座標の関係は図 2 に示すものとする 図 1 作成する図形 原点 (0,0) (280,0) (80,0) (180,0) (260,0) (380,0) (0,160) 図 2 座標関係 問 2

Microsoft Word - CGP_GM

Microsoft PowerPoint - 10.pptx

データベースS

座標系.rtf

スライド タイトルなし

相対性理論入門 1 Lorentz 変換 光がどのような座標系に対しても同一の速さ c で進むことから導かれる座標の一次変換である. (x, y, z, t ) の座標系が (x, y, z, t) の座標系に対して x 軸方向に w の速度で進んでいる場合, 座標系が一次変換で関係づけられるとする

モデリングとは

座標変換におけるテンソル成分の変換行列

Microsoft Word - povray.docx

スライド 1

コンピュータグラフィックス基礎              No

Microsoft PowerPoint - CV07.ppt [互換モード]

2 図微小要素の流体の流入出 方向の断面の流体の流入出の収支断面 Ⅰ から微小要素に流入出する流体の流量 Q 断面 Ⅰ は 以下のように定式化できる Q 断面 Ⅰ 流量 密度 流速 断面 Ⅰ の面積 微小要素の断面 Ⅰ から だけ移動した断面 Ⅱ を流入出する流体の流量 Q 断面 Ⅱ は以下のように

講習No.9

Microsoft PowerPoint - 三次元座標測定 ppt

ベクトルの基礎.rtf

例 e 指数関数的に減衰する信号を h( a < + a a すると, それらのラプラス変換は, H ( ) { e } e インパルス応答が h( a < ( ただし a >, U( ) { } となるシステムにステップ信号 ( y( のラプラス変換 Y () は, Y ( ) H ( ) X (

ライティングの基本要素ライト ( 光源 ) の位置や種類 強さを決め モデルやシーンの見せ方を決めることをライティングとよぶ また モデルの表面での光の反射の度合いを調節することで ライティングの効果を変化させることができる 今回は ライティングの基本的な要素を解説し SketchUp のライティン

0 21 カラー反射率 slope aspect 図 2.9: 復元結果例 2.4 画像生成技術としての計算フォトグラフィ 3 次元情報を復元することにより, 画像生成 ( レンダリング ) に応用することが可能である. 近年, コンピュータにより, カメラで直接得られない画像を生成する技術分野が生

Chap2.key

1222-A Transform Function Order (trsn

技術者のための構造力学 2014/06/11 1. はじめに 資料 2 節点座標系による傾斜支持節点節点の処理 三好崇夫加藤久人 従来, マトリックス変位法に基づく骨組解析を紹介する教科書においては, 全体座標系に対して傾斜 した斜面上の支持条件を考慮する処理方法として, 一旦, 傾斜支持を無視した

複素数平面への誘い

スライド 1

多次元レーザー分光で探る凝縮分子系の超高速動力学

数学 ⅡB < 公理 > 公理を論拠に定義を用いて定理を証明する 1 大小関係の公理 順序 (a > b, a = b, a > b 1 つ成立 a > b, b > c a > c 成立 ) 順序と演算 (a > b a + c > b + c (a > b, c > 0 ac > bc) 2 図

代数 幾何 < ベクトル > 1 ベクトルの演算 和 差 実数倍については 文字の計算と同様 2 ベクトルの成分表示 平面ベクトル : a x e y e x, ) ( 1 y1 空間ベクトル : a x e y e z e x, y, ) ( 1 1 z1

(1) プログラムの開始場所はいつでも main( ) メソッドから始まる 順番に実行され add( a,b) が実行される これは メソッドを呼び出す ともいう (2)add( ) メソッドに実行が移る この際 add( ) メソッド呼び出し時の a と b の値がそれぞれ add( ) メソッド

OCW-iダランベールの原理

<8D828D5A838A817C A77425F91E6318FCD2E6D6364>

Computer Graphics

7 ポインタ (P.61) ポインタを使うと, メモリ上のデータを直接操作することができる. 例えばデータの変更 やコピーなどが簡単にできる. また処理が高速になる. 7.1 ポインタの概念 変数を次のように宣言すると, int num; メモリにその領域が確保される. 仮にその開始のアドレスを 1

経済数学演習問題 2018 年 5 月 29 日 I a, b, c R n に対して a + b + c 2 = a 2 + b 2 + c 2 + 2( a, b) + 2( b, c) + 2( a, c) が成立することを示しましょう.( 線型代数学 教科書 13 ページ 演習 1.17)

コンピュータグラフィックス

Microsoft PowerPoint - CSA_B3_EX2.pptx

パソコンシミュレータの現状

数学 t t t t t 加法定理 t t t 倍角公式加法定理で α=β と置く. 三角関数

線形代数とは

<4D F736F F D E4F8E9F82C982A882AF82E98D7397F1>

pp2018-pp4base

応用数学A

Microsoft PowerPoint - 第3回2.ppt

p tn tn したがって, 点 の 座標は p p tn tn tn また, 直線 l と直線 p の交点 の 座標は p p tn p tn よって, 点 の座標 (, ) は p p, tn tn と表され p 4p p 4p 4p tn tn tn より, 点 は放物線 4 p 上を動くこと

Microsoft Word - 断面諸量

02: 変数と標準入出力

02: 変数と標準入出力

2013年度 九州大・理系数学

12680 情報科学Ⅲ 情報メディア演習 情報機器の操作 [a] 担 当 者 加藤 周一 授 業 形 態 講義 コンピュータはハードウェアとソフトウェアがあって初めて我々に役に 立つ機器となる ハードウェアの原理 ソフトウェアのアルゴリズムに ついて述べる アルゴリズムについては実際に

表紙2017

コンピュータグラフィックス演習 I 2012 年 5 月 21 日 ( 月 )5 限 担当 : 桐村喬 第 7 回モデリングの仕上げ 1 カメラワークとアニメーション 今日の内容 1. カメラワーク 2. シーンの設定 3. アニメーション 前回のテクスチャの紹介 1 / 10

画像処理工学

物理演習問題

07年1級_CG記述解答-3.indd

ベクトル公式.rtf

Microsoft PowerPoint - 11.pptx

関数の定義域を制限する 関数のコマンドを入力バーに打つことにより 関数の定義域を制限することが出来ます Function[ < 関数 >, <x の開始値 >, <x の終了値 > ] 例えば f(x) = x 2 2x + 1 ( 1 < x < 4) のグラフを描くには Function[ x^

PowerPoint プレゼンテーション

物性物理学 I( 平山 ) 補足資料 No.6 ( 量子ポイントコンタクト ) 右図のように 2つ物質が非常に小さな接点を介して接触している状況を考えましょう 物質中の電子の平均自由行程に比べて 接点のサイズが非常に小さな場合 この接点を量子ポイントコンタクトと呼ぶことがあります この系で左右の2つ

Transcription:

今日の内容 コンピューターグラフィックス S 第 8 回 () システム創成情報工学科尾下真樹 28 年度 Q2 前回の復習 演習 (2): ポリゴンモデルの描画 変換行列 の概要 座標系 視野変換 射影変換 のまとめ 教科書 ( 参考書 ) コンピュータグラフィックス CG-ATS 協会編集 出版 2 章 ビジュアル情報処理 -CG 画像処理入門 - CG-ATS 協会編集 出版 章 (-2~-3 節 ) 3 次元ではなく 2 次元の例で説明 前回の復習 レンダリング パイプライン 処理の流れ 各頂点ごとに処理 各ポリゴンごとに処理 各頂点ごとに処理 各ポリゴンごとに処理 ラスタライズ 描画 ラスタライズ 描画 頂点座標スクリーン座標 ( 法線 色 テクスチャ座標 ) 頂点座標スクリーン座標 ( 法線 色 テクスチャ座標 ) ラスタライズ ラスタライズ 教科書基礎知識図 2-2 教科書基礎知識図 2-2

サンプルプログラムの構成 描画関数の流れ main() 関数 initenvironment() 関数 displa() 関数 reshape() 関数 mouse() 関数 motion() 関数 idle() 関数 main() 関数 ユーザ プログラム 初期化処理 描画 ウィンドウサイズ変更 マウス処理 アニメーション処理 終了処理 GLUT glutmainloop() 入力待ち処理 // // ウィンドウ再描画時に呼ばれるコールバック関数 // void displa( void ) { // 画面をクリア ( ピクセルデータとZバッファの両方をクリア ) // 変換行列を設定 ( ) // 光源位置を設定 ( モデルビュー行列の変更にあわせて再設定 ) // 地面を描画 // 変換行列を設定 ( 物体のモデル座標系 ) // 物体 ( 枚のポリゴン ) を描画 // バックバッファに描画した画面をフロントバッファに表示 } ポリゴンモデルの描画方法 方法 : glverte() 関数に直接頂点座標を記述 頂点データ ( 直接記述 ) 頂点ごとに渡す 方法 2: 頂点データの配列を使用 頂点データ 頂点ごとに渡す 方法 3: 頂点データと面インデックスの配列を使用 頂点データ + 面インデックス 頂点ごとに渡す 配列を使った四角すいの描画 () 配列データの定義 const int num_pramid_vertices = 5; // 頂点数 const int num_pramid_triangles = 6; // 三角面数 // 角すいの頂点座標の配列 float pramid_vertices[ num_pramid_vertices ][ 3 ] = { {.,.,. }, {.,-.8,. }, {.,-.8,-. }, }; // 三角面インデックス ( 各三角面を構成する頂点の頂点番号 ) の配列 int pramid_tri_inde[ num_pramid_triangles ][ 3 ] = { {,3, }, {,2,4 }, {,,2 }, {,4,3 }, {,3,2 }, { 4,2,3 } }; // 三角面の法線ベクトルの配列 ( 三角面を構成する頂点座標から計算 ) float pramid_tri_normals[ num_pramid_triangles ][ 3 ] = { {.,.53,.85 }, // +Z 方向の面 各三角面ごとに繰り返し 三角面の各頂点ごとに繰り返し 配列を使った四角すいの描画 (2) 配列データを参照しながら三角面を描画 void renderpramid3() { int i, j, v_no; 面の法線を指定 glbegin( GL_TIANGLES ); (i 番目の面の for ( i=; i<num_pramid_triangles; i++ ) データを指定 ) { glnormal3f( pramid_tri_normals[i][], [i][], [i][2] ); for ( j=; j<3; j++ ) { v_no = pramid_tri_inde[ i ][ j ]; glverte3f( pramid_vertices[ v_no ][], [ v_no ][], } } } glend(); 頂点番号を取得 (i 番目の面の j 番目の頂点が 何番目の頂点を使うかを取得 ) 頂点座標を指定 (v_no 番目の頂点のデータを指定 ) 前回の演習 ポリゴンの描画方法 ( 復習 ) 基本オブジェクトの描画 ポリゴンモデルの描画 演習課題 2

頂点座標スクリーン座標 ( 法線 色 テクスチャ座標 ) 各頂点ごとに処理 各ポリゴンごとに処理 ラスタライズ ラスタライズ 描画 教科書基礎知識図 2-2 の概要 座標系 視野変換 射影変換 のまとめ ( モデル座標系 ) で表された頂点座標を スクリーン座標系での頂点座標に変換する スクリーン座標系 2 段階のにより実現 ワールド座標からへの視野変換 からスクリーン座標系への射影変換 行列計算 ( 同次 ) によって 上記の2 種類の変換を実現する スクリーン座標系 の概要 座標系 視野変換 射影変換 のまとめ 3

座標系の種類 原点と座標軸の取り方により さまざまな座標系がある モデル座標系 スクリーン座標系 座標系の軸の取り方に違いがある 右手座標系 左手座標系 3 次元空間の座標系 物体や光源やカメラなどを配置する座標系 原点や軸方向は適当にとって構わない カメラと描画対象の相対位置 向きのみが重要 単位も統一さえされていれば自由に設定して構わない ( メートル センチ etc) 右手座標系と左手座標系 右手座標系と左手座標系 座標系の軸の取り方の違い 親指を X 軸 人差し指を Y 軸 中指を Z 軸とすると 右手の指で表されるのが右手系 (OpenGL など ) 左手の指で表されるのが左手系 (DirectXなど) 右手座標系 左手座標系 右手座標系と左手座標系 ( 続き ) 右手座標系と左手座標系の違い 基本的にはほとんど同じ 外積の定義が異なる 外積の計算式は 右手座標系で定義されたもの 左手座標系で外積を計算するときには 符号を反転する必要がある 剛体の運動計算や電磁気などの物理計算では重要になる ( この講義では扱わない ) 異なる座標系で定義されたモデルデータを利用する時には 変換が必要 左右反転 面の方向を反転 カメラを中心とする座標系 X 軸 Y 軸がスクリーンの X 軸 Y 軸に相当 奥行きが Z 軸に相当 スクリーン座標系 スクリーン上の座標 射影変換 ( 透視変換 ) を適用した後の座標 奥にあるものほど中央に描画されるように座標計算 スクリーン座標も奥行き値 (Z 座標 ) も持つことに注意 Zバッファ法で使用 スクリーン座標系 4

右手座標系と左手座標系 スクリーン座標系も 軸の取り方によって 座標系は異なる 手前が Z 軸の正方向 (OpenGL) 奥が Z 軸の正方向 (DirectX) こちらも基本的にはどちらでも構わない 手前がZ 軸の正方向 奥が Z 軸の正方向 モデル座標系 物体のローカル座標 ポリゴンモデルの頂点はモデル内部の原点を基準とするモデル座標系で定義される 正面方向をZ 軸にとる場合が多い にモデルを配置 モデル座標系 の流れ ( 詳細 ) モデル座標系からスクリーン座標系に変換 モデル座標系 の概要 座標系 視野変換 射影変換 のまとめ スクリーン座標系 視野変換 モデル座標系からに変換 モデル座標系 スクリーン座標系 同次 同次 4 4 行列の演算により 3 次元空間における平行移動 回転 拡大縮小 ( アフィン変換 ) などの操作を統一的に実現 (,,, w) の 4 次元座標値 ( 同次座標 ) を扱う 3 次元座標値は (/w, /w, /w) で計算 ( 通常は w = ) S 2 T S 2 T 2 2 22S T w w' 5

平行移動 平行移動 (T,T,T) の平行移動 4 4 行列を用いることで 平行移動を適用することができる T T T T T T (8,-2,) 平行移動 平行移動の例 (-3,6,3) (-5,6,3) (3,4,3) (-5,2,3) (-3,2,3) (3,,3) 8 8 2 2 (5,4,3) (5,,3) 回転 回転の例 回転 原点を中心とする回転を表す 2 2 2 2 22 2 2 2 2 22 Y 軸を中心として 9 度回転 (-5,6,3) (-3,6,3) (3,6,3) (3,2,3) (3,6,5) (-5,2,3) (-3,2,3) (3,2,5) cos sin sin cos 回転変換の行列 回転変換の行列の導出方法 各軸を中心として右ねじの方向の回転 ( 軸の元から見て反時計回り方向の回転 ) を通常使用 平面 平面 平面での回転を考えれば 2 次元平面での回転変換と同様に求められる 2 次元平面での回転行列は 高校の数学の内容 cos sin sin cos cos sin sin cos cos sin sin cos X 軸を中心とする回転変換 Y 軸を中心とする回転変換 Z 軸を中心とする回転変換 回転変換の行列 ( 続き ) 回転変換の行列の導出方法の例 例えば 軸周りの回転行列は 平面での回転を考えれば 導出できる Z Y 軸を中心とする回転変換 cos sin sin cos Y Z -sinθ θ cosθ X X 変換前の X 軸 Z 軸方向の単位ベクトルの 変換後の座標系での座標 cos sin cos sin cos sin cos sin sin sin cos cos 6

拡大縮小 拡大縮小 (S,S,S) 倍のスケーリング S S S S S S 拡大縮小の例 (2,.5, ) 倍に拡大縮小 (-3,6,3) (-5,6,3) (-,3,3) (-6,3,3) (-5,2,3) (-3,2,3) (-,,3) (-6,,3) 2 2.5.5 変換行列の適用 つの行列かけ算で各種の変換を適用可能 複数の行列を順番にかけていくことで 複数の変換を連続して適用できる 回転 移動の組み合わせの例 回転 cos9 sin 9 sin 9 cos9 平行移動 5 複数の変換行列の適用例 回転 移動の組み合わせの例 回転 平行移動 平行移動回転 cos9 sin 9 5 sin 9 cos9 先に適用する方が右側になることに注意! 行列計算の適用順序 行列演算では可換則は成り立たないことに注意! AB BA 行列の適用順序によって結果が異なる 例 : 回転 平行移動 平行移動 回転 複数の変換行列の適用例 (2) 移動 回転の順番で適用したときの例 回転 平行移動 平行移動 cos9 sin 9 cos9 sin 9 5 sin9 cos9 5 sin9 cos9 この場合は平行移動成分にも回転がかかる 回転 (5,,) に移動 7

複数の変換行列の適用例 (2) 移動 回転の順番で適用したときの例 平行移動 回転平行移動 モデル座標系 (,,5) に移動 cos9 sin 9 sin9 cos9 5 平行移動はモデル座標系 の向きで適用されているこ とになる 回転 (5,,) に移動 複数の変換行列の適用例 () 回転 移動の順番で適用 ( さきほどの例 ) 回転 平行移動 平行移動回転 cos9 sin9 cos9 sin9 5 sin9 cos9 sin9 cos9 5 こちらの順番の方が普通に使う場合が多い の考え方 の考え方 ある座標系内での回転 平行移動 拡大縮小の変換と考えることもできるし ある座標系から別の座標系への座標系の変換と考えることもできる モデルを C C2 に移動 回転 = 変換行列を適用しない状態では C2 Cの変換行列を求める移動や回転はなし C 回転 移動の C C 変換を適用 2 C A 2 の逆変換 逆行列を計算すれば 反対方向の変換も求まる アフィン変換 ( 回転 平行移動 拡大縮小 ) の行列は 正則であるため 常に逆行列が存在する A A 同次のメリット 行列演算だけでさまざまな処理を行える 同次を使わずとも 回転 平行移動 拡大縮小など各処理に応じて計算することは可能 それぞれの処理だけをみればこの方が高速 各種処理を統一的に扱えることに意味がある 複数の変換をまとめて一つの行列にできる 最初に一度全行列を計算してしまえば 後は各頂点につき 回の行列演算だけで処理できる CG 以外の分野でも広く用いられている 同次の表記方法 2 通りの書き方がある どちらの書き方で考えても良い 本講義では 左から行列を掛ける表記を使用 使用するライブラリによって行列データの渡し方が異なるので注意 2 T 2 T 2 2 22 T 左から行列を掛けていく表記 (OpenGL) t 2 2 2 2 22 T T T 右から行列を掛けていく表記 (DirectX) 8

2 次元空間での同次 2 次元空間 ( 平面 ) でも 同様に同次は定義される 3 次元空間での同次 4 4 行列 2 次元空間での同次 3 3 行列 2 次元空間の同次については 参考書を参照 ( 本講義では扱わない ) の例 下記のシーンにおける モデル座標系からへの変換行列を計算せよ 物体の位置が (-,,4) にあり と同じ向き カメラの位置が (8,2,3) にあり の Y 軸を中心として 9 度回転している (-,,4) (8,2,3) の例 の考え方 モデル座標系 への変換行列 への変換行列の 2 つの変換を求めて 順に適用することで モデル座標系 への変換を実現 カメラやモデルの位置 向きは で表されているため 全体を一度に求めることは難しい?? ワールド カメラモデル ワールド の例 モデル座標系 4 平行移動のみ (-,,4) モデル座標系の原点 (,,) はの (-,,4) に平行移動される 回転が必要であれば 平行移動行列の前に回転行列を適用する必要がある ( 今回は向きが同じなので不要 ) の例 cos9 sin 9 8 2 sin 9 cos 9 3 カメラの座標系から見ては の Y 軸を中心に -9 度回転 カメラの位置が (8,2,3) なので ワールド カメラは (-8,-2,-3) 位置はで表されているので 先に平行移動を適用 (8,2,3) の例 ( 参考 ) 8 cos9 sin 9 2 3 sin9 cos9 モデル座標系 と同様の行列になる回転 平行移動の順で適用 符号は反転の必要なし (8,2,3) 9

の例 モデル座標系 cos 9 sin 9 8 2 sin 9 cos 9 3 4 ワールド カメラ (-,,4) モデル ワールド (8,2,3) の順序に注意 回転と平行移動を適用する順序に注意! カメラ座標での平行移動 ワールド カメラの回転 (-,,4) ワールド座標での平行移動 モデル ワールドの回転 モデル座標での平行移動 (8,2,3) の概要 座標系 視野変換 射影変換 のまとめ 射影変換 からスクリーン座標系に変換 モデル座標系 スクリーン座標系 射影変換 透視射影変換 カメラ座標からスクリーン座標への射影変換 透視射影変換 一般的な射影変換の方法 奥にあるものほど中央に描画されるように計算 教科書基礎知識図 2-28 透視射影変換行列 2n r l r l r l 2n t b t b t b f n 2 fn w w' f n f n left right top bottom / w' / w' / w' W =-Z となり Zで割ることになる (Z 値が大きくなるほど中央になる )

平行射影変換 平行射影変換 スクリーン対して平行に射影 3 面図などを描画するときに用いられる left right top の概要 座標系 視野変換 射影変換 のまとめ bottom の流れのまとめ モデル座標系からスクリーン座標系に変換 モデル座標系 スクリーン座標系 変換行列によるの実現 視野変換 + 射影変換 アフィン変換 ( 視野変換 )+ 透視変換 ( 射影変換 ) 最終的なスクリーン座標は / w ' / w ' / w ' となる モデル座標系での頂点座標 2n r l r l r l S 2 T 2n t b S 2 T t b t b 2 2 22S T f n 2 fn w' f n f n 射影変換視野変換スクリーン座標系 ( カメラ スクリーン ) ( モデル カメラ ) での頂点座標 の設定 自分のプログラムから OpenGL や DirectX に 2 つの変換行列を設定する ワールド座標からへの視野変換 カメラの位置 向きや 物体の位置向きに応じて 適切なアフィン変換行列を設定 さまざまな状況で 適切な変換行列を設定できるように 十分に理解しておく必要がある からスクリーン座標系への射影変換 透視変換行列は 通常 固定なので 最初に一度だけ設定 視野角やスクリーンサイズなどを適切に設定 射影変換の設定 ( サンプルプログラム ) ウィンドウサイズから変更された時に設定 透視変換行列の設定 ( 視野角を 45 度とする ) 各関数の詳細は 次回の演習で説明 void reshape( int w, int h ) { // スクリーン座標系への変換行列を設定 glmatrimode( GL_POJECTION ); glloadidentit(); gluperspective( 45, (double)w/h,, 5 ); }

変換行列の設定 ( サンプルプログラム ) サンプルプログラムでのカメラ位置の設定 5 (,,) camera_pitch 以下の変換行列により表せる ( 詳細は後日説明 ) ポリゴンを基準とする座標系での頂点座標 cos camera_pitch sin camera_pitch 5 sincamera_pitch coscamera_pitch カメラから見た頂点座標 ( 描画に使う頂点座標 ) 変換行列の設定 ( サンプルプログラム ) 描画処理の中で設定 各関数の詳細は 次回の演習で説明 // 変換行列を設定 ( ) glmatrimode( GL_MODELVIEW ); glloadidentit(); gltranslatef(.,., - 5. ); glotatef( - camera_pitch,.,.,. ); // 地面を描画 // 変換行列を設定 ( 物体のモデル座標系 ) gltranslatef(.,.,. ); // 物体 ( 枚のポリゴン ) を描画 まとめ 変換行列 の概要 座標系 視野変換 ( アフィン変換 ) 透視変換 のまとめ 次回予告 次回 ( 講義 ) 変換行列の復習 応用 OpenGLプログラミング 変換行列の設定方法 次々回 ( 演習 ) 視点操作の拡張 変換行列によるアニメーション 2