SniKuz 2024. 3. 7. 21:48

목차

 

3D 오브젝트 모델링

● 3D 월드 표현의 종류

1. Wire-frame representations : 도형 화상 처리에서의 물체 표현 방법 중 하나로 다면체의 꼭짓점, 모서리 선에 의해 기술한 도형 모형입니다. 물체를 점과 점들을 연결하는 선들로 이루어진 그래프로 표현합니다.
실시간 / 빠른 디스플레이에 적합하며 면 표현이 불가능해 물체의 형태가 애매하게 보일 수 있습니다.

2. Boundary representations : 경계 표현은 볼륨의 한계를 정의해 3D 모양을 표현하는 방법입니다. 대표적으로 Meshes & Subdivision이 있습니다. Mesh표현을 삼각형, 사각형과 같은 기본 도형에 형태로 표현합니다.

3. Voluimetric Representations :  부피 표현으로 대표적으로 복셀이 있습니다. 복셀이란 3차원 공간을 같은 크기를 가진 박스들로 나눠 물체 안을 채우는 박스들의 집합ㅇ으로 표현합니다. Imaging application (CT, MRI, UItrasound)와 같이 층별로 쌓이는 분야에 많이 쓰입니다. 
재귀적으로 생성하며 표현이 간단하고 집합 연산, in/out 테스트가 쉬운 장점이 있으나 많은 메모리와 부드러운 표면 표현이 어려운 단점이 있습니다.

4. Constructive Solid Geometry : 구조적 입체기하학은 수학적으로 정의할 수 있는 간단한 volume object(박스, 구, 실린더 등) 들로부터 시작해 집합 연산으로 복잡한 물체를 표현하는 방식입니다.

 

 

Curve

● 정의와 표현

- Curve 정의
1. n-차원에서 연속적인 점들의 집합
2. 1-차원에서 n-차원으로 mapping되는 연속함수

-  Curve를 표현하는 방법
1. Explicit form : x와 y의 관계를 y = f(x)의 함수 형태로 표현하며 x의 값이 주어지면 y를 직접적으로 계산할 수 있습니다.
2. Implicit form : x와 y의 관계를 나타내는 방정식으로 표현합니다. f(x, y) = 0
3. Parametric form : 매개변수 t를 이용해서 x와 y를 t의 식으로 표현합니다. f(t) = (x(t), y(t))
4. Generative/procedural form : 수식이 아닌 procedure로 곡선을 정의합니다 (ex. subdivision schemes, fractals)

- 표현 방법들 사이 변환 관계

커브 기초 설명

- Spline Representation : 수학에서 Spline은 다항식에 의해 조각별로 구간에 따라 정의되는 함수로, 그래픽스에서는 조각별 다항식 곡선을 의미합니다. 곡선을 basis functions(기저함수) + coefficients(계수)의 집합으로 표현 제어합니다. Coefficient들은 기하적 의미를 가져야 합니다.

- Curve Local properties : 곡선 위의 한 점을 중심으로 지역적으로만 적용되는 특성로 특정 점에서의 위치, 방향, 곡률, 연속성 등이 있습니다. (미분기하)

- Curve Global properties : 곡선의 전체 형태를 보고 판단할 수 있는 특성들로 닫힌 곡선, 열린 곡선, 자가 교차 여부 등이 있습니다.

- Mathematical Continuity : 곡선의 수학적 연속성을 뜻하며 표기를 C-1, C0, C1과 같은 형태로 표시합니다. C-1은 불연속이며 C0는 연속, Ck는 k차 미분까지 연속성을 띈다는 뜻으로 쓰입니다.
사진

- Geometric Continuity : 기하적 연속성은 수학적 연속성보다 완화된 조건에 연속성입니다. 수학적 n차 연속성은 도함수 접선 방향, 크기 모두 동일해야 하는 강한 조건이지만 기하적 연속성은 도함수의 접선 방향만 동일하면 되는 연속성을 뜻합니다.

 

Polynomial Base Curve

다항함수 기반 커브로 기하학적 의미를 갖는 coefficient를 추구하는 커브입니다. 계산/분석에 용이하고, k-derivative가 모두 다항함수 기반 커브입니다. (Bezier, B-Spline, Hermite, Lagrange)

● Cubic Hermite Basis

3차 Polynomial 함수를 기하학적인 의미를 가진 basis들을 이용하여 표현한 Spline입니다.
곡선의 양 끝점의 위치 P0, P1와 끝점의 tangent vector(1차 도함수) V0, V1 4가지를 이용해 4가지가 모두 만족하는 곡선은 고유합니다.

수식
Hermite 곡선

 

Bezier Spline

Bezier Curve는 주어진 Control polygon (polyline)을 근사하는 (approximation) polynomial 곡선입니다.
degree = n인 베지에 곡선은 n+1개의 control point들로 구성됩니다. 

$$ n Bezier Curve = [(1-t) + t]^{n} $$

n차 베지에 곡선은 위와 같이 n차 완전 제곱식에 각 항마다 Control point(제어점 : P0, P1, P2 ... Pn)을 곱한 형태로 표현되며 계수는 이항계수를 따릅니다. n차 베지에 곡선에 미분은 Control point가 변경되 계수에 n이 곱해진 n-1차 베지에 곡선입니다.

3차 미분 → 2차 베지에 곡선

De Casteljau Construction : 베지에 곡선 또는 번스타인 다항식을 평가하는 재귀적 방법이라고 합니다. 좀 더 쉽게 생각하면 선형 보간을 재귀적으로 진행한 것입니다. 아래 그림에 경우 3차 베지에 곡선에 드 카스텔조 알고리즘이 적용된 것으로 각 선에 1/3 위치로 보간되어 있습니다.

드카스텔조 알고리즘

- 베지에 곡선은 번스타인 다항식들의 선형 결합으로 정의되며, 베지에 곡선은 Control point들의 아핀 결합입니다.
아핀 결합 : 선형 결합 + coefficient 들의 합이 1 (각 라인 합)

실제 그려지는 곡

-단점 : Control point 수가 증가하면 polynomial degree도 같이 증가하며 하나의 Control point가 변화해도 모든 곡선의 형태가 변합니다. 또한 Control point 수가 많을 경우 만들어지는 곡선이 실제 control point에서 멀어집니다.
Conics(원추형 : circle, ellipse, parabola, hyperbola)을 정확하게 표현할 수 없어 Rational Bezier curve와 같이 분수꼴로 weight를 줘서 해결하는 방식을 사용합니다.

● B-Spline Curve

특정 곡선에 조금만 바꾸고 싶은 경우 제어점을 바꾸면 곡선의 전체가 영향을 받는 문제점을 해결합니다.
B-Spline은 knot라는 섹션으로 구분해 각 구간별로 별도의 다항식으로 표현되며 제어점을 바꿔도 해당 knot만 영향을 받습니다.

uniform knots : knot들의 간격이 일정한 경우이며 그런 B-Spline을 Uniform B-Spline이라 합니다.

● Parametric Curve 만드는 방법

1. Interpolating Curve : 곡선이 Control points를 통과하는 곡선으로 Hermite, Bezier 가 있습니다.

2. Approximating Curve : 부드러운 곡선을 만들기 위해 곡선이 Control points를 통과하지 않을 수도 있습니다. B-Spline