|
Generated by UTF-8 version of diff2html.pl © Yves Bailly, MandrakeSoft S.A. 2001, Ryohei Morita 2007 diff2html.pl is licensed under the GNU GPL. |
../09-01/09-01-Projection.c | 09-02-Projection.c | |||
---|---|---|---|---|
49 lines 1882 bytes Last modified : Mon Nov 19 04:11:44 2012 |
50 lines 1952 bytes Last modified : Mon Nov 19 04:41:34 2012 |
|||
1 | // Keisanki Joron 2 (Introduction to Computing II) | 1 | // Keisanki Joron 2 (Introduction to Computing II) | |
2 | // Dept. of Engineering Systems, University of Tsukuba | 2 | // Dept. of Engineering Systems, University of Tsukuba | |
3 | // [UTF-8 / Unix] | 3 | // [UTF-8 / Unix] | |
4 | // 計算機序論2・実習 (筑波大学工学システム学類) | 4 | // 計算機序論2・実習 (筑波大学工学システム学類) | |
5 | 5 | |||
6 | // 2012/11/19a kameda[at]iit.tsukuba.ac.jp | 6 | // 2012/11/19a kameda[at]iit.tsukuba.ac.jp | |
7 | // 09.01. 透視投影の導入(暫定) | 7 | // 09.02. 透視投影の導入(正式) | |
8 | 8 | |||
9 | #include "ic2-CommonHeaders.h" | 9 | #include "ic2-CommonHeaders.h" | |
10 | 10 | |||
11 | 11 | |||
12 | // *********************************************************************** | 12 | // *********************************************************************** | |
13 | // Projection ************************************************************ | 13 | // Projection ************************************************************ | |
14 | 14 | |||
15 | // +++-------------------------------------------------- | 15 | // +++-------------------------------------------------- | |
16 | // カメラの投影行列を設定 | 16 | // カメラの投影行列を設定 | |
17 | // +++-------------------------------------------------- | 17 | // +++-------------------------------------------------- | |
18 | 18 | |||
19 | // +---------------------------------------------------- | 19 | // +---------------------------------------------------- | |
20 | // 直交投影 | 20 | // 直交投影 | |
21 | // +---------------------------------------------------- | 21 | // +---------------------------------------------------- | |
22 | void ic2_SetUpCamera_Ortho (void) { | 22 | void ic2_SetUpCamera_Ortho (void) { | |
23 | // OpenGLのPROJECTION行列スタックにアクセス | 23 | // OpenGLのPROJECTION行列スタックにアクセス | |
24 | glMatrixMode(GL_PROJECTION); | 24 | glMatrixMode(GL_PROJECTION); | |
25 | 25 | |||
26 | // PROJECTION行列スタックトップを単位行列で初期化 | 26 | // PROJECTION行列スタックトップを単位行列で初期化 | |
27 | glLoadIdentity(); | 27 | glLoadIdentity(); | |
28 | 28 | |||
29 | // 直交投影行列を生成するサポート関数 glOrtho を呼び出す | 29 | // 直交投影行列を生成するサポート関数 glOrtho を呼び出す | |
30 | // glOrtho(左端, 右端, 下端, 上端, 近接側クリッピング面, 遠方側クリッピング面) | 30 | // glOrtho(左端, 右端, 下端, 上端, 近接側クリッピング面, 遠方側クリッピング面) | |
31 | glOrtho(-1.0, 1.0, -1.0, 1.0, -1.0, 1.0); // | 31 | glOrtho(-1.0, 1.0, -1.0, 1.0, -1.0, 1.0); // | |
32 | } | 32 | } | |
33 | 33 | |||
34 | // +---------------------------------------------------- | 34 | // +---------------------------------------------------- | |
35 | // 透視投影 | 35 | // 透視投影 | |
36 | // +---------------------------------------------------- | 36 | // +---------------------------------------------------- | |
37 | void ic2_SetUpCamera_Perspective (void) { | 37 | void ic2_SetUpCamera_Perspective (void) { | |
38 | // OpenGLのPROJECTION行列スタックにアクセス | 38 | // OpenGLのPROJECTION行列スタックにアクセス | |
39 | glMatrixMode(GL_PROJECTION); | 39 | glMatrixMode(GL_PROJECTION); | |
40 | 40 | |||
41 | // PROJECTION行列スタックトップを単位行列で初期化 | 41 | // PROJECTION行列スタックトップを単位行列で初期化 | |
42 | glLoadIdentity(); // 毎フレーム再設定するのでPROJECTION行列スタックトップの初期化必要 | 42 | glLoadIdentity(); // 毎フレーム再設定するのでPROJECTION行列スタックトップの初期化必要 | |
43 | 43 | |||
44 | // 透視投影行列を生成するサポート関数 gluPerspective を呼び出す | 44 | // 透視投影行列を生成するサポート関数 gluPerspective を呼び出す | |
45 | // gluPerspective(垂直画角[deg], アスペクト比, 近距離限界, 遠距離限界) | 45 | // gluPerspective(垂直画角[deg], アスペクト比, 近距離限界, 遠距離限界) | |
46 | gluPerspective(35.0, 1.0, 2.0, 4.0); | 46 | // 各引数は正確に計算して求めておくことが必要 | |
47 | gluPerspective(36.87, 1.0, 2.0, 4.0); | |||
47 | } | 48 | } | |
48 | 49 | |||
49 | 50 |