回答編集履歴

3

誤記修正

2021/06/02 04:27

投稿

fana
fana

スコア11996

test CHANGED
@@ -110,8 +110,8 @@
110
110
 
111
111
  * 「"カメラの位置" という意味として扱っている数値の側を変更する」と考えて gluLookAt() に渡す引数値を変えてやる
112
112
 
113
- * 「モデル群を逆方向に移動させてやればいいよね」と考えて,glTransLated() とかでやる
113
+ * 「モデル群を逆方向に移動させてやればいいよね」と考えて,glTranslated() とかでやる
114
114
 
115
115
 
116
116
 
117
- のどちらであろが,結局は単一のModelViewマトリクスをいじくっているだけで,やってることは同じなので,「頭の中で考えている話の捉え方が違う」だけですが.
117
+ のどちらであろが,結局は単一のModelViewマトリクスをいじくっているだけで,やってることは同じなので,「頭の中で考えている話の捉え方が違う」だけですが.

2

追記

2021/06/02 04:27

投稿

fana
fana

スコア11996

test CHANGED
@@ -49,3 +49,69 @@
49
49
  目視点まわりの回転については,(centerX,centerY,centerZ)の値は保ち,
50
50
 
51
51
  所望の回転軸周りの回転によって,基底ベクトルの方向と,座標(eyeX,eyeY,eyeZ)とを更新すれば良いでしょう.
52
+
53
+
54
+
55
+ ---
56
+
57
+
58
+
59
+ ---
60
+
61
+
62
+
63
+ [追記]
64
+
65
+
66
+
67
+ > カメラを平行移動
68
+
69
+
70
+
71
+ というのは,
72
+
73
+ 「カメラ位置はそのままにしておき,全てのモデルを(逆方向に)平行移動」することと同じなので,
74
+
75
+ そういう方向で物事を考えれば,
76
+
77
+ 現在の ModelView マトリクスに,「逆方向に平行移動させる行列」を左から乗じるという形になります.
78
+
79
+
80
+
81
+ 単純には,
82
+
83
+
84
+
85
+ ```
86
+
87
+ glMatrixMode( GL_MODELVIEW );
88
+
89
+ glLoadIdentity();
90
+
91
+ glTranslated( 逆方向の並進移動量 );
92
+
93
+ gluLookAt( 既存の内容 );
94
+
95
+ ```
96
+
97
+
98
+
99
+ とか書く感じですね.
100
+
101
+
102
+
103
+ ---
104
+
105
+
106
+
107
+ まぁ,
108
+
109
+
110
+
111
+ * 「"カメラの位置" という意味として扱っている数値の側を変更する」と考えて gluLookAt() に渡す引数値を変えてやる
112
+
113
+ * 「モデル群を逆方向に移動させてやればいいよね」と考えて,glTransLated() とかでやる
114
+
115
+
116
+
117
+ のどちらであろが,結局は単一のModelViewマトリクスをいじくっているだけで,やってることは同じなので,「頭の中で考えている話の捉え方が違う」だけですが.

1

誤変換を修正

2021/06/02 04:26

投稿

fana
fana

スコア11996

test CHANGED
@@ -22,7 +22,7 @@
22
22
 
23
23
 
24
24
 
25
- として引数を与えることができている時点で,その時点におけるカメラ座標系の基底ベクトルは既知(出方法が既知)なわけですから,カメラ座標系の規定ベクトル方向に平行移動する処理は自明でしょう.
25
+ として引数を与えることができている時点で,その時点におけるカメラ座標系の基底ベクトルは既知(出方法が既知)なわけですから,カメラ座標系の規定ベクトル方向に平行移動する処理は自明でしょう.
26
26
 
27
27
 
28
28