OpenGL 질문좀 드리겠습니다. 마우스를 이용한 카메라 이동.

조회수 2178회
void draw() // glDisplayFunc() 콜백함수
{
    glLoadIdentity();
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // 지정한 배경색으로 배경을 지움
    glMatrixMode(GL_MODELVIEW);

    double la = latitude * (PI / 180);
    double lo = longitude * (PI / 180);

    double x = r * cos(la)*sin(lo);
    double y = r * sin(la);
    double z = r * cos(la)*cos(lo);

    if (a == 1)
        A->draw();

    else if (a == 2)
        A->draw();

    else if (a == 3)
        A->draw();

    else if (a == 4)
        A->draw();

    else if (a == 5)
        A->draw();

    else if (a == 6)
        A->draw();

    else if (a == 7)
        A->draw();

    for (int k = 0; k < block1.size(); k++)
    {
        check1 = block1[k].second;
        if (check1 == 1)
        {
            Block1 TEMP = Block1(block1[k].first);
            TEMP.draw();
        }
        else if (check1 == 2)
        {
            Block2 TEMP = Block2(block1[k].first);
            TEMP.draw();
        }
        else if (check1 == 3)
        {
            Block3 TEMP = Block3(block1[k].first);
            TEMP.draw();
        }
        else if (check1 == 4)
        {
            Block4 TEMP = Block4(block1[k].first);
            TEMP.draw();
        }
        else if (check1 == 5)
        {
            Block5 TEMP = Block5(block1[k].first);
            TEMP.draw();
        }
        else if (check1 == 6)
        {
            Block6 TEMP = Block6(block1[k].first);
            TEMP.draw();
        }
        else if (check1 == 7)
        {
            Block7 TEMP = Block7(block1[k].first);
            TEMP.draw();
        }
    }


    for (int i = 0; i < block.size(); i++)
    {
        check = block[i].second;
        if (check == 1)
        {
            Block1 temp = Block1(block[i].first);
            cout << " 생성" << endl;
            temp.draw();
        }
        else if (check == 2)
        {
            Block2 temp = Block2(block[i].first);
            temp.draw();
        }
        else if (check == 3)
        {
            Block3 temp = Block3(block[i].first);
            temp.draw();
        }
        else if (check == 4)
        {
            Block4 temp = Block4(block[i].first);
            temp.draw();
        }
        else if (check == 5)
        {
            Block5 temp = Block5(block[i].first);
            temp.draw();
        }
        else if (check == 6)
        {
            Block6 temp = Block6(block[i].first);
            temp.draw();
        }
        else if (check == 7)
        {
            Block7 temp = Block7(block[i].first);
            temp.draw();
        }
    }

    for (int k = 0; k < block1.size(); k++)
    {
        check1 = block1[k].second;
        if (check1 == 1)
        {
            Block1 TEMP = Block1(block1[k].first);
            TEMP.draw();
        }
        else if (check1 == 2)
        {
            Block2 TEMP = Block2(block1[k].first);
            TEMP.draw();
        }
        else if (check1 == 3)
        {
            Block3 TEMP = Block3(block1[k].first);
            TEMP.draw();
        }
        else if (check1 == 4)
        {
            Block4 TEMP = Block4(block1[k].first);
            TEMP.draw();
        }
        else if (check1 == 5)
        {
            Block5 TEMP = Block5(block1[k].first);
            TEMP.draw();
        }
        else if (check1 == 6)
        {
            Block6 TEMP = Block6(block1[k].first);
            TEMP.draw();
        }
        else if (check1 == 7)
        {
            Block7 TEMP = Block7(block1[k].first);
            TEMP.draw();
        }
    }

    gluLookAt(0, 0.2, 0, viewX, viewY, z, 0, 0, 0);
    glFlush();
    glutSwapBuffers();
}

void Mouse(int button, int state, int x, int y)
{
    if (button == GLUT_LEFT_BUTTON && state == GLUT_DOWN)
        bool LEFT = TRUE;
}


void DragMouse(int Motion_x, int Motion_y)
{
    viewX = Motion_x;
    viewY = Motion_y;
    glutPostRedisplay();
}

안녕하세요. 혼자 고민을하고 해결해보려고해도 잘 되지않아 글써봅니다. 현재 OpenGL에서 마우스를 이용해 시점(카메라)의 이동을 구현하려고하는데요.

물체가 그려져있고 마우스를 드래그하면 물체를 중심으로 카메라가 회전? 하는 겁니다. 그런데 무슨 이유서인지, 저렇게 gluLookAt을 넣어도 카메라에 아무런 변화가 없습니다.. 당황스럽네요..어떻게 해야하나요?

감사합니다

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)