[컴퓨터 그래픽스] 3D Object Modeling

딱지의겨울

·

2021. 4. 11. 14:35

Space Subdivision

- 공간을 어떻게 나누어서 사용하고 있는지
- Quadtree: 2차원 공간을 나눔
- Octree: 3차원 공간을 나눔.
- 두 방법 다 사각형, 육면체라는 제한적인 공간 안에서 나눔

 

Quadtree: 2차원

- 어디에 어떤 물체가 있는 지 빠르게 파악하기 위해 Cell을 나눔.
- 언제까지? 한 cell 안에 하나의 물체가 올 때까지.

- 구현하는 방법: 배열 (항상 children이 4개니까)

- Ray Tracing: 어떤 직선에 물체가 만나는 지 안 만나는지 계산. 최소한의 픽셀 개수 만큼 연산할 수 있음. 만나지 않는 부분을 빠르게 거를 수 있음.

ray tracing

Octree: 3차원

- 공간 안에 여러 개의 물체가 있을 때 물체 가 어떤 식으로 배치되어 있는지 파악하기 위한 기법

- 어떤 물체 모양을 나타내기 위해 사용하기도: Cell이 물체 안 에 속하는가 아닌가.

 

 

- Bounding Box

- Quadtree, Octree가 적합하지 않을 때: Few Objects, High Polygon Count. Tree 생성할 때 depth가 균일한 게 좋음.

BSP Trees

- 직선과 방향으로 구분(ex) aX + bY + c
- 0일 때: 직선 위, 양수: 직선의 위 방 향, 음수: 아래 방향
- Binary Tree: left, right를 선분의 화살표 방향에 따라 나눔.

- Representation of Polygons

- Partitioning Plane

가능하면 직선이 물체를 통과하지 않게 나누는 방법? 정확한 연산은아니고 빨리 연산을 하기 위해 쓰는 방법.

어떤 점을 기준으로 가까운 순서대로 그룹화.

Voxel Objects

- Volume 에서 pixel 역할.
- 그래픽스 파이프라인에서는 폴리 건을 구현하게 되어 있는데 voxel 안의 데이터를 어떻게 구현 할 지 고민 해봐야 함. Voxel 하나를 square처럼 취급하는 등..

Implicit Surface

- f(P): 어떤 점에서 밝기를 나타내는 함수라면 10에 해당하는 점들을 이은 형태.

- 장점: 단계적으로 어떤 surface에 속하는지 정의를 할 수 있음.(ex)f1 (p)+f2(p)=Q 형태가 합쳐지기도.

 

- 촛불의 위치를 점점 이동시키면 식이 달라짐. 

 

 

'CS > 컴퓨터 그래픽스' 카테고리의 다른 글

[컴퓨터 그래픽스] Rasterization  (0) 2021.04.11