연속성

취미수준이지만 개인적으로 디자인만 할때는 라이노를, 기구 설계나 리버스 엔지니어링을 할때는 UG-NX를 이용하는데, 예전에 한동안은 브라우저 수준의 분자 모델링을 시도해보고 싶어, three.js를 사용해보다가(대폭망) 쓸데없이 WebGl, OpenGl을 공부하기도 하고;;;, 대학때 보던 선형대수까지 다시 보면서 그래픽스를 공부했던 적이 있는데, 잠시 기억을 소환해 보자.

모델링을 하다보면, G연속성(geometric continuity)에 대한 욥션을 맞춰주어야 하는데, 여기에 대해서 한번 다루고,나중에 기회가 되면, 넙스를 포함한 스플라인 곡선들에 대해 다시 한번 다뤄 볼까 한다.

우선 곡선들의 특성을 미리 살펴보면 라이노가 밀고 있는 넙스가 가장 발전된 형태의 곡선이라는 것을 알수 있다.

HermiteBezierirrational B-splineNURBS
연속성G0, G1, C1G0, G1, C1G0, G1, C1 , G2, C2G0, G1, C1 , G2, C2
국부 제어N/AXOO
아핀 불변성OOOO
원근투영 불변성XXXO
원뿔곡선 재현XXXO

Gn 연속성은 Gn-1 연속성을 만족한다.
G0연속성은 두곡선의 끝점이 일치하는 것이고, G1연속성은 연결점에서의 접선 방향이 같다(The curves also share a common tangent direction at the join point). G2에서는 곡률 중심까지 같아지게 된다(The curves also share a common center of curvature at the join point). 즉, n차 미분의 비례를 고려하는 것이다(방향).

자동차 표면에 광원을 비췄을때, 부드럽게 나오는 얼룩말 무늬는 보통 G2정도이다(reflections in a car body will not appear smooth unless the body has G2 continuity).

( wikipedia https://en.wikipedia.org/wiki/Smoothness#Geometric_continuity 인용)

스플라인 곡선은 매개변수 다항식으로 정의되기 때문에, 때로는 기학학적 연속성뿐만 아니라 일정하게 변하는 매개변수를 시간으로 보아 곡선 연결부분의 상대속도를 고려하는 경우가 있다.
이것은 곡선의 궤적을 따라 이동하는 물체가 급격히 움직이느냐 부드럽게 움직이는냐를 결정하는데, 이것이 C연속성(매개변수 연속성-parametric continuity)이다.
일단 Cn 연속성을 만족하면 Gn 연속성도 만족한다.
연결점에서 C1 연속성은 1차미분, C2 연속성은 C1 연속성을 만족하면서 2차미분값이 같은데, 이것은 연결점에서,
C1의 경우는 1차 도함수가 연속 C2의 경우는 1차, 2차 도함수 모두가 연속이라는 뜻이다(Cn: First through nth derivatives are continuous).

C1 연속성을 만족한다면 곡선 경계에서 갑자기 속도가 변화되지 안흔 부드러운 움직임을 만들 수 있지만(G1은 일차미분값이 다를 수 있어 속도가 갑자기 변할 수 있다.) 가속도의 급격한 변화가 발생할 수 있고, 가령 쵤영하는 카메라의 움직임처럼 C2연속성은 더 부드러운 이동을 하게 해준다.(As an example of a practical application of this concept, a curve describing the motion of an object with a parameter of time, must have C1 continuity for the object to have finite acceleration. For smoother motion, such as that of a camera's path while making a film, higher orders of parametric continuity are required.)

H2
H3
H4
3 columns
2 columns
1 column
Join the conversation now