SniKuz
스니커즈 정리공간
SniKuz
  • 정리공간 (116)
    • 강의 (35)
      • OS (12)
      • 컴퓨터구조 (5)
      • 컴퓨터네트워크 (6)
      • 컴퓨터 그래픽스 (12)
    • 프로젝트 (8)
      • 애니메이션 스티커(Android) (1)
      • 2023GMTK (1)
      • OTT 게임 (2)
      • 3D MORPG (4)
    • Unity (3)
      • Memory (3)
    • 디자인패턴 (8)
    • 활동 정리 (4)
    • 알고리즘 (48)
    • 기타기록 (6)
      • 여행,음식 (4)
      • 잡다지식 (2)

블로그 메뉴

  • ✨ 깃허브

공지사항

인기 글

태그

  • programmers
  • 니
  • ISTQB

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
SniKuz

스니커즈 정리공간

Surfaces
강의/컴퓨터 그래픽스

Surfaces

2024. 3. 15. 16:08

목차

  • Surface
  • Surface Method used in geometric modeling
  • Curves to Surfaces(Bezier Surface)
  • Bezier Surface Derivatives

 

Surfaces

Parameterized Surface

연속 곡면(Surface) s ⊂ R³ 는 다음과 같은 매개화(parameterized)된 형태로 표현할 수 있습니다.

$$ X(u, v) = \begin{pmatrix}
x(u, v) \\
y(u, v) \\
z(u, v)
\end{pmatrix},(u,v)\in \Omega \subset R^{2} $$

x(u,v), y(u,v), z(u,v)는 미분 가능한 함수
Ω는 매개 변수의 정의역(parametric domain)
u, v는 매개변수의 좌표(coordinate)
u, v상 좌표를 x로 매핑해 곡면을 만듭니다.

 

- 구면 (Sphere Surface)

 

● 곡면의 특성

곡면의 한 점 X(u, v)에서 순간적인 v방향 기울기 ∂X / ∂  , u방향 기울기 ∂X / ∂u를 구하고 이 두개를 외적해서 나오는 새로운 벡터가 Surface에 순간적인 빛 반사 등 여러 곳에 많이 쓰인다고 합니다.

 

 

 

Surface method used in Geometric modeling

Bilinear Patch

b₀₀, b₀₁, b₁₀, b₁₁ 의 네 점으로 b₀₀, b₀₁을 선형 보간(p₀₀), b₁₀, b₁₁을 선형 보간(p₀₁) , 그렇게 만들어지는 p₀₀, p₀₁ 사이점을 선형보간 하면 생기는 곡면입니다.

X(u,v) = (1-u)(1-v) b₀₀ + (1-u) v b₀₁ + u(1-v) b₁₀ + uv b₁₁  { (u,v) : 0 ≤ u, v ≤ 1 }

$$ => X(u,v) = [1-u]\begin{bmatrix}
b_{00} &b_{01}  \\
b_{10} &b_{11}  \\
\end{bmatrix}\begin{bmatrix}
1-v \\
v
\end{bmatrix} $$

Bilinear Patch

Ruled Surface

두 곡선 a(t)와 b(t)가 있을 때 다음의 곡면을 생성합니다.
X(u,v) = v a(u) + (1-v) b(u)

a(u)와 b(u)가 만드는 곡선이 b₀₀, b₀₁, b₁₀, b₁₁ 네 점이 만드는 곡선과 같고 선형보간 되면 Bilinear Patch와 동일합니다.

Surface of Revolution (회전)

한 단면을 그리고 특정 지정 축으로 회전시켜 생성합니다. 모델링 툴에서도 자주 보이는 기능입니다.

B(t) = (Bx(t), 0, Bz(t)) 형태의 커브가 있고 Z축을 기준으로 회전시키면
x(u, v) = Bx(u)cos(v)
y(u, v) = Bx(u)sin(v)
z(u,v) = Bz(u)
수식이 됩니다.

Extrusion Surface

Extrusion(밀어내다, 분출, 돌출) 방식으로 평면 곡선을 선형적인 방향으로 돌출시킵니다.
평면 곡서늘 B(t), 돌출 방향을 V라 할때 X(u, v) = B(u) + vV 곡면을 생성합니다.

 

Curves to Surfaces

곡선(Curve)은 제어점과 basis function들의 내적으로 표현됩니다.(함수 + 제어점)

곡면(Surface)은 Curve 들의 Curve로 표현할 수 있습니다. 이렇게 만든 Surface는 tensor product surface라고 정의합니다.

Bezier Surface

● Bezier Curve 표현

● Bezier Surface 표현

● Bilinear Pacth와 관계 
Bilinear Patch는 가장 간단한 Bezier Surface이기도 합니다. 1X1 Bezier Surface

● m차 x n차 Bezier patch 표현

$$ S(u, v) = [B_{0}^{m}(u) \cdots  B_{m}^{m}(u)]\begin{bmatrix}
P_{0,0} &\cdots   &P_{0,n}  \\
 \vdots &  &\vdots  \\ 
P_{m,0} &\cdots   &P_{m,n}  \\
\end{bmatrix}
\begin{bmatrix}
B_{0}^{n}(v) \\
 \vdots \\
 B_{n}^{n}(v)\\
\end{bmatrix} $$

* 문제예시

● Bezier Patch 특성

 

 

Bezier Surface Derivatives

곡면의 미분(derivative) : 곡면 상의 한 점을 지나는 두 isocurve들의 접선

u - partial derivative at S(u₀,v₀) : S(u, v₀)의 접선 = Su(u,v) = ∂S(u,v) / ∂u
v - partial derivative at S(u₀,v₀) : S(u₀, v)의 접선 = Sv(u,v) = ∂S(u,v) / ∂v

위 문제 예시에서 Sv(0.5, 0.5)는?

더보기

● Surface Normal

저작자표시

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

Meshes  (0) 2024.04.02
Subdivision Curves and Surfaces  (0) 2024.04.01
Curve  (1) 2024.03.07
Viewing Transformation  (0) 2024.01.25
Geometric Transformation  (0) 2024.01.01
    '강의/컴퓨터 그래픽스' 카테고리의 다른 글
    • Meshes
    • Subdivision Curves and Surfaces
    • Curve
    • Viewing Transformation
    SniKuz
    SniKuz
    게임과 관련된 개발, 디자인 등등 + 일상공간

    티스토리툴바