포스트

[ Graphics ] 모델링

모델링


1. 모델 구성 요소

1) vertex array


폴리곤 매쉬는 그림과 같이 정점 배열(vertex array)로 표현 가능하며, 삼각형을 이루는 3개의 정점이 순서대로 나열되어야 한다.

정점 배열을 통한 삼각형 폴리곤 매쉬 표현



2) index array


정점 배열만으로 폴리곤 매쉬 표현 시, 정점 정보가 중복되어 저장된다. 정점 배열은 위치 정보(position) 뿐 아니라 노말(normal), 텍스처 좌표(texture coordinates) 등을 포함하므로, 인덱스 배열(index array)를 사용하여 중복된 정점 정보를 제거한다.

정점 배열과 인덱스 배열을 통한 삼각형 폴리곤 매쉬 표현


3) surface normal


삼각형의 suface normal은 $v_1$ * $v_2$로 정의되며 오른손의 법칙(right-hand rule)을 따른다.

P1,P2,P3 삼각형의 suface normal



삼각형의 순서에 따라 노말이 계산되므로, 삼각형의 정점은 항상 반시계 방향으로 정렬된다.

*P1,P3,P2 삼각형의 suface normal*


4) vertex normal


하나의 정점을 공유하는 모든 삼각형들의 surface normal의 평균을 통해 정점 노멀(Vertex normal)을 계산, 조명에 사용한다.

surface normal의 평균을 통해 vertex normal 계산



2. 모델 구조


모델은 position과 normal, index array 등으로 이루어진다.

모델 구조



파일 형식에 따라 다른 구조를 가지며, 데이터를 읽어오는 과정, 임포트(import)를 통해 정점이 입력된다.

model.obj


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# model.msh

# 점의 개수
$Vertex           6  
# 면의 개수  
$Faces            2   
# 점번호 x y z 
Vertex         1   0 0 0  
Vertex         2   639 479 0
Vertex         3   0 479 0
Vertex         4   300.5 70.4 0 
Vertex         5   500.8 50.5 0
Vertex         6   400.8 450.1 0
# 면번호 r g b “점의 개수” “면을 이루는 점들”(점의 개수는 유동적)..
Face 1 255 0 0 4 4 5 6 1
Face 2 0 0 255 3 1 2 3 



출처: OpenGL ES를 이용한 3차원 컴퓨터 그래픽스 입문

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.