본문 바로가기
Language/C++ & openGL

그래픽스 함수 모음 openGL

by javapp 자바앱 2020. 7. 4.
728x90

그래픽스 함수

 

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(물체 정점)

 

댓글