最終更新: mikk_ni3_92 2009年09月30日(水) 18:33:30履歴
現在地 >> メニュー >> 発展編01 >> 発展編01::テクスチャ行列
「glMatrixMode関数」には「GL_MODELVIEW」、「GL_PROJECTION」などが指定できるが、
「GL_TEXTURE」を指定すると、テクスチャ行列に対する演算モードに切り替わる。
【例】
座標系(x,y,z,w)は(s,t,r,q)に対応しているため
このモード変換を使うとテクスチャ行列を簡単に変換できる。
【変換前の座標対応】
↓
(s,t)それぞれ0.5だけ平行移動した座標で対応をさせたい
↓
【変換後の座標対応】
このような場合、以下のように書ける
▲貼り付け対応のイメージ
「glMatrixMode関数」には「GL_MODELVIEW」、「GL_PROJECTION」などが指定できるが、
「GL_TEXTURE」を指定すると、テクスチャ行列に対する演算モードに切り替わる。
【例】
glMatrixMode(GL_TEXTURE); //モード切替え glLoadIdentity(); glTranslatef(... ...);
座標系(x,y,z,w)は(s,t,r,q)に対応しているため
このモード変換を使うとテクスチャ行列を簡単に変換できる。
【変換前の座標対応】
glTexCoord2f(0.f, 1.f) | glVertex2f(-1.f,1.f) |
glTexCoord2f(0.f, 0.f) | glVertex2f(-1.f,-1.f) |
glTexCoord2f(1.f, 0.f) | glVertex2f(1.f,-1.f) |
glTexCoord2f(1.f, 1.f) | glVertex2f(1.f,1.f) |
(s,t)それぞれ0.5だけ平行移動した座標で対応をさせたい
↓
【変換後の座標対応】
glTexCoord2f(0.5f, 1.5f) | glVertex2f(-1.f,1.f) |
glTexCoord2f(0.5f, 0.5f) | glVertex2f(-1.f,-1.f) |
glTexCoord2f(1.5f, 0.5f) | glVertex2f(1.f,-1.f) |
glTexCoord2f(1.5f, 1.5f) | glVertex2f(1.f,1.f) |
このような場合、以下のように書ける
... ... glMatrixMode(GL_TEXTURE); //モード切替え glLoadIdentity(); glTranslatef(0.5f, 0.5f, 0.f); Draw();//描画 ... ...
▲貼り付け対応のイメージ
- 発展編01::まとめコード10_1(平行移動)
- 発展編01::まとめコード10_2(回転)