그래픽스 함수
glColor3f(255,0,0)
void MyTimer(int Value) {
key == 'z';
if (key == 'z')zRotate -= 10;
else if (key == 'Z') zRotate += 10;
glutPostRedisplay();
glutTimerFunc(100, MyTimer, 1);
}
glutPostRedisplay() : 윈도우가 다시 그려져야 함을 표시
glutTimerFunc(100, MyTimer, 1)
메인{
gluKeyboardFunc(MyKeyboard);
}
더블 버퍼링 (보류모드)
메인 : glutInitDisplayMode(GLUT_DOUBLE)
void MyDisplay() {
glutSwapBuffers();
}
/*기준선*/
glBegin(GL_LINES);
glColor3f(1, 0, 0); // X
glVertex3f(-1, 0, 0); glVertex3f(1, 0, 0);
glColor3f(0, 1, 0); // Y
glVertex3f(0, -1, 0); glVertex3f(0, 1, 0);
glColor3f(0, 0, 1); // Z
glVertex3f(0, 0, -1); glVertex3f(0, 0, 1);
glEnd();
GL_POLYGON
복합변환
glLoadIdentity() //이전 상태 초기화 후 변환
glTranslatef(0.4, 0.4, 0);
glRotatef(45, 0, 0, 1);
glScalef(2, 2, 2);
glutWireTeapot(0.5);
glBegin(GL_POINTS);
glVertex3f(0.0, 0.0, 0.0);
glEnd();
지엘의 지버퍼 사용
gluInitDisplayMode(GLUT_DEPTH); : 메인
glEnable(GL_DEPTH_TEST); : 메인 , 가까운 물체부터 그리기
glClear(GL-DEPTH-BUFFER-BIT);
행렬모드 : glMatrixMode(GL_MODELVIEW); GL_PROJECTION, GL_TEXTURE
투상 함수
glMatrixMode(GL_PROJECTION)
glLoadIdentity()
glOrtho(left, right, bottom, top, near, far) //평행투상
gluPerspective(fov, aspect, near, far) //원근투상
glFrustum(left, right, bottom, top, near, far) //원근투상
뷰포트 시점 순서 (left, bottom, width, height)
glViewport(0, height/2, width/2, height/2); //좌상 gl 좌표계는 왼쪽아래
glLoadIdentity();
gluLookAt(eyex,eyey,eyez, atx,aty,atz, upx,upy,upz) //시점
복합변환
행렬스택
glMatrixMode(GL_MODELVIEW);
glLoadIdentity()
glPushMatrix()
glColor3f
glTranslatef
glScalef
glutSolidCube(1)
glPopMatrix()
void drawBody()
{
glPushMatrix();
glColor3f(255, 0, 0);
glTranslatef(0, 1.0, 0);
glScalef(2, 2, 1);
glutSolidCube(1);
glPopMatrix();
}
후면제거
glEnable(GL_CULL_FACE)
glCullFace(GL_FRONT) GL_BACK, GL_FRONT_AND_BACK
표면
glFrontFace(GL_CCW) (GL_CW)
조명
glLightfv
텍스쳐
glTexImage2D() : 프로세서 배열에 저장되어있던 텍스쳐를 텍스쳐 메모리로 이동
glNormal3f, glTexCoord2f(텍스쳐 정점) glVertex3x(물체 정점)
'Language > C++ & openGL' 카테고리의 다른 글
그래픽스 정리 (0) | 2020.06.30 |
---|---|
오픈지엘 행렬스택 glPushMatrix/glPopMatrix, 시점변환gluLookAt, 평행|원근 투상 glOrtho/gluPerspective (0) | 2020.06.11 |
오픈지엘 gluLookAt 시점 변환 모델 잘림 해결, 뷰포트 (0) | 2020.06.05 |
오픈지엘 이동 회전 크기 복합 변환 (0) | 2020.05.23 |
오픈지엘 마우스 클릭으로 다수의 선 그리기 (0) | 2020.05.21 |
댓글