首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >gluLookAt不工作吗?

gluLookAt不工作吗?
EN

Stack Overflow用户
提问于 2013-11-12 20:54:48
回答 1查看 2.7K关注 0票数 0

为什么gluLookAt不能工作?

这对现场没有任何影响,就好像它甚至没有被调用一样。

是因为我使用的是glMatrixMode(GL_MODELVIEW);,如果我不包括它,我在屏幕上什么也得不到。

我在用GLFW,GLEW和GLM。

代码语言:javascript
复制
// game.cpp:
Car* car;
void Game::init()
{
    //  LOADING SHADERS:
    loadShaders();

    //  CREATING ENTITIES:
    car = new Car();
    //cube->position.x = -0;
    car->position.z = -2;
    entities.push_back(car);

    //  INITIAL GL PARAMETERS:
    glEnable(GL_CULL_FACE);                         //  BACK FACE CULLING
    glEnable(GL_DEPTH_TEST);                        //  DRAW NON-OBSCURED
    glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);      //  FILL POLYGON MODE

    glClearColor(0.3f, 0.5f, 0.9f, 0.0f);           //  BACKGROUND COLOR

    glMatrixMode(GL_PROJECTION);
    gluPerspective(CAMERA_FOVY, (GLdouble)WINDOW_WIDTH / (GLdouble)WINDOW_HEIGHT, CAMERA_ZNEAR, CAMERA_ZFAR);
}

void Game::update()
{
    for (int i = 0; i != entities.size(); ++i)
    {
        entities[i]->update();
    }
}

void Game::render()
{
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    glMatrixMode(GL_MODELVIEW);

    glLoadIdentity();
    gluLookAt(0, 0, 0, car->position.x, car->position.y, car->position.z, 0, -1, 0);

    for (int i = 0; i != entities.size(); ++i)
    {
        glLoadIdentity();
        glTranslatef(entities[i]->position.x, entities[i]->position.y, entities[i]->position.z);
        glRotatef(entities[i]->rotation.x, 1.0f, 0.0f, 0.0f);
        glRotatef(entities[i]->rotation.y, 0.0f, 1.0f, 0.0f);
        glRotatef(entities[i]->rotation.z, 0.0f, 0.0f, 1.0f);
        entities[i]->render();
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-12 21:20:13

在实体for循环的每次迭代开始时调用glLoadIdentity。在第一次迭代中,这将替换gluLookAt设置的矩阵。

为了确保此视图矩阵适用于在调用glPushMatrix之后要调用gluLookAt的所有实体。确保在for循环之后调用glPopMatrix来平衡这一点。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19939678

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档