1

glRoatef 関数が機能しない理由がわかりません...

以下のコードは、SDL を使用してメイン ループ内で呼び出される表示関数です。

void display(){

glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
glLoadIdentity();

GLfloat ambientColor[] = {0.2f, 0.2f, 0.2f, 1.0f};
glLightModelfv(GL_LIGHT_MODEL_AMBIENT, ambientColor);

Control(0.2,0.2,mousein);
drawSkybox(50.0);
UpdateCamera();

renderLine(0,0,0,100,0,0,0,0,255);
renderLine(0,0,0,0,100,0,0,255,0);
renderLine(0,0,0,0,0,100,255,0,0);

これが機能していないビットであることを追加するのを忘れました:

glPushMatrix();
glRotatef(1,0,0,360);
glScalef(0.05,0.05,0.05);
glCallList(ship);
glPopMatrix();

for(int i = 0;i<planets.size();i++){
glPushMatrix();
planets[i].render();
glPopMatrix();
}
       }

コントロール機能では、これらのローテーションが機能します。

glRotatef(-camPitch,1.0,0.0,0.0); glRotatef(-camYaw,0.0,1.0,0.0);

Update Camera はシーンも変換します glTranslatef(-camX,-camY,-camZ);

また、init関数では、これがカメラのセットアップ方法です

glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    gluPerspective(45,640.0/480.0,0.1,500.0);
    glMatrixMode(GL_MODELVIEW);
4

1 に答える 1

3

void glRotatef(GLfloat x, GLfloat y, GLfloat z, GLfloat 角度)

void glRotatef(GLfloat 角度、GLfloat x、GLfloat y、GLfloat z);

http://www.opengl.org/sdk/docs/man2/xhtml/glRotate.xml

于 2013-07-14T00:49:25.593 に答える