この関数は、
- 最初にウィンドウを作成した時
- マウスなどでウィンドウサイズを変更した時
に呼び出される。
以下のようにして登録する。
[例]
void reshape(int w, int h)
{
... ...
}
int main()
{
... ...
glutReshapeFunc(reshape);
... ...
}
一般に、3D描画では
- ビューポートの設定
- 視体積設定
- 視点の設定
を行ってから、物体を描画する。
これらの設定をreshape()関数内に記述する事が多い。
[例]
void reshape(int w, int h)
{
glViewport(0, 0, w, h); //ビューポートの設定
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(30.0, (double)w / (double)h, 1.0, 100.0); //視体積の設定
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
gluLookAt(3.0, 4.0, 5.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0); //視点の設定
}
次は >>
ビューポート