목록CS (67)
테크 로그포스 Tech Log Force

일반적으로 프레임버퍼는 2중포트구조이다. 물체 영상을 쓰는 것과 거의 동시에 읽는다. 그런데 비디오 프로세서가 read하는 속도는 그래픽 컨트롤러가 write하는 속도와 차이가 난다(read가 훨씬 빠르다) 이 차이로 인해 화면이 깜빡거리는 등 문제가 발생한다. 이러한 문제는 더블버퍼링으로 해결할 수 있다. (그래픽 프로세서를 더 빠르게 할 수도 있겠지만) 프론트버퍼와 더블버퍼로 2개의 버퍼를 사용하여, 비디오 컨트롤러가 프론트버퍼를 read하는 동안 그래픽 프로세서는 백버퍼에 write한다. write를 마치면 두 버퍼를 switching하는 방식으로 진행한다. OpenGL에서는 glutInitDisplayMode(GLUT DOUBLE)로 설정해줄 수 있다. 버퍼 Switching에는 glutSwapB..

GPU는 모델링한 물체를 그려내기위한 수많은 계산을 효과적으로 처리하기 위해 파이프라인 구조를 사용한다. 파이프라인 구조는 컨베이어 시스템처럼 분업에 의한 동시(병렬)처리로 속도를 극대화한다. GL 파이프라인 서브 프로세서는 모두 하드웨어화 되어있으며, 입력->변환->투상->절단->래스터->출력 위와 같은 순서로 고정적으로 이루어져있다. 지엘이 이를 바꿀수는 없고, 지엘의 역할은 단지 상태변수를 설정해주는 것이다. 지엘이 상태 변수값을 전달하고, 개별 서브프로세서는 상태변수값을 기준으로 자동 실행된다. (상태 테이블을 이용한다.) 파이프라인은 상태변수를 참조해서 자동으로 실행된다.

- 고수준 API (오픈인벤터, VRML, Java3D..) 장면 묘사 위주로서 구체적 렌더링 방식이 포함되어있지 않으며 다양한 모형을 제공한다. - 저수준 API (OpenGL, DirectX..) 장면을 묘사하는 것이 아니라 구체적 프러시져(특정작업을 수행하는 서브 프로그램)를 호출한다. 하드웨어와 거의 직접 연관되어있어 하드웨어 성능을 최대한 발휘. 물론 저수준API도 드라이버 소프트웨어에 비해서는 상대적으로 고수준 함수다.

- GL(OpenGL Core Library) 오픈지엘에서 코어가 되는 라이브러리로서 렌더링 기능 제공하는 함수 라이브러리이다. 기본 도형 그리기/변환/조명 및 렌더링을 포함하며, 제공되는 함수에는 gl, 상수에는 GL_접두사가 붙음. glBegin(GL_LINES); - GLU(OpenGL Utility Library) GL라이브러리의 사용성을 높이기 위한 도우미 역할을 한다. 다각형 분할, 투상 등 고급 기능을 수행할 수 있도록 돕는다. 뷰잉 및 투영 행렬의 준비, 곡선 및 곡면표현과 렌더링. glu라는 접두사가 붙음 함수 앞에 (gluLookAt(20.0, 10.0...)) - GLUT(OPenGL Utility Toolkit) 윈도우 기능과 콜백 기능(실행 중 발생하는 사용자 입력)을 처리한다. ..