OpenGL 기초 6: 행렬, 출력 영역의 제한

출처: http://soen.kr/lecture/library/opengl/opengl-8.htm 29. 행렬 OpenGL은 각종 변환에 행렬을 많이 사용한다.  행렬의 수학적 특성을 잘 이용하면 빠른 속도로 연산을 수행할 수 있다. OpenGL이 변환에 사용하는 행렬은 4*4 크기의 행렬이다. 3차원 공간은 3개의 좌표로 구성되지만 연산의 편의를 위해 한차원 더 높은 4*4 행렬을 사용한다. 메모리에서 4*4 행렬을 표현하는 방법은 여러 가지가 있는데 일단 다음 더보기…

OpenGL 기초 5: 변환(관측, 모델링), 투영(직교, 원근), 뷰포트

출처: http://soen.kr/lecture/library/opengl/opengl-8.htm 24. 변환 – 개요 3차원 공간에 배치된 물체의 전체적인 변환 과정은 다음과 같다. OpenGL은 변환 단계에서 수행되는 복잡한 연산들을 행렬로 처리한다. 모든 변환 함수의 연산 결과는 현재 행렬에 반영된다. 좀 더 정확하게는 현재 선택된 행렬 스택의 최상단 행렬인데 일단은 현재 행렬이라고 생각하면 된다. 다음 함수는 행렬 연산의 목적지를 지정한다. void 더보기…

OpenGL 기초 4: 버텍스 배열, 인덱스, 색상 배열, 인터리브 배열, 출력 목록

출처: http://soen.kr/lecture/library/opengl/opengl-7.htm 19. 버텍스 배열 OpenGL은 배열로 정점의 집합을 정의하는 방법을 공식적으로 지원한다. 먼저 다음 함수를 호출하여 배열을 사용하도록 설정한다. void glEnableClientState(GLenum cap); 배열을 사용하는 것은 OpenGL 서버인 그래픽 카드의 설정과는 상관이 없고 그래픽을 그리는 클라이언트인 CPU와 상관이 있으므로 glEnable 함수를 사용하지 않는다. 어떻게 그릴 것인가의 문제가 아니고 어떻게 정보를 전달할 더보기…

OpenGL 기초 3: 3차원 좌표, 와인딩 & 컬링, 폴리곤 모드, 예제(주전자, 도넛 등) 호출

출처: http://soen.kr/lecture/library/opengl/opengl-6.htm 15. 3차원 좌표 OpenGL의 3차원 공간은 다음과 같은 좌표계로 정의되어 있다. x 축은 오른쪽으로 증가하고 y축은 위쪽으로 증가하며 z축은 사용자 반대쪽으로 증가한다. 클리핑 영역, 즉 좌표의 범위는 x, y, z 모두 -1 ~ 1 사이이다. 원점은 (0, 0, 0)이고 사용자 가까운 쪽의 왼쪽 아래는 (-1, -1, -1)이고 사용자와 먼쪽의 더보기…

OpenGL 기초 요약 2: 블렌딩, 앤티앨리어싱, GLUT

출처: http://soen.kr/lecture/library/opengl/opengl-5.htm 11. 블렌딩 블렌딩은 색상 버퍼에 이미 기록되어 있는 값과 새로 그려지는 값의 논리 연산 방법을 지정한다. 다른 모드를 사용하면 두 값을 논리적으로 연산한 결과를 써 넣음으로써 특이한 효과를 낼 수 있다. 블렌딩 기능은 glEnable(GL_BLEND); 로 사용한다. 블렌딩은 색상 버퍼에 이미 기록되어 있는 값 D와 새로 기록되는 값 S와의 연산을 정의한다. 연산 방법은 더보기…

OpenGL 기초 요약 1: 기본 타입, 색상 변경, 점, 선, 사각형, 다각형

출처: http://soen.kr/lecture/library/opengl/opengl-4.htm 1. 기본 타입 2. 함수 형식 glVertex3i(1,2,3); int arv[]={1,2,3}; glVertex3iv(arv); 3차원상의 좌표는 x, y, z 세가지 값으로 표현하는 것이 원칙적이되 분수 표현을 위해 w로 분모를 지정할 수 있다. 또 평면상의 정점인 경우는 z 좌표를 생략하고 x, y만 밝힐 수도 있다. w가 생략되면 1로 간주되며 z를 생략하면 0으로 간주한다. 더보기…