컴퓨터 그래픽스는 영화나 게임에서 실제 세상보다 과장하여 표현하여 몰입감을 증가시킨다.

 

Geometric Modeling Methods

1. Constructive Solid Geometry

합집합, 차집합, 교집합을 이용한 방식 -> CAD/CAM(캐드)에서 자주 사용

장점 : function을 이용하여 모델을 구현할 수 있다.

-> 2가지 모델을 합치는 경우에도 각각의 함수를 합치는 방식으로 구현한다. 함수1+함수2 => 함수3

 

2. Bezier Curved Surface

- 1차 Bezier Curves => 직선

- 2차 Bezier Curves => 곡선

- 3차 Bezier Curves => 매끄러운 곡선을 그리기 우히ㅏㄴ 방식

 

3. Simplification Surfaces(간략화) -> 삼각형의 개수를 줄인다(로우 폴리곤화)

4. Subdivision Surfaces(분할화) -> 삼각형의 개수를 늘린다(고품질화)

 

Geometry Processing

1. Mesh upsampling (or subdivision)

원본이랑 비슷한지 수학적으로 말할 수 있는 근거 -> 미분을 2번해도 연속성을 유지한다.

 

Loop Subdivision

- Approximation(근사값)이어야한다. interpolation(평균)이 아니다.

- 삼각형 1개를 정삼각형 4개로 나눈다. (변의 중간에 버틱스를 추가하여 나눔)

-> 원본 형태를 유지하면서 부드럽게 만들기 위함

- 가중치를 다르게 주는 것이 중요하다. (가중치는 합이 무조건 1이 되어야 한다.)

 

삼각형을 구성할 때 항상 새로 생긴 버틱스끼리만 연결한다.(split 시켰을 경우)

edge가 연결이 됐을 경우 old 버틱스와 연결이 되었는지를 확인해서 연결된 경우 flip을 이용해 처리한다.

 

catmull-clark 알고리즘

-> quad 모델에서의 알고리즘

1. 사각형 안에서 각 모서리의 vector 값을 평균 내 사각형의 중간을 잡는다.

2. 두 사각형의 f값과 모서리를 가지고 중간 점을 구한다.

-> 한 점과 연결된 선이 4개여야만 사용이 가능하다.

-> 미분을 두 번 하더라고 연속성 유지 가능

 

날카롭게 보이는 부분에 대해서는 가중치를 수정하는 방식으로 표현한다.

 

2. Mesh downsampling (or simplification) -> 최대한 외형 유지

Mesh Decimation(삼각형 개수 줄이기) -> 저사양 PC를 위한 방식

1. Vertex decimation -> 퀄리티가 떨어지기에 많이 사용하지 않음

- 버틱스를 지우는 방식

 

2. Edge decimation -> 가장 추천하는 방식

- 엣지를 삭제하는 방식

 

거리에따른 simplification을 이용한 방식으로 최적화하는 방식을 가장 많이 사용한다.

목표 : 원본 형태를 유지하면서 최대한 삼각형 줄이기

 

Greedy algorithm -> 특정 문제에 대하여 optimal solution을 구하기 위해 사용되는 알고리즘

 

3. Mesh regularization -> 삼각형을 최대한 정삼각형으로 만들어주는 기술(삼각형의 연속성을 위하여)

삼각형의 두 점을 기준으로 원을 그리고 나머지 한 점이 원에 내접하면 정삼각형에 가깝다.

확률적으로 6개의 삼각형이 연결되면 안정적이다. 5개까지는 가능하지만 3개정도로 되면 모양이 무너질수있다.

->스무딩을 사용했을 경우 모양이 이상해진다. 최대한 정삼각형을 유지하는것이 좋다.

Isotropic remeshing -> 등방성형태로 remeshing

-> Edge flips를 이용하면 좋다. -> 근처 연결된 삼각형이 6개 이상이면 flip

-> 그 후 각 삼각형의 중앙으로 선을 옮겨주면 정삼각형 형태가 된다.

Isotropic remeshing algorithm

-> 길이가 3/4보다 길면 분리한다

-> 기리가 3/4보다 작으면 지운다.

'학교수업' 카테고리의 다른 글

윈도우즈 프로그래밍 3주차  (0) 2022.03.17
UNIX서버 2주차  (0) 2022.03.16
게임공학개론 2주차  (0) 2022.03.16
인공지능개론 2주차  (0) 2022.03.14
컴퓨터구조 2주차  (0) 2022.03.13

+ Recent posts