NURBS란?

2017.05.16 21:05

졸리운_곰 조회 수:79

 

NURBS란?

NURBS (Non-Uniform Rational B-Splines: 비균일 유리 B스플라인)는 간단한 2D의 선, 원, 호, 상자에서 복잡한 3D 자유 형식의 유기적 서피스와 솔리드에 이르기까지 어떠한 형태도 정확하게 표현할 수 있는 수학적 표현 방법입니다. NURBS 모델은 그 유연성과 정확성으로 인해, 일러스트레이션과 애니메이션에서 제조에 이르기까지, 어떠한 과정에도 사용할 수 있습니다.

NURBS 지오메트리가 컴퓨터 지원 모델링에 최적인 이유로는 다음의 5가지를 들 수 있습니다.

  • NURBS 지오메트리를 교환하는 방법으로는 몇몇의 업계 표준이 사용되고 있습니다. 이것은 사용자의 중요한 기하학적 모델을 다양한 모델링, 렌더링, 애니메이션, 공학 분석 소프트웨어간에 이동할 수 있음을 뜻합니다. 이러한 소프트웨어는 기하학적 정보를 미래에도 사용할 수 있는 방법으로 저장할 수 있습니다.
  • NURBS에는 정확한 정의가 있으며, 그 정의 방법은 많이 알려져 있습니다. NURBS 지오메트리의 수학과 이에 대한 컴퓨터 과학은 대부분의 주요한 대학에서 가르치고 있습니다. 이것은 커스텀 응용 프로그램을 만들 필요가 있는 전문적인 소프트웨어의 판매자, 공학팀, 산업 디자인 사무소, 애니메이션 제작 회사 등은 NURBS 지오메트리에 정통한 프로그래머를 쉽게 발견할 수 있습니다.
  • NURBS는 선, 원, 타원, 구, 원환 등의 표준 기하학 개체에서 자동차, 인체와 같은 자유로운 형태를 가진(free-form) 기하학적 구조까지 정확하게 표현할 수 있습니다.
  • 패싯으로 개체의 근사치를 표현하는 일반적인 방법보다, NURBS로 표현하는 방법이 훨씬 소량의 정보로 1개 분량의 지오메트리를 표현할 수 있습니다.
  • 다음의 NURBS 평가 공식은 컴퓨터에서 효율적이며 정확하게 실행될 수 있습니다.

NURBS 지오메트리란?

NURBS 커브와 서피스는 조작이 유사하고, 공통적인 용어가 사용됩니다. 커브가 가장 설명하기 쉬우므로, 여기에서는 커브를 예로 들어 자세히 설명하겠습니다. NURBS 커브는 차수, 제어점, 매듭점, 평가 공식으로 정의됩니다.

차수

차수(degree)는 양의 정수로 나타냅니다.

이 숫자는 보통 1, 2, 3, 또는 5이며, 어떤 양의 정수도 될 수도 있습니다. NURBS 선과 폴리라인은 일반적으로 차수 1, NURBS 원은 차수 2, 그리고 자유 형식(Free-Form) 커브의 대부분은 차수 3 또는 5입니다. 경우에 따라 1차(linear), 2차(quadratic), 3차(cubic), 5차(quintic)라는 용어가 사용되기도 합니다. 1차의 차수는 1, 2차의 차수는 2, 3차의 차수는 3, 5차의 차수는 5입니다.

NURBS 커브에 대한 논문 중에는 계수(order)에 대하여 설명하고 있는 것도 있습니다. NURBS 커브의 계수 는 양의 정수로, (차수+1)과 같습니다. 마찬가지로 차수는 (계수-1)입니다.

NURBS 커브의 형태를 유지하면서 차수를 증가시킬 수 있습니다. 그러나 일반적으로 형태를 변경하지 않고 NURBS 커브의 차수를 감소시킬 수는 없습니다.

제어점

제어점(control point)은 최소 (차수+1)개수의 점의 목록입니다.

NURBS 커브의 형태를 변경하는 가장 간단한 방법 중 하나는 제어점을 움직이는 것입니다.

제어점에는 웨이트(무게:weight)라고 불리는 수치가 붙어 있습니다. 일부 예외를 제외하면 웨이트는 양의 정수입니다. 커브 제어점의 무게가 모두 같은 경우(일반적으로 1), 커브는 비유리(non-rational)로 불립니다. 그렇지 않은 경우에는 유리(rational)라고 합니다. NURBS의 R은 rational(유리)을 뜻하며 NURBS 커브가 유리화 될 가능성이 있음을 뜻합니다. 실제로 대부분의 NURBS 커브는 비유리 커브입니다. 호, 원, 타원과 같은 일부 커브는 언제나 유리 커브입니다.

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com

매듭점

매듭점(knots) 은 숫자가 (차수+N-1)인 목록입니다. 이 때 N은 제어점의 개수입니다. 이 숫자의 목록을 매듭점 벡터(knot vector)라고 하는 경우도 있으나, 이 경우의 벡터는 3차원 공간 안의 방향을 뜻하지 않습니다.

매듭점 숫자의 목록은 몇 가지 기술적인 조건을 만족시켜야 합니다. 이 기술적인 조건을 만족시키는 표준 방법은, 매듭점의 목록에서 아래로 내려갈수록 각 숫자가 전의 숫자와 동일하거나 커지도록 할 것, 그리고 중복된 매듭점의 수가 차수의 수를 넘지 않게 하는 것입니다. 예를 들면 차수가 3이고, 11개의 제어점이 있는 NURBS 커브의 경우, 0,0,0,1,2,2,2,3,7,7,9,9,9 는 만족할 만한 매듭점 목록입니다. 그러나 0,0,0,1,2,2,2,2,7,7,9,9,9의 목록에는 2가 4개 있어, 숫자 4가 차수보다 크기 때문에 받아들일 수 없습니다.

매듭점 값이 여러 차례 중복되어 있는 것을 매듭점의 다중도(multiplicity)라고 합니다. 앞의 만족할만한 목록의 예에서는 매듭점 값 0은 다중도가 1, 매듭점 값1은 다중도가 9, 매듭점 값2는 다중도 3, 매듭점 값3은 다중도가 0, 그리고 매듭점 값 7는 다중도가 3입니다. 매듭점이 차수의 수만큼만 중복되어 있는 예에서는 매듭점 값은 완전 다중도 매듭점(a full-multiplicity knot)이라고 합니다. 앞의 예에서 매듭점 값 9, 2, 2는 완전 다중입니다. 중복되지 않은 매듭점 값은 단순 매듭점(simple knot) 이라고 합니다. 앞의 예에서는 매듭점 값1과 3은 단순 매듭점입니다.

매듭점 목록이 완전 다중 매듭점으로 시작하여 그 후 단순 매듭점이 계속되고 다시 완전 다중 매듭점으로 끝나고, 또한 이러한 매듭점 값의 증가치가 일정한 경우, 이러한 매듭점을 균일하다고 합니다. 예를 들면, 차수 3으로 7개의 제어점이 있는 NURBS 커브에 0,0,0,1,2,3,4,4,4의 매듭점이 있다고 한다면, 이 경우의 매듭점은 균일합니다. 목록이 0,0,0,1,2,5,6,6,6의 경우는 그 매듭점은 균일하지 않습니다.균일하지 않은 매듭점은 비균일(non uniform)이라고 합니다. NURBS의 N과 U는 non-uniform(비균일)을 말하는 것으로 NURBS 커브의 매듭점은 비균일이 될 수 있는 것을 의미합니다.

매듭점 목록 안의 매듭점 값이 중복된 경우, NURBS 커브는 덜 매끄럽습니다. 극단적인 경우에는 매듭점 목록 안에 완전 다중 매듭점이 있다는 것은 NURBS 커브의 한 부분이 구부러져 뾰족한 꼬임이 생길 수 있다는 것을 의미합니다. 디자이너 중에는 이 성질을 이용하여 매듭점을 추가 또는 삭제로 제어점을 조정하여, 커브를 보다 매끄럽게 또는 더욱 날카롭게 솟은 형태로 만드는 사람도 있습니다. N을 제어점의 수라고 하면, 매듭점의 수는 (N+차수-1)이므로, 매듭점을 추가하면 제어점도 추가되며, 매듭점을 삭제하면 제어점도 삭제됩니다. NURBS 커브 형태를 변경하지 않고 매듭점을 추가할 수 있습니다. 일반적으로, 매듭점을 삭제하면 커브의 형태도 변합니다.

매듭점(Knot)과 제어점(Control Point)

일반적으로 잘못 알려진 사실로는 매듭점과 제어점이 일대일의 관계라는 개념입니다. 이것은 오직 차수 1의 NURBS(폴리라인)에만 적용될 때 맞는 말입니다. 그러나 차수가 1 보다 높은 NURBS의 경우, 2 x 차수값의 매듭점과 차수값+1의 제어점이 대응하여 순서대로 그룹화됩니다. 제어점이 7이고, 매듭점이 0,0,0,1,2,5,8,8,8인 차수3의 NURBS의 경우를 예를 들겠습니다. 이 경우 처음의 4개의 제어점이 처음의 매듭점 0,0,1,2,5,8에 대응하여 그룹이 됩니다. 2번부터 5번까지의 제어점은 매듭점 0,1,2,5,8,8에 대응하여 그룹이 됩니다. 3번째부터 6번째의 제어점은 매듭점 0,0,1,2,5,8에 대응하여 그룹화됩니다. 마지막 4개의 제어점은 마지막 6개의 매듭점에 대응하여 그룹이 됩니다.

NURBS 평가에 오래된 알고리즘을 채용한 모델러는 2개의 여분의 매듭점 값이 필요하며 매듭점 수는 차수값+N+1 이 됩니다. NURBS 지오메트리를 가져오거나, 내보내는 경우 Rhino는 필요에 따라 이 2개의 여분의 매듭점을 추가하거나, 삭제합니다.

평가 공식

평가 공식은 숫자를 입력하여 점을 출력하는 수학식을 사용합니다.

NURBS 평가 공식은 차수, 제어점, 그리고 매듭점을 사용합니다. 또한 이 식에는 B스플라인 기저 함수(B-spline basis function)도 있습니다. NURBS의 B와 S는 basis spline(기저 스플라인)을 나타냅니다. 평가 공식에 입력하는 숫자를 매개변수라고 합니다. 이 평가 공식을 매개변수를 입력하면 점 위치가 나오는 하나의 블랙박스라고 생각해 보세요. 차수, 매듭점, 제어점은 이 블랙 박스가 어떻게 작동되는지를 결정합니다.

참고 자료

수학 공식을 읽는 데 익숙하시다면 다음의 기술 자료를 참고하시기 바랍니다:

[출처] https://www.rhino3d.com/kr/nurbs

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
558 3D 프로그래머를 위한 커브 입문서 : 직선에서 곡면까지 file 졸리운_곰 2017.05.16 207
557 B-spline curve (비스플라인 곡선) / 베지어 곡선( bezier curve) file 졸리운_곰 2017.05.16 362
556 The Dirty Little Secrets of NURBS file 졸리운_곰 2017.05.16 112
» NURBS란? 졸리운_곰 2017.05.16 79
554 3D 기초상식: NURBS에 관해 file 졸리운_곰 2017.05.16 122
553 재귀 호출 recursive call file 졸리운_곰 2017.05.13 260
552 라이브러리와 프레임워크 구분 모던 웹 JavaScript / 책 file 졸리운_곰 2017.05.06 81
551 브레인스토밍부터 마인드맵까지, 생각정리의 기술 file 졸리운_곰 2017.05.04 240
550 Electron 시작하기 file 졸리운_곰 2017.04.24 123
549 Electron 애플리케이션 만들기 file 졸리운_곰 2017.04.24 126
548 Electron으로 웹 앱 만들듯 데스크톱 앱 만들기 file 졸리운_곰 2017.04.24 162
547 블렌더 3D(Blender 3D) 초보자를 위한 인터페이스 익히기 file 졸리운_곰 2017.04.23 440
546 블렌더 3d를 처음 접하는 분들이 보면 좋은 한글 강좌들 file 졸리운_곰 2017.04.23 530
545 데이터를 기반으로 비즈니스 인사이트를 검증하는 방법 – A/B TEST file 졸리운_곰 2017.04.15 111
544 A/B Testing에 대한 기초적인 정보들 file 졸리운_곰 2017.04.15 92
543 A/B 테스팅이란 file 졸리운_곰 2017.04.15 80
542 서브라임텍스트 나눔고딕코딩 폰트 설정 졸리운_곰 2017.04.04 140
541 Micro­service Websites file 졸리운_곰 2017.04.02 259
540 특허 실용신안 심사기준 - 특허청 file 졸리운_곰 2017.03.28 92
539 특허출원 특허청 특허로 주소 file 졸리운_곰 2017.03.28 142
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED