3차원 그래픽스/Mapping
-
Chapter 9.6 Displacement mapping3차원 그래픽스/Mapping 2018. 6. 11. 16:35
이 문서는 개인 공부용으로 쓰였습니다.- 게임 프로그래밍을 위한 3차원 그래픽스 (한정현) Chapter 9.6 Displacement mapping 0. 정의 - 변위 매핑은 런타임에 매크로구조를 테쎌레이션하고 그 결과 얻어진 정점의 위치를 하이트맵을 사용해 실제로 옮긴다.- 쉐이더 모델 5에서 테쎌레이션을 하드웨어로 지원함에 따라 변위 매핑은 실시간에 구현 가능한 알고리즘이 되었다. 1. 문제점 - 적절한 테쎌레이션 인자를 결정하는 것- 과도한 테쎌레이션된 매크로구조가 화면에서 아주 작은 영역만 차지하는경우 - 비효율성 실제 화면에 차지할 영역을 고려하여 테쎌레이션 인자를 결정하여야 한다. 사전에 변위 매핑을 수행한 부분이 가시권 밖에 놓이지 안헤 가시성을 계산하는 것이 필요하다.
-
Chapter 9.5 Parallax mapping3차원 그래픽스/Mapping 2018. 6. 11. 15:56
이 문서는 개인 공부용으로 쓰였습니다.- 게임 프로그래밍을 위한 3차원 그래픽스 (한정현) Chapter 9.5 Parallax mapping 0. 정의 - 광선 추적법을 사용하여 시차 현상을 생성한다.- 다른 이름으로는 Virtual Displacement mapping이다. 1. 과정- 하이트 필드와 시선 벡터 V의 교차점을 이용하여, V의 역방향으로 광선을 발사하고 이를 추적한다. 광선이 일정한 간격으로 샘플링이 되면 각각의 점들을 방문하며, 그 점이 하이트 필드 위에 있는지 검사한다. 점이 발견되면, 그 전의 점 하이트 필드의 값과 현재 점의 하이트 필드의 값 차이를 구한다. 대개의 경우 일치하지 않기에 오차를 극복하기 위하여 새로운 점을 선택하여 다시 검사하게 된다. 2. 사용- 노멀 매핑과는 ..
-
Chapter 9.4 Object space Normal mapping3차원 그래픽스/Mapping 2018. 6. 9. 14:10
이 문서는 개인 공부용으로 쓰였습니다.- 게임 프로그래밍을 위한 3차원 그래픽스 (한정현) Chapter 9.4 Object space Normal mapping 0. 정의 - 오브젝트 좌표계 상에서의 노말을 저장함 1. 노멀맵 제작 - 저해상도 모델을 매크로구조로 이용하여, 파라미터화를 적용 시켜 모든 정점에 대해 정규화된 텍스처 좌표를 구한다. - 해상도에 맞는 노멀맵의 새 텍스처 좌표를 정의한다. - 매크로구조의 삼각형은 래스터화되어 다수의 텍셀을 포함하고, 각 정점에는 노멀 정보를 저장하고 있다. - 노멀을 저장한 텍스처 오브젝트 공간 노멀맵 2. 오브젝트 공간의 노멀 -> 탄젠트 공간으로 - 삼각형의 각 정점에 대해 탄젠트 공간의 기저 {T, B, N}을 계산 - 무게중심 좌표를 사용하여 정점별..
-
Chapter 9.3 Tangent space Normal mapping3차원 그래픽스/Mapping 2018. 6. 8. 21:13
이 문서는 개인 공부용으로 쓰였습니다.- 게임 프로그래밍을 위한 3차원 그래픽스 (한정현) Chapter 9.3 Tangent space Normal mapping 0. 정의 - 텍스처링은 텍스처를 물체의 표면에 펴 바르는 작업이므로 2차원 평면에서 탄젠트 공간의 정보를 갖는다는 의미를 갖고 있다. 즉, 노멀맵의 노멀 각각은 그 노멀이 적용될 표면 점의 탄젠트 공간에서 정의 된 것이다. 1. 탄젠트 공간 - 물체의 표면을 기준으로 법선 벡터 방향을 Z축으로 놓는 공간. * T : Tangent vector(접선 벡터) * B : Bitangent vector(종법선 벡터) * N : Normal vector(법선 벡터) 폴리곤 메쉬의 표면 노멀은 일반적으로 모델링 단게에서 정점별로 계산된다.탄젠트 공간 ..
-
Chapter 9.2 Normal Mapping3차원 그래픽스/Mapping 2018. 6. 7. 23:01
이 문서는 개인 공부용으로 쓰였습니다.- 게임 프로그래밍을 위한 3차원 그래픽스 (한정현) Chapter 9.2 Normal mapping 0. 정의 - 눈속임의 기술인 노멀 맵핑은 법선 벡터의 값을 사용하여 입체감 및 질감을 구현하는 방법. 노멀맵은 RGB 색상 대신 노멀 벡터를 저장하고 있는 텍스처를 말한다. 1. 노멀맵 - 노멀을 계산하기 위해서는 편미분 식이 필요한데, (x, y)에 인접한 네 개의 좌표{(x + 1, y), (x - 1, y), (x, y + 1), (x, y - 1)} 의 높이 값을 이용해 계산한다. 계산된 노멀은 하이트 필드 표면의 바깥쪽을 가리킨다.각 텍셀에 색상 대신 노멀이 저장된 노멀맵의 개념, 일반적으로 노멀맵은 하이트맵과 동일한 해상도를 갖는다. RGB 각 채널을 8..
-
Chapter 9.1 Height field3차원 그래픽스/Mapping 2018. 6. 6. 17:44
이 문서는 개인 공부용으로 쓰였습니다.- 게임 프로그래밍을 위한 3차원 그래픽스 (한정현) Chapter 9.1 Height field 0. 정의 - 높이로만 표현되는 맵 - 2차원 좌표 (x, y)가 주어졌을 때 높이 혹은 z값을 반환. 1. 사용하는 이유 - 일정 영역을 제한해서 보여주기 때문에 속도 향상에 이점이 있다. - 해당 좌표에 따라 타일의 높이를 알 수 있기 때문에 빠르게 충돌 체크를 수행 할 수 있다. - 범프 매핑의 특징인 데이터의 크기가 작다. 2. 범프 매핑 기법 3가지 (하이트맵의 처리 차이) 2.1 노멀 매핑 : 전처리 단계에서 하이트맵을 사용하여 노멀맵(normal map)을 생성 2.2 패럴랙스 매핑 : 런타임에 하이트맵에 대해 간단한 광성 추적 알고리즘을 수행하여 노멀 매핑..
-
Chapter 9.0 Bump mapping3차원 그래픽스/Mapping 2018. 6. 6. 17:08
이 문서는 개인 공부용으로 쓰였습니다.- 게임 프로그래밍을 위한 3차원 그래픽스 (한정현) Chapter 9.0 Bump mapping 0. 정의 - 저해상도 메쉬를 채택하되, 고해상도 메쉬의 특징을 텍스처에 저장하여 이를 런타임에 이용하는데, 이러한 기법에서 저해상도 메쉬는 매크로구조(macrostructure)라고 부르며, 이는 렌더링 과정에서 텍스처와 결합되어 오돌토돌한 특징을 보이게 된다. 이러한 텍스처링 기법을 범프 매핑이라 부른다. 1. 사용하는 이유 - 고해상도의 폴리곤 메쉬를 이용하면 렌더링 결과는 매우 사실적으로 표현 될 수 있다. 하지만 인덱스/정점 버퍼의 크기가 커지고 정점 처리에 많은 시간이 소요되는 문제점을 갖고있다. 그렇기에 텍스처링 기법을 이용하여 유사한 렌더링 결과를 가질 수..