공부 52

OpenGL ES를 이용한 3차원 컴퓨터 그래픽스 입문 Chapter 18 GPU 테썰레이션

프리미티브(primitive)GPU 파이프라인이 처리하는 기하적인 개체GPU 테썰레이션(tessellation)하나의 프리미티브를 여러 개의 작은 프리미티브로 잘게 나누는 것OpenGL ES 3.2부터 지원 시작이를 위해 테썰레이션 컨트롤 쉐이더(tessellation control shader, 이하 컨트롤 쉐이더로 약칭), 테썰레이션 생성 쉐이더(tessellation evaluation shader, 이하 생성 쉐이더로 약칭) 추가되었고, 두 쉐이더 사이에는 하드웨어로 고정된(hardwired) 단계인 테썰레이션 프리미티브 생성기(tessellation primitive generator, 이하 테썰레이터로 약칭)가 놓인다.18.1 변위 매핑노멀 매핑은 기초 표면(base surface) 자체를 오..

OpenGL ES를 이용한 3차원 컴퓨터 그래픽스 입문 Chapter 17 매개변수 곡선과 곡면

3차원 물체를 표현하는데 폴리곤 메시를 사용했다.폴리곤 메시는 부드러운 곡면을 '근사적으로' 표현한 것이다.부드러운 곡면을 '정확하게' 표현하기 위해서는 매개변수(parameter)의 함수를 사용한다.매개변수 곡면(parametric surface)은 CAD/CAM(computer-aided design and manufacturing) 분야에서 오래전부터 사용되었는데, 최근 GPU가 이를 지원하기 시작함에 따라 실시간 그래픽스 분야에서 새롭게 주목을 받게 되었다 매개변수 곡면을 표현하는 기법에는 여러 종류가 있는데, 가장 간단한 것이 베지어 곡면(Bézier surface)이다.이는 프랑스 르노 자동차에서 일했던 Pierre Bézier의 이름을 딴 것이다.베지어 곡면의 기본은 베지어 곡선(Bézier..

OpenGL ES를 이용한 3차원 컴퓨터 그래픽스 입문 Chapter 16 전역 조명과 텍스처

조명 모델은 다음과 같이 두 가지로 구분된다.지역 조명(local illumination)전역 조명(global illumination)퐁 모델은 지역 조명 모델인데, 조명 대상인 물체의 표면 재질과 광원의 속성만 이용해 해당 표면의 색상을 결정할 뿐, 같은 공간에 있는 다른 물체는 고려하지 않는다.(a)를 보면, 퐁 모델로 $S_2$를 라이팅 할 때, $S_1$은 전혀 고려되지 않는다.따라서 마치 $S_1$이 존재하지 않는 것처럼 $S_2$는 빛을 받는다. 퐁 모델은 물리학적으로 올바르지 않은 모델이다.(b)처럼 $S_2$가 전혀 빛을 받지 못하는 것으로 처리하는 것도 올바른 방법은 아니다.광원으로부터 나오는 빛이 $S_2$에는 직접 닿지 못해도, 공간 내 다른 물체에 반사되어 $S_2$로 들어올 수 ..

OpenGL ES를 이용한 3차원 컴퓨터 그래픽스 입문 Chapter 15 쉐도우 매핑

현실 세계의 거의 모든 장면에는 그림자가 있으므로 그림자 생성은 컴퓨터 그래픽에서 필수 불가결한 구성 요소다.또한 그림자는 장면에서 물체 간의 공간 관계를 이해하는 데 도움이 된다. 15.1 두 단계 렌더링쉐도우 매핑 알고리즘은 두 번의 렌더링 패스(rendering pass)를 통해 수행된다. 첫 번재 패스 - 실제 렌더링 이루어지지 않음광원의 시점에서 장면을 렌더링쉐도우맵(shadow map)이라는 특수한 텍스처 생성물체의 표면을 균일하게 샘플하여, 각 샘플점 $p$마다 광원가지의 거리인 $z$를 쉐도우맵에 저장광원에서 본 3차원 장면의 깊이를 저장하므로, 쉐도우맵을 광원 기준의 깊이맵(depth map)이라고도 한다.두 번째 패스 - 실제 렌더링쉐도우맵을 사용하여 그림자를 생성한다.카메라 위치로부터..

OpenGL ES를 이용한 3차원 컴퓨터 그래픽스 입문 Chapter 14 노멀 매핑

오돌토돌한 표면(Bumpy Surface) 실세계의 많은 물체는 오돌토돌한 표면을 지닌다.(a)는 천연석으로 포장된 보도 표면에 대한 폴리곤 메시다. (b)의 텍스처가 입혀져 (c)를 얻었다.(d)는 이를 가까이 본 것인데, 세 개의 점 $a$, $b$, $c$에서의 디퓨즈 반사를 보면, 이는 노멀 $n$과 빛 벡터 $l$에 의해 결정된다.b의 경우 $n$과 $l$사이의 각도가 작아서 빛을 많이 받는다. 따라서 밝게 보인다. 하지만, $a$와 $c$는 $n$과 $l$ 사이 각도가 커서 빛을 적게 받고 어두워 보인다.표면 전체에 걸쳐 노멀이 불규칙하게 변하므로, 표면 밝기도 불규칙하게 변해서 오돌토돌한 표면을 잘 표현해 준다.유일한 단점은 폴리곤 메시의 해상도가 너무 높아서 처리에 많은 시간이 소요되는 것..

OpenGL ES를 이용한 3차원 컴퓨터 그래픽스 입문 Chapter 13 캐릭터 애니메이션

13.1 캐릭터 골격과 공간 이전실시간 캐릭터 애니메이션을 위해서는 대체로 캐릭터의 골격(skeleton)을 이용한다.캐릭터의 골격은 뼈(bone)로 구성된 관절체(articulated body)이다.13.1.1 골격(Skeleton)(a) 캐릭터의 기본 자세를 드레스 포즈(dress pose)라 한다. 참고) 'default pose' 가 공식적인 이름이고, 드레스 포즈는 국내에서 많이 부른다.(b) 3ds Max에서 제공하는 바이페드(biped)라는 기본 골격이다. 참고) 3ds Max에서만 제공(c) 이는 편집가능하다. $\to$ 사진을 보면, 골격은 바이페드의 척추 뼈 네 개를 하나로 합쳤다.(d) 골격은 폴리곤 메시로 옮겨진다.(e) 캐릭터의 드레스 포즈에 맞게 수작업으로 맞춰진다. 각 정점은 ..

OpenGL ES를 이용한 3차원 컴퓨터 그래픽스 입문 Chapter 12 스크린 물체 조작

12.1 물체 선택  피킹(picking)터치스크린에서는 물체를 손가락으로 선택, PC 스크린에서는 마우스를 클릭하여 물체를 선택하는 것스크린에 렌더링된 영상은 픽셀의 2차원 배열이다. 피킹 시에 얻을 수 있는 정보는 스크린 상에서 손가락 또는 마우스로 선택한 점의 2차원 좌표 $\left(x_s, y_s \right)$ 뿐이다. 즉, 물체에 대한 정보는 없다. 12.1.1 스크린 공간 광선3차원 뷰포트는 왼쪽 아래 모퉁이 좌표 (minX, minY), 해상도 w x h, $z$범위 [minZ, maxZ]로 정의된다.위 사진의 뷰포트는  (minX, minY) = (0, 0), [minZ, maxZ] = [0, 1] 마우스 커서의 위치 $\left(x_s, x_y \right)$가 주어졌을 때, 시작점은..

OpenGL ES를 이용한 3차원 컴퓨터 그래픽스 입문 Chapter 11 오일러 변환 및 쿼터니언

물체가 회전하면 그 방향이 바뀐다.11. 1 오일러 변환오일러 변환(Euler transform)세 개의 주축 중심 회전을 결합한 것주축은 월드 공간에서 선택할 수 있고, 오브젝트 공간에서 선택할 수 있다.11.1.1 월드 공간 오일러 변환위 사진들은 월드 공간의 주축을 중심으로 회전한 것이다.오일러 각(Euler angles)세 축 중심의 회전각 $\theta_1$, $\theta_2$, $\theta_3$을 가리킴 오일러 변환은 순서를 다르게 하면 결과가 다르게 나온다. 11.1.2 오브젝트 공간 오일러 변환물체가 움직이면 그 오브젝트 공간도 같이 움직인다.월드 공간에서의 오일러 변환에 사용한 오일러 각을 오브젝트 공간에서의 오일러 변환에 사용하면 결과는 다르게 나온다. 왜냐하면 오브젝트 공간에서의 ..

OpenGL ES를 이용한 3차원 컴퓨터 그래픽스 입문 Chapter 10 출력 병합기

프래그먼트 색상은 뷰포트에 즉시 표시되지 않고 출력 병합기(output merger)에 전달되며, 출력 병합기는 세 종류의 버퍼를 관리한다. 이 세 종류의 버퍼를 합해서 프레임 버퍼라고 한다. 프레임 버퍼(frame buffer)GL에서는 다음 세 종류의 버퍼를 제공한다컬러 버퍼(color buffer): 스크린의 2차원 뷰포트에 나타날 픽셀 전체를 저장하는 메모리 공간깊이 버퍼(depth buffer): z-버퍼라고도 불리는데, 컬러 버퍼와 동일한 해상도를 가지며 현재 컬러 버퍼에 저장되어 있는 픽셀의 z값을 저장, 이 z값은 스크린 공간에서 정의된 3차원 뷰포트의 z범위에 속한다.스텐실 버퍼(stencil buffer): 컬러 버퍼와 깊이 버퍼 외에 추가적인 데이터 버퍼, 다양한 그래픽 효과를 구현하..

OpenGL ES를 이용한 3차원 컴퓨터 그래픽스 입문 Chapter 09 라이팅

라이팅(lighting 또는 illumination)빛과 물체 간 상호작용을 처리하는 기술9.1 퐁 모델광원(light source)점 광원(point light source)간단한 광원3차원 공간의 한 점으로부터 전방위로 빛이 발산되는 것점 광원으로부터 멀리 떨어진 물체일수록 빛을 덜 받게 되는데, 이는 빛이 물체까지 이동하는 동안 점차 희석되기 때문방향성 광원(directional light source)물체 표면의 여러 점에 입사하는 빛의 방향이 서로 평행한 것. ex) 태양물체 표면의 각 점들로부터 광원까지의 거리를 무시하고, 광원의 색상과 단일한 입사 방향만 고려하면 된다.BRDF(bidirectional reflectance distribution function, 양방향 반사율 분포 함수)물..