3D 그래픽스 기초용어
3D 그래픽스에 대한 기초용어 정리
정점(Vertex)
공간 상의 ‘위치’(position)을 나타내는 것
일반적으로 여러 개가 모여 특정한 형태의 오브젝트를 구성하는 요소
폴리곤(Polygon)
3개의 정점이 모여 만들어진 하나의 면(Face)이자 삼각형
변(Edge)
폴리곤에서 정점과 정점을 연결하는 직선을 변 혹은 모서리라 한다
메시(Mesh)
폴리곤이 최소한 3차원 공간상의 ‘면’을 만들지만
사람들이 일반적으로 생각하는 복잡한 3D 물체를 표현하는데에는 1개의 폴리곤만으론 부족
그렇기에 여러 폴리곤을 모아 하나의 3차원 물체를 만들게 되는데 이것이 메시
=> 폴리곤이 모여 만들어진 3차원 공간 상의 객체라 생각
셰이딩(Shading)
폴리곤에 ‘음영’을 넣는 작업
폴리곤이 좌표값을 가진 정점으로 구성되므로
실제로 화면에 표시(Render)되기 위해서는 셰이딩 과정이 필요
(다양한 셰이딩 방식이 존재
ex : 플랫(flat),고로(gouraud),퐁(phong),광선추적(Raytracing) 등)
기법명 | 구현법 |
---|---|
플랫 | 면의 법선벡터와 조명벡터로 면의 밝기를 계산 |
고로 | 정점의 법선 벡터와 조명벡터로 정점의 밝기 계산 |
퐁 | 픽셀의 법선벡터와 조명벡터로 픽셀의 밝기 계산 |
텍스쳐(Texture)
3차원 정점만으로 화면에 물체를 나타내는 것은 많은 제약을 가지기에
물체를 섬세하게 표현하려면 매우 많은 정점이 필요하고
이것은 제한된 메모리를 가진 CPU 시스템에서 큰 문제가 된다
-> 따라서 3차원 물체에 2차원의 ‘이미지’를 입혀 더 다양한 표현을 가능하게 하는 것이 텍스쳐
이런식으로 3차원 정점에 2차원 이미지를 입히는 것을 맵핑(Mapping)한다고 함
3차원 물체에 텍스쳐를 입히는 걸 Texture Mapping 이라 한다
깊이 버퍼 (Z-Buffer)
화면에 그려질 하나하나의 픽셀에 대한 ‘깊이 값’을 보관하는 버퍼
World -> Camera -> Projection 과 같은 ‘좌표 변환’의 과정을 가지는
렌더링 파이프라인에서 최종적으로 공간 상의 모든 정점이
(-1,-1,0)~(1,1,1)로 변환된다
이 때, Z 값을 통해, 화면에 그려질 픽셀을 판단하여
겹치는 물체가 있을 때, 어떤 부분을 그릴지 선택할 수 있다
이러한 판별 외에도
DOF (Depth of Field)나, 모션 블러, 그림자 처리 등의 용도로 응용되어 사용된다
참고
- 3D 게임 프로그래밍 (개정판)
댓글남기기