0

これは私が使用しなければならない設定です (これらの値を変更することはできません)

#include <stdlib.h>
#include <GL/glut.h>
const GLdouble FRUSTDIM = 100.0f;

void reshape(int w, int h) // Resize the GL Window. w=width, h=height
{
    glViewport(0, 0, (GLsizei) w, (GLsizei) h);
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    glFrustum(-FRUSTDIM, FRUSTDIM, -FRUSTDIM, FRUSTDIM, 320., 640.);
    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();
}

壁を作りたいのですが、何かがおかしいのでよくわかりません。私が間違っていなければ、現在のスペースは (-100 - 100)x(-100 - 100)x(320 - 640) で、カメラは現在 0,0,320 です。

部屋を作りたいのですが、壁すら作れません:(....

QUADS と QUAD_STRIP を使用してみましたが、実行しても表示されません D:

私のコード:

void display(void)
{
    glBegin(GL_QUADS);
    glColor3f(1,1,1);
    glVertex3f(50,50,420);
    glVertex3f(50,-50,420);
    glVertex3f(-50,-50,420);
    glVertex3f(-50,50,420);
    glEnd();

    glutSwapBuffers();
    glFlush();  
}

私は自分自身を動かすために壁を描く必要があるだけです。私の問題を解決するために必要と思われるコードがある場合は、コメントしてください。質問を編集します。(FYI 他のコードは正常に動作しています。なぜなら、スケルトンは自分自身を始めるために私に与えられたからです)。

4

1 に答える 1

1

これを含める必要があります:

glClear(GL_DEPTH_BUFFER_BIT|GL_COLOR_BUFFER_BIT); // clearing window    
glDisable(GL_LIGHTING);
glMatrixMode(GL_MODELVIEW); 
glLoadIdentity(); 

オブジェクトが見えるようにウィンドウをクリアにします。さらに:

glTranslatef(-100,-100,-630.0);
glBegin(GL_QUADS);
/* Back Wall */
glColor3f(1.0f, 0.0f, 0.0f);
glNormal3f(0,0,1);
glVertex3f(0,0,0);
glVertex3f(200,0,0);
glVertex3f(200,200,0);
glVertex3f(0,200,0);
glEnd();

これにより、壁が作成されます (ほとんど同じですが、作成する前に翻訳を追加しただけです)。

于 2013-10-06T18:42:21.307 に答える