OpenGL graphics pipeline

Shader란 rendering pipeline (graphics pipeline)의 중간에 위치하여 어떠한 필요한 계산을 해주는 비교적 작은 크기의 programmable unit을 말한다. OpenGL에서 사용 가능한 shader의 종류는 다음 세 가지가 있다. 1. vertex shader (VS) 2. geometry shader (GS) 3. fragment shader (FS) 우선 OpenGL에서

Read More OpenGL graphics pipeline

OpenGL framebuffer object

Framebuffer는 rendering의 최종 결과가 기록되는 buffer들의 집합이다. OpenGL context가 생성되면서 기본적으로 하나의 framebuffer를 생성하여 사용하는데, 이러한 default framebuffer를 window-system-provided framebuffer라고 부른다. 반면, 필요 시 임의의 framebuffer를 동적으로 생성하여 사용하는 것이 가능한데, 이렇게 생성된 framebuffer를 application-created framebuffer라고 하며, 일반적으로 framebuffer object (FBO)라고

Read More OpenGL framebuffer object

OpenGL object

OpenGL object는 다수의 state를 저장하는 구조체이다. OpenGL object가 어떤 context에 연결되면, object가 저장하고 있는 state가 context의 state로 나타나게 된다. 따라서, context 상에서의 변경 내용은 현재 연결되어 있는 object의 상태를 변경하게 된다. 또한, context 상에서 수행하는 함수들은 현재 연결되어 있는 object에

Read More OpenGL object

DC (Device Context) & RC (Rendering Context)

OpenGL이 OS상에서 구동되려면 OS에서 제공하는 window에 연결되어야 한다. 만약 동시에 두 개 이상의 OpenGL applications가 실행되고 있다면 이들 사이에는 상호간 영향이 있어서는 안된다. (A application에서 색상이나 선의 두께를 조절하였을 때, B application에서도 그 결과가 나오면 안된다는 뜻이다.) OpenGL은 이러한 문제를 해결하기

Read More DC (Device Context) & RC (Rendering Context)

OpenGL as a State Machine

State machine이란 state를 변경하는 명령을 받기 전에는 현재의 state를 계속 유지하는 machine을 말한다. OpenGL은 미리 정의되어 있는 유한개의 state들을 가지고 있으므로 finite state machine (FSM)의 일종으로 볼 수 있다. (실제로 유한개이긴 하지만 매우 많은 state들이 정의되어 있다.) 예를 들면, glColor3f(0,0,1)을

Read More OpenGL as a State Machine

Linux에서 Glut 설치법

리눅스에서 Glut 설치법 (주의: 본 설명은 완벽 버전이 아님) OS: CentOS 5.1 64bit 1. glut-3.7.tar.gz을 download한다. 2. 적당한 위치로 옮긴다. 3. 압축을 푼다.    tar xvfz glut-3.7.tar.gz    -> glut-3.7 디렉토리가 생김 4. cd glut3-7 5. ./mkmkfiles.imake 를 실행   

Read More Linux에서 Glut 설치법

OpenGL tearing problem

OS: Ubuntu (우분투) nVidia gtx 250 사용시에는 나타나지 않던 문제점이 nVidia gtx 470 사용시에 발생하였다. 삼각형 두개를 정확한 좌표로 맞물려 그렸는데 3D 카드가 이것을 레스터라이즈 할 때 오차가 발생해서 마지막 픽셀들이 조금 덜 채워지는 현상이며, 흔히 티어링(tearing)이 발생하였다고 말한다. (http://www.gpgstudy.com/forum/viewtopic.php?topic=6677)

Read More OpenGL tearing problem

Off-screen Rendering (Render to Texture) using OpenGL

((Preliminaries)) 1. download the most recent version of GLEW library at http://glew.sourceforge.net/ 2. copy *.h files to “C:\Program Files\Microsoft Visual Studio 8\VC\include\GL” 3. copy *.lib files to “C:\Program Files\Microsoft Visual Studio 8\VC\lib” 4. copy *.dll files to “C:\WINDOWS\system32” ((Source Code))

Read More Off-screen Rendering (Render to Texture) using OpenGL