728x90
1.
void gluLookAt(GLdouble eyex, GLdouble eyey, GLdouble eyez,
GLdouble atx, GLdouble aty, GLdouble atz,
GLdouble upx, GLdouble upy, GLdouble upz);
2. Arguments
A. 카메라 위치 : (eyex, eyey, eyez)
B. 카메라가 바라보는 점 (초점의 위치) : (atx, aty, atz)
C. 카메라 기울임(Orientation) : (upx, upy, upz)
void MyDisplay()
{
glClear(GL_COLOR_BUFFER_BIT);
gluLookAt(1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0);
glColor3f(0.0f, 1.0f, 1.0f);
glutWireTeapot(0.5);
glutSwapBuffers();
//glFlush();
}
카메라 위치를 (1,1,0) 에 뒀는데 잘려버렸다..
뭐가 문제인지 한참을 헤매다가 ..
void MyDisplay()
{
glClear(GL_COLOR_BUFFER_BIT);
gluLookAt(0.5, 0.0, 0.5, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0);
glColor3f(0.0f, 1.0f, 1.0f);
glutWireTeapot(0.5);
glutSwapBuffers();
//glFlush();
}
위치를 반으로 줄이니깐 잘 나오기 시작했다.
(1,1,0) 은 직선거리가 루트2(=1.414141) 가 나와서 그런 것 같다.
void MyDisplay()
{
glClear(GL_COLOR_BUFFER_BIT);
//좌상
glViewport(0, height / 2, width / 2, height / 2);
glLoadIdentity();
gluLookAt(0.0, 0.5, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0);
glColor3f(0.0f, 0.0f, 1.0f);
glutWireTeapot(0.5);
//우상
glViewport(width / 2, height / 2, width / 2, height / 2);
glLoadIdentity();
gluLookAt(0.5, 0.0, 0.5, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0);
glColor3f(0.0f, 1.0f, 1.0f);
glutWireTeapot(0.5);
//좌하
glViewport(0, 0, width / 2, height / 2);
glLoadIdentity();
gluLookAt(0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0);
glColor3f(1.0f, 0.0f, 0.0f);
glutWireTeapot(0.5);
//우하
glViewport(width / 2, 0, width / 2, height / 2);
glLoadIdentity();
gluLookAt(1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0);
glColor3f(0.0f, 1.0f, 0.0f);
glutWireTeapot(0.5);
glutSwapBuffers();
//glFlush();
}
'Language > C++ & openGL' 카테고리의 다른 글
그래픽스 정리 (0) | 2020.06.30 |
---|---|
오픈지엘 행렬스택 glPushMatrix/glPopMatrix, 시점변환gluLookAt, 평행|원근 투상 glOrtho/gluPerspective (0) | 2020.06.11 |
오픈지엘 이동 회전 크기 복합 변환 (0) | 2020.05.23 |
오픈지엘 마우스 클릭으로 다수의 선 그리기 (0) | 2020.05.21 |
그래픽스 시작 (0) | 2020.05.13 |
댓글