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();  
}

我只需要画一堵墙就可以让自己前进。如果您认为需要任何代码来解决我的问题,请发表评论,我将编辑我的问题。(仅供参考,其他代码工作正常,因为骨架是给我的,让我自己开始)。

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 回答