KR20110102618A - Apparatus and method for modeling curved surface using intersection points in three-dimensional grid structure - Google Patents

Apparatus and method for modeling curved surface using intersection points in three-dimensional grid structure Download PDF

Info

Publication number
KR20110102618A
KR20110102618A KR1020100021713A KR20100021713A KR20110102618A KR 20110102618 A KR20110102618 A KR 20110102618A KR 1020100021713 A KR1020100021713 A KR 1020100021713A KR 20100021713 A KR20100021713 A KR 20100021713A KR 20110102618 A KR20110102618 A KR 20110102618A
Authority
KR
South Korea
Prior art keywords
pattern
generated
cell
intersection
input device
Prior art date
Application number
KR1020100021713A
Other languages
Korean (ko)
Other versions
KR101105244B1 (en
Inventor
채영호
김동택
남상훈
김학수
Original Assignee
중앙대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 중앙대학교 산학협력단 filed Critical 중앙대학교 산학협력단
Priority to KR1020100021713A priority Critical patent/KR101105244B1/en
Priority to PCT/KR2010/003527 priority patent/WO2011111900A1/en
Publication of KR20110102618A publication Critical patent/KR20110102618A/en
Application granted granted Critical
Publication of KR101105244B1 publication Critical patent/KR101105244B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/0304Detection arrangements using opto-electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/0346Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of the device orientation or free movement in a 3D space, e.g. 3D mice, 6-DOF [six degrees of freedom] pointers using gyroscopes, accelerometers or tilt-sensors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04845Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range for image manipulation, e.g. dragging, rotation, expansion or change of colour

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Processing Or Creating Images (AREA)

Abstract

3차원 격자구조에서의 교점을 이용한 곡면 모델링 장치 및 방법이 개시된다. 교점 생성부는 3차원 입력공간 내에서 이동하는 입력장치의 위치정보 및 방향을 기초로 입력공간에 대응하여 생성된 3차원 격자구조를 구성하는 복수의 셀 각각에 대하여 각각의 셀의 모서리와 입력장치의 이동경로 사이의 교점을 생성하고, 교점에서 입력장치가 가리키는 방향에 따른 법선벡터를 산출한다. 패턴 생성부는 교점을 가지는 각각의 셀에 대해 교점의 생성 순서 및 각각의 교점에서의 법선벡터의 방향을 기초로 교점을 연결하여 다각형 패턴을 생성한다. 패턴 갱신부는 패턴을 포함하는 셀을 사전에 설정된 분할횟수에 따라 반복적으로 분할하여 복수의 하위 셀을 생성하되, 각각의 분할시마다 상위 셀이 분할되어 생성된 하위 셀들이 가지는 교점 및 법선벡터의 방향 정보를 기초로 상위 셀에 대해 생성된 패턴을 갱신한다. 곡면 생성부는 패턴 생성부 및 패턴 갱신부에 의해 생성된 복수의 패턴을 연결하여 3차원 곡면을 생성한다. 본 발명에 따르면, 사전에 설정된 형태의 패턴을 연결하여 3차원 곡면을 생성하는 것이 아닌 입력장치의 움직임에 따라 3차원 격자구조의 각각의 셀에 대해 생성되는 교점을 연결하여 각각의 셀에 대한 패턴을 생성함으로써 사용자의 의도에 부합하는 정확한 곡면을 생성할 수 있다.Disclosed are a surface modeling apparatus and method using intersections in a three-dimensional lattice structure. The intersection generator generates a corner of each cell and an input device for each of a plurality of cells constituting the three-dimensional grid structure generated corresponding to the input space based on the position information and the direction of the input device moving in the three-dimensional input space. An intersection point between the movement paths is generated, and a normal vector is calculated according to the direction pointed by the input device at the intersection point. The pattern generator generates polygonal patterns by connecting the intersection points based on the generation order of the intersection points and the direction of the normal vector at each intersection point for each cell having the intersection points. The pattern updater generates a plurality of lower cells by repeatedly dividing a cell including a pattern according to a preset number of divisions, and the direction information of intersection and normal vectors of lower cells generated by splitting an upper cell at each division. Update the generated pattern for the upper cell based on. The curved surface generator generates a three-dimensional curved surface by connecting a plurality of patterns generated by the pattern generator and the pattern updater. According to the present invention, a pattern for each cell is connected by connecting intersections generated for each cell of the three-dimensional lattice structure according to the movement of the input device, rather than generating a three-dimensional curved surface by connecting a pattern of a preset shape. By generating the, it is possible to generate an accurate surface that matches the user's intention.

Description

3차원 격자구조에서의 교점을 이용한 곡면 모델링 장치 및 방법{Apparatus and method for modeling curved surface using intersection points in three-dimensional grid structure}Apparatus and method for modeling curved surface using intersection points in three-dimensional grid structure}

본 발명은 3차원 격자구조에서의 교점을 이용한 곡면 모델링 장치 및 방법에 관한 것으로, 보다 상세하게는, 3차원 격자구조 형태의 입력공간 내에서 이동하는 입력장치와 격자구조를 구성하는 각각의 셀의 모서리와의 교점을 기초로 다각형 패턴을 생성하여 3차원 곡면을 모델링하는 장치 및 방법에 관한 것이다.The present invention relates to an apparatus and method for curved surface modeling using intersections in a three-dimensional grid structure. More particularly, the present invention relates to an input device moving in an input space in the form of a three-dimensional grid structure, and to each cell constituting the grid structure. An apparatus and method for modeling a three-dimensional curved surface by generating a polygonal pattern based on an intersection with an edge.

컴퓨터 기술이 발전함에 따라 디자인 과정에서부터 실제 생산에 이르기까지 컴퓨터 기술에 의한 3차원 모델이 사용되고 있다. 일반적으로 3차원 모델은 3차원 입출력을 통해 맥스나 마야와 같은 컴퓨터 그래픽 도구를 이용하여 제작된다. 2차원 입출력 장비를 통해 3차원 모델을 생성하기 위해서는 방향에 따라 다른 입력을 기초로 모델을 생성해야 한다. 이러한 방법으로 모델을 생성하기 위해서는 2차원 출력을 통해 3차원 모델을 추론할 수 있는 인지적 사고가 필요하고, 그래픽 도구에 대한 숙련도가 필요하다. 현재 다양한 분야에서 3차원 모델이 사용됨에 따라 더욱 손쉽게, 그리고 빠르고 직관적으로 3차원 모델을 생성하는 방법을 필요로 한다.As computer technology advances, three-dimensional models based on computer technology are being used from the design process to actual production. In general, three-dimensional models are produced using computer graphics tools such as Max and Maya through three-dimensional input and output. In order to generate a 3D model through the 2D input and output equipment, the model must be generated based on inputs different according to directions. Generating a model in this way requires cognitive thinking that can infer a three-dimensional model through two-dimensional output, and requires skill in graphic tools. As 3D models are currently used in various fields, there is a need for a method of generating 3D models more easily, quickly and intuitively.

빠르고 쉽게 3차원 모델을 생성하는 방법이 여러 분야에서 다양하게 연구되고 있으며, 특히 직관적인 표현이 가능하고 비교적 공간에 구애받지 않는 가상환경과 접목시킨 3차원 공간 입력 인터페이스 시스템에 대한 연구가 진행되고 있다. 3차원 모델을 생성하는 디자인 분야에서는 디자이너의 실제 움직임이 정확하게 모델로 표현되어야 하며, 정확한 위치 데이터에 대한 추적이 가능해야 한다.The method of creating 3D models quickly and easily has been studied in various fields, and in particular, researches on 3D space input interface systems combined with virtual environments that can be intuitively expressed and are relatively space-independent are in progress. . In the design field to create a three-dimensional model, the designer's actual movement must be accurately represented as a model, and accurate position data must be tracked.

따라서 사용자가 의도하는 바가 정확하게 반영된 3차원 모델을 생성할 수 있는 방법이 필요하다.Therefore, there is a need for a method that can generate a three-dimensional model that accurately reflects the intention of the user.

본 발명이 이루고자 하는 기술적 과제는, 사용자의 의도가 정확하게 표현된 3차원 곡면을 실시간으로 생성할 수 있는 3차원 격자구조에서의 교점을 이용한 곡면 모델링 장치 및 방법을 제공하는 데 있다.An object of the present invention is to provide an apparatus and method for curved surface modeling using intersections in a three-dimensional lattice structure capable of generating in real time a three-dimensional curved surface in which a user's intention is accurately expressed.

본 발명이 이루고자 하는 다른 기술적 과제는, 사용자의 의도가 정확하게 표현된 3차원 곡면을 실시간으로 생성할 수 있는 3차원 격자구조에서의 교점을 이용한 곡면 모델링 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공하는 데 있다.Another technical problem to be solved by the present invention is a computer recording a program for executing a surface modeling method using an intersection in a three-dimensional lattice structure that can generate a three-dimensional surface accurately expressed the user's intention in real time. To provide a readable recording medium.

상기의 기술적 과제를 달성하기 위한, 본 발명에 따른 3차원 격자구조에서의 교점을 이용한 곡면 모델링 장치는, 3차원 입력공간 내에서 이동하는 입력장치의 위치정보 및 방향을 기초로 상기 입력공간에 대응하여 생성된 3차원 격자구조를 구성하는 복수의 셀 각각에 대하여 상기 각각의 셀의 모서리와 상기 입력장치의 이동경로 사이의 교점을 생성하고, 상기 교점에서 상기 입력장치가 가리키는 방향에 따른 법선벡터를 산출하는 교점 생성부; 상기 교점을 가지는 각각의 셀에 대해 상기 교점의 생성 순서 및 상기 각각의 교점에서의 상기 법선벡터의 방향을 기초로 상기 교점을 연결하여 다각형 패턴을 생성하는 패턴 생성부; 상기 패턴을 포함하는 셀을 사전에 설정된 분할횟수에 따라 반복적으로 분할하여 복수의 하위 셀을 생성하되, 각각의 분할시마다 상위 셀이 분할되어 생성된 하위 셀들이 가지는 교점 및 법선벡터의 방향 정보를 기초로 상기 상위 셀에 대해 생성된 패턴을 갱신하는 패턴 갱신부; 및 상기 패턴 생성부 및 상기 패턴 갱신부에 의해 생성된 복수의 패턴을 연결하여 3차원 곡면을 생성하는 곡면 생성부;를 구비한다.In order to achieve the above technical problem, the curved surface modeling apparatus using the intersection point in the three-dimensional lattice structure according to the present invention corresponds to the input space based on the position information and the direction of the input device moving in the three-dimensional input space. For each of a plurality of cells constituting the three-dimensional grid structure generated by the intersection point of the intersection of the edge of each cell and the movement path of the input device is generated, the normal vector in the direction pointed by the input device at the intersection point An intersection generator for calculating; A pattern generation unit generating a polygonal pattern by connecting the intersection points based on a generation order of the intersection points and a direction of the normal vector at each intersection point for each cell having the intersection points; A plurality of subcells are generated by repeatedly dividing a cell including the pattern according to a preset number of divisions, and based on direction information of intersection points and normal vectors of lower cells generated by splitting an upper cell at each division. A pattern updater for updating a pattern generated for the upper cell with a; And a curved surface generating unit generating a three-dimensional curved surface by connecting the plurality of patterns generated by the pattern generating unit and the pattern updating unit.

상기의 기술적 과제를 달성하기 위한, 본 발명에 따른 3차원 격자구조에서의 교점을 이용한 곡면 모델링 방법은, 3차원 입력공간 내에서 이동하는 입력장치의 위치정보 및 방향을 기초로 상기 입력공간에 대응하여 생성된 3차원 격자구조를 구성하는 복수의 셀 각각에 대하여 상기 각각의 셀의 모서리와 상기 입력장치의 이동경로 사이의 교점을 생성하고, 상기 교점에서 상기 입력장치가 가리키는 방향에 따른 법선벡터를 산출하는 교점 생성단계; 상기 교점을 가지는 각각의 셀에 대해 상기 교점의 생성 순서 및 상기 각각의 교점에서의 상기 법선벡터의 방향을 기초로 상기 교점을 연결하여 다각형 패턴을 생성하는 패턴 생성단계; 상기 패턴을 포함하는 셀을 사전에 설정된 분할횟수에 따라 반복적으로 분할하여 복수의 하위 셀을 생성하되, 각각의 분할시마다 상위 셀이 분할되어 생성된 하위 셀들이 가지는 교점 및 법선벡터의 방향 정보를 기초로 상기 상위 셀에 대해 생성된 패턴을 갱신하는 패턴 갱신단계; 및 상기 패턴 생성단계 및 상기 패턴 갱신단계에서 생성된 복수의 패턴을 연결하여 3차원 곡면을 생성하는 곡면 생성단계;를 갖는다.In order to achieve the above technical problem, the curved modeling method using the intersection point in the three-dimensional grid structure according to the present invention, corresponding to the input space based on the position information and the direction of the input device moving in the three-dimensional input space For each of a plurality of cells constituting the three-dimensional grid structure generated by the intersection point of the intersection of the edge of each cell and the movement path of the input device is generated, the normal vector in the direction pointed by the input device at the intersection point An intersection generation step of calculating; A pattern generation step of generating a polygon pattern by connecting the intersection points based on a generation order of the intersection points and a direction of the normal vector at each intersection point for each cell having the intersection points; A plurality of subcells are generated by repeatedly dividing a cell including the pattern according to a preset number of divisions, and based on direction information of intersection points and normal vectors of lower cells generated by splitting an upper cell at each division. A pattern updating step of updating a pattern generated for the upper cell with a; And a surface generation step of generating a three-dimensional curved surface by connecting the plurality of patterns generated in the pattern generation step and the pattern update step.

본 발명에 따른 3차원 격자구조에서의 교점을 이용한 곡면 모델링 장치 및 방법에 의하면, 사전에 설정된 형태의 패턴을 연결하여 3차원 곡면을 생성하는 것이 아닌 입력장치의 움직임에 따라 3차원 격자구조의 각각의 셀에 대해 생성되는 교점을 연결하여 각각의 셀에 대한 패턴을 생성함으로써 사용자의 의도에 부합하는 정확한 곡면을 생성할 수 있다. 또한 각각의 셀에 대해 패턴을 생성할 때 교점의 생성 순서뿐만 아니라 각 교점에서의 법선벡터의 방향을 고려함으로써 셀 내부에서의 입력장치의 움직임을 반영한 패턴을 생성할 수 있다. 나아가 입력장치의 움직임의 복잡도에 따라 적응적으로 셀을 분할함으로써 미세한 부분이 잘 표현된 곡면을 실시간으로 생성할 수 있다.According to the curved surface modeling apparatus and method using the intersection in the three-dimensional lattice structure according to the present invention, each of the three-dimensional lattice structure in accordance with the movement of the input device, rather than connecting a pattern of a predetermined shape to generate a three-dimensional surface By generating the patterns for each cell by connecting the intersections generated for the cells of, it is possible to generate an accurate surface that matches the user's intention. In addition, when a pattern is generated for each cell, the pattern reflecting the movement of the input device within the cell may be generated by considering not only the generation order of the intersection points but also the direction of the normal vector at each intersection point. Furthermore, by dividing the cells adaptively according to the complexity of the movement of the input device, it is possible to generate in real time a curved surface well represented.

도 1은 본 발명에 따른 3차원 격자구조에서의 교점을 이용한 곡면 모델링 장치에 대한 바람직한 실시예의 구성을 도시한 블록도,
도 2는 3D 마우스 및 그 사용예를 나타낸 도면,
도 3은 위모트 및 그 사용예를 나타낸 도면,
도 4는 햅틱 장치를 사용한 공간 드로잉의 예를 나타낸 도면,
도 5는 본 발명에 의해 사용되는 적외선 트래킹 시스템을 나타낸 도면,
도 6은 마칭큐브 알고리즘에서 사용되는 15가지의 패턴 및 생성된 곡면의 예를 나타낸 도면,
도 7은 기존의 마칭큐브 알고리즘과 확장된 마칭큐브 알고리즘에 의해 생성된 곡면을 비교하여 나타낸 도면,
도 8은 입력장치의 이동경로에 따라 생성되는 교점 및 법선벡터의 예를 도시한 도면,
도 9는 입력장치가 하나의 셀을 통과함에 따라 순차적으로 생성되는 교점의 일 예를 나타낸 도면,
도 10은 입력장치의 움직임에 따라 하나의 셀에 대하여 생성되는 다양한 패턴의 예를 도시한 도면,
도 11은 하나의 셀 내에서 교점의 생성 순서에 따라 생성될 수 있는 패턴의 예를 도시한 도면,
도 12는 입력장치가 가리키는 방향에 따라 서로 다르게 얻어지는 패턴의 예를 도시한 도면,
도 13a 및 도 13b는 교점이 3개인 경우에 교점들을 연결하는 방법 및 생성 가능한 패턴의 형태를 도시한 도면,
도 14a 및 도 14b는 교점이 4개인 경우에 교점들을 연결하는 방법 및 생성 가능한 패턴의 형태를 도시한 도면,
도 15a 및 도 15b는 교점이 5개인 경우에 교점들을 연결하는 방법 및 생성 가능한 패턴의 형태를 도시한 도면,
도 16a 및 도 16b는 교점이 6개인 경우에 교점들을 연결하는 방법 및 생성 가능한 패턴의 형태를 도시한 도면,
도 17은 본 발명에 따른 곡면 모델링 장치에 의해 얻어진 패턴들을 서로 연결한 곡면과 기존의 마칭큐브 알고리즘에 의해 생성된 곡면을 도시한 도면,
도 18은 본 발명과 마칭큐브 알고리즘에서 곡면이 생성되는 범위를 비교하여 나타낸 도면,
도 19는 하나의 셀을 통과하는 입력장치의 입력에 대해 마칭큐브 알고리즘 및 패턴 생성부에 의해 생성된 패턴을 도시한 도면,
도 20은 단순한 입력에 대해 마칭큐브 알고리즘과 패턴 생성부에 의해 생성된 패턴을 도시한 도면,
도 21a 및 도 21b는 셀을 통과하는 입력장치의 속도와 방향이 변화함에 따라 얻어지는 패턴을 도시한 도면,
도 22a 및 도 22b는 입력장치의 복잡한 움직임에 의해 생성되는 패턴을 도시한 도면,
도 23은 3차원 격자구조를 구성하는 셀의 크기에 따라 얻어지는 곡면을 나타낸 도면,
도 24는 법선벡터의 방향 변화에 따라 셀이 분할되는 일 예를 도시한 도면,
도 25는 입력장치의 이동경로의 가장자리에 위치하는 셀이 분할되는 일 예를 도시한 도면,
도 26은 서로 인접한 셀의 크기가 다른 경우에 발생하는 패턴의 불일치를 도시한 도면,
도 27은 서로 다른 크기의 인접한 셀에 대해 생성된 패턴을 연결시키는 일 예를 도시한 도면,
도 28은 곡면 생성부에 의해 생성된 3차원 곡면의 일 예를 도시한 도면, 그리고,
도 29는 본 발명에 따른 3차원 격자구조에서의 교점을 이용한 곡면 모델링 방법에 대한 바람직한 실시예의 수행과정을 도시한 흐름도이다.
1 is a block diagram showing the configuration of a preferred embodiment of the curved surface modeling apparatus using the intersection in the three-dimensional lattice structure according to the present invention;
2 is a view showing a 3D mouse and its use example,
3 is a diagram illustrating an example of using a wee moit,
4 shows an example of spatial drawing using a haptic device,
5 shows an infrared tracking system used by the present invention,
FIG. 6 is a diagram illustrating 15 patterns used in a marching cube algorithm and examples of generated surfaces; FIG.
FIG. 7 is a view illustrating a comparison of curved surfaces generated by an existing marching cube algorithm and an expanded marching cube algorithm.
8 is a diagram illustrating an example of intersection and normal vectors generated according to a movement path of an input device;
9 is a diagram illustrating an example of intersections that are sequentially generated as an input device passes through one cell;
10 is a diagram illustrating examples of various patterns generated for one cell according to the movement of an input device;
11 illustrates an example of a pattern that may be generated according to a generation order of intersection points in one cell;
12 is a view showing an example of a pattern obtained differently according to the direction indicated by the input device,
13A and 13B illustrate a method of connecting intersections when three intersections and a form of a pattern that can be generated;
14A and 14B illustrate a method of connecting intersections when four intersections and a form of a pattern that can be generated;
15A and 15B illustrate a method of connecting intersections in the case of five intersections and a form of a pattern that can be generated;
16A and 16B illustrate a method of connecting intersections and a form of a pattern that can be generated when there are six intersections;
FIG. 17 is a view showing surfaces curved by patterns obtained by the surface modeling apparatus according to the present invention and surfaces generated by a conventional marching cube algorithm;
FIG. 18 is a diagram illustrating a range in which curved surfaces are generated in the present invention and a marching cube algorithm.
19 illustrates a pattern generated by a marching cube algorithm and a pattern generator for an input of an input device passing through one cell;
20 is a view showing a pattern generated by the marching cube algorithm and the pattern generator for a simple input;
21A and 21B show patterns obtained as the speed and direction of an input device passing through a cell changes.
22A and 22B illustrate patterns generated by complex movements of an input device;
23 is a view showing a curved surface obtained according to the size of the cells constituting the three-dimensional lattice structure,
24 is a diagram illustrating an example of dividing a cell according to a change in direction of a normal vector;
FIG. 25 illustrates an example of dividing a cell located at an edge of a movement path of an input device; FIG.
FIG. 26 is a diagram illustrating inconsistencies in patterns occurring when the sizes of adjacent cells are different from each other. FIG.
27 illustrates an example of connecting patterns generated for adjacent cells of different sizes;
28 is a diagram illustrating an example of a three-dimensional curved surface generated by the curved surface generating unit, and
29 is a flowchart illustrating a process of performing a preferred embodiment of the curved surface modeling method using the intersection points in the three-dimensional lattice structure according to the present invention.

이하에서 첨부된 도면들을 참조하여 본 발명에 따른 3차원 격자구조에서의 교점을 이용한 곡면 모델링 장치 및 방법의 바람직한 실시예에 대해 상세하게 설명한다.Hereinafter, with reference to the accompanying drawings will be described in detail a preferred embodiment of the surface modeling apparatus and method using the intersection in the three-dimensional grid structure according to the present invention.

도 1은 본 발명에 따른 3차원 격자구조에서의 교점을 이용한 곡면 모델링 장치에 대한 바람직한 실시예의 구성을 도시한 블록도이다.1 is a block diagram showing the configuration of a preferred embodiment of the curved surface modeling apparatus using the intersection point in the three-dimensional lattice structure according to the present invention.

도 1을 참조하면, 본 발명에 따른 곡면 모델링 장치는, 교점 생성부(110), 패턴 생성부(120), 패턴 갱신부(130) 및 곡면 생성부(140)를 구비한다.Referring to FIG. 1, the curved surface modeling apparatus according to the present invention includes an intersection generator 110, a pattern generator 120, a pattern updater 130, and a curved surface generator 140.

교점 생성부(110)는 3차원 입력공간 내에서 이동하는 입력장치의 위치정보 및 방향을 기초로 입력공간에 대응하여 생성된 3차원 격자구조를 구성하는 복수의 셀 각각에 대하여 각각의 셀의 모서리와 입력장치의 이동경로 사이의 교점을 생성하고, 교점에서 입력장치가 가리키는 방향에 따른 법선벡터를 산출한다.The intersection generating unit 110 is an edge of each cell for each of a plurality of cells constituting a three-dimensional grid structure generated corresponding to the input space based on the position information and the direction of the input device moving in the three-dimensional input space. An intersection between the path and the movement path of the input device is generated, and a normal vector corresponding to the direction pointed by the input device at the intersection is calculated.

본 발명에 따른 곡면 모델링 장치는 2차원 입력이 아닌 3차원 입력으로부터 3차원의 곡면을 생성하는 것을 특징으로 한다. 즉, 3차원 가상공간에서 직접 입출력이 가능한 시스템을 사용하는 것이다. 이러한 3차원 공간 입력 시스템은 가상공간 상에서 사용자의 시각적인 몰입감을 극대화시키면서 동시에 다양한 방식으로 사용자가 상호작용을 할 수 있다는 장점을 가진다. 3차원 공간 입력 시스템을 이용할 경우 가상공간에 대한 낮은 접근성과 3차원 입력 인터페이스가 가지는 이질감을 완화시키고 보다 정밀한 입력이 가능하도록 하여 최근 다양한 분야에서 연구가 이루어지고 있다.The curved surface modeling apparatus according to the present invention is characterized by generating a three-dimensional curved surface from a three-dimensional input rather than a two-dimensional input. In other words, it uses a system that can directly input and output in a three-dimensional virtual space. Such a three-dimensional space input system has the advantage that the user can interact in various ways while maximizing the visual immersion of the user in the virtual space. In the case of using the 3D space input system, researches have been made in various fields recently to alleviate the heterogeneity of the 3D input interface and to enable more precise input.

3차원에서 사용자의 위치정보를 얻을 수 있는 공간 입력 장비의 하나인 3D 마우스는 x-y 평면에서 이동하는 마우스에 높이의 개념을 추가한 장비이다. 도 2는 3D 마우스 및 그 사용예를 나타낸 도면이다. 3D 마우스를 사용함으로써 이동, 회전 및 높이를 용이하게 조절할 수 있다. 이는 기존의 2차원 입력에 비해 더욱 직관적인 입력이 가능하지만, 기존의 그래픽 도구를 좀 더 효율적으로 다루는 수준에 그치고 있으며, 특정 작업에서만 사용 가능하다는 단점이 있다.The 3D mouse, which is one of the space input devices that can obtain the user's location information in three dimensions, is a device that adds the concept of height to the mouse moving in the x-y plane. 2 is a view showing a 3D mouse and its use example. By using a 3D mouse, movement, rotation and height can be easily adjusted. Although this allows more intuitive input than the conventional two-dimensional input, it only deals with existing graphic tools more efficiently, and has a disadvantage in that it can be used only for a specific task.

또 다른 3차원 입력장치로서 게임을 위해 제작된 게임 컨트롤러인 위모트(Wiimote)가 있다. 위모트, 즉 위 리모컨(Wii Remote)은 주된 기능으로 모션 감지 기능을 가지며, 사용자가 화면상의 물건과 상호작용하며 물건을 이용할 수 있게 한다. 또한 광학센서와 가속도계를 사용하여 컨트롤러의 상대적인 위치를 추적한다. 위모트는 3개의 자이로 센서와 적외선 센서를 통해 컨트롤러의 상대적 위치를 찾아내며, 본래 게임을 위해 제작된 것이지만 다양한 분야에서 위모트의 3차원 데이터를 이용한 연구가 진행되고 있다. 도 3은 위모트 및 그 사용예를 나타낸 도면이다.Another three-dimensional input device is Wiimote, a game controller made for games. WeMote, or Wii Remote, has a motion detection function as its main function and allows the user to interact with and use objects on the screen. It also uses an optical sensor and accelerometer to track the relative position of the controller. Wemot finds the relative position of the controller through three gyro sensors and infrared sensors, and was originally designed for games, but researches using Wemot's three-dimensional data are being conducted in various fields. 3 is a diagram illustrating a weemot and an example of use thereof.

한편, 햅틱 장치는 촉감 센서를 이용하여 사용자에게 인공적인 촉감을 만들어 주는 장비이다. 도 4에는 햅틱 장치를 사용한 공간 드로잉의 예가 나타나 있다. 햅틱 장치에 내장된 모터를 통해서 사용자에게 힘이 전달되고, 모터에는 인코더가 달려 있어 3차원 공간에서 현재의 위치와 자세를 파악하게 된다. 장비는 사용자의 손 위치를 펜 부분 끝의 한 점으로만 인식하게 된다. 따라서 이 점이 가상공간에서 다른 물체와 충돌하는 경우 햅틱 장치에서는 사용자에게 힘을 생성하여 물체의 모양 및 표면질감 등의 정보를 전달한다. 햅틱 장치는 휴대폰, 게임기 등의 여러 분야에서 사용되고 있으며, 디자인이나 의료 분야 등의 다양한 분야에서도 연구가 진행되고 있다.On the other hand, the haptic device is a device that creates an artificial touch to the user by using a tactile sensor. 4 shows an example of spatial drawing using a haptic device. Force is transmitted to the user through a motor built into the haptic device, and an encoder is attached to the motor to determine the current position and posture in three-dimensional space. The device recognizes the user's hand position as only one point on the tip of the pen. Therefore, when this point collides with another object in the virtual space, the haptic device generates a force to the user and transmits information such as shape and surface texture of the object. Haptic devices are used in various fields such as mobile phones and game consoles, and research is being conducted in various fields such as design and medical fields.

공간에서 움직이는 물체를 추적하는 트래킹 시스템에는 회전센서로 구성된 기계식 트래킹, 자기장 발생장치와 자기장 특정 센서로 구성된 자기식 트래킹, 소리의 속도를 이용한 초음파 트래킹 및 반사마커의 인식을 통한 카메라 트래킹 등이 있다.Tracking systems that track moving objects in space include mechanical tracking with rotation sensors, magnetic tracking with magnetic field generators and magnetic field-specific sensors, ultrasonic tracking with sound velocity, and camera tracking with recognition of reflex markers.

이 중 하나인 적외선 카메라 트래킹 시스템은 2대의 적외선 카메라와 3개의 적외선 반사마커가 부착된 완드(wand)를 사용하여 완드의 위치정보를 추적하는 시스템이다. 카메라 트래킹 시스템은 전기적, 자기적 영향을 거의 받지 않으며 완드에 선이 연결되어 있지 않기 때문에 사용자의 동작에 제약이 없고, 넓은 범위에서 위치 추적이 가능하며 데이터의 품질도 높다는 장점을 가진다. 그러나 카메라의 영상에서 특징점을 찾고 3차원 좌표를 계산하는 데 많은 계산이 필요하기 때문에 실시간 추적이 어렵다는 단점이 있으므로 이를 해결하기 위해 적외선을 이용한 카메라 트래킹 시스템을 사용할 수 있다.One of these is an infrared camera tracking system, which uses a wand with two infrared cameras and three infrared reflecting markers to track the wand's position. The camera tracking system is hardly affected by electric and magnetic effects, and because there is no wire connected to the wand, there is no restriction on the user's movement, the position tracking is possible in a wide range, and the data quality is high. However, since a lot of calculations are required to find a feature point in a camera image and calculate three-dimensional coordinates, it is difficult to track in real time. Therefore, a camera tracking system using infrared rays can be used to solve this problem.

본 발명에 따른 곡면 모델링 장치를 위해 위에서 설명한 3차원 입력장치를 사용할 수 있으며, 일 실시예로서 적외선 트래킹 시스템을 사용하여 입력장치의 위치정보 및 이동방향을 추적하는 경우에 대하여 설명한다. 도 5는 본 발명에 의해 사용되는 적외선 트래킹 시스템을 나타낸 도면으로, 도 5의 (a)와 같은 두 개의 적외선 카메라에 의해 도 5의 (b)와 같은 형태를 가지는 완드, 즉 입력장치의 움직임을 추적하게 된다.The above-described three-dimensional input device may be used for the curved modeling device according to the present invention. As an embodiment, a case in which the location information and the moving direction of the input device are tracked using the infrared tracking system will be described. FIG. 5 is a view illustrating an infrared tracking system used by the present invention, wherein the wand having the shape as shown in FIG. 5B is moved by two infrared cameras as shown in FIG. To be tracked.

적외선 카메라로서 NaturalPoint사의 OptiTrack V100R2 카메라를 사용할 수 있는데, 이는 26개의 적외선 LED에 의해 적외선을 방출하고, 적외선 필터를 이용하여 초당 100프레임의 이미지를 캡쳐할 수 있다. 캡쳐한 이미지를 통해 입력장치의 3차원 위치정보를 계산하여 공간상의 위치를 찾는다.As an infrared camera, you can use NaturalPoint's OptiTrack V100R2 camera, which emits infrared light by 26 infrared LEDs and captures 100 frames per second using an infrared filter. The 3D location information of the input device is calculated from the captured image to find the location in space.

교점 생성부(110)는 이와 같이 적외선 카메라로부터 입력받은 입력장치의 위치정보를 실제로 3차원 곡면을 생성하기 위한 3차원 좌표공간에 대응시킨다. 이를 위해 입력장치가 이동하는 3차원 입력공간이 가상의 3차원 격자구조를 가지는 것으로 가정하고, 입력공간에 대응하는 3차원 격자구조의 공간을 생성한다. 3차원 격자구조는 복수의 셀로 구성되어 있으며, 3차원 곡면은 각각의 셀 단위로 생성된 다각형의 패턴을 연결시킴으로써 생성된다. 이러한 격자 단위의 입력에 따른 곡면 생성 알고리즘은 지속적으로 연구되어 왔으며, 다양한 알고리즘이 개발되었다.The intersection generator 110 maps the position information of the input device input from the infrared camera to the three-dimensional coordinate space for actually generating the three-dimensional curved surface. To this end, it is assumed that the three-dimensional input space to which the input device moves has a virtual three-dimensional lattice structure, and creates a three-dimensional lattice structure corresponding to the input space. The three-dimensional grid structure is composed of a plurality of cells, the three-dimensional curved surface is generated by connecting the pattern of the polygon generated in each cell unit. Curve generation algorithm according to the grid unit input has been continuously studied, and various algorithms have been developed.

마칭큐브 알고리즘(marching cube algorithm)은 다양한 분야에서 3차원 모델의 표현을 위해 사용되는 알고리즘으로, 격자 내의 입력을 통해 격자의 각 꼭지점의 값이 정해지고 그 값을 역산하여 면을 생성하는 방법이다. 마칭큐브 알고리즘은 볼륨 렌더링(volume rendering)시 사용되는데, 3차원 공간에서 값이 일정한 표면인 등가면(isosurface)를 생성한다.The marching cube algorithm is an algorithm used to represent a three-dimensional model in various fields. The marching cube algorithm is a method of generating a face by inputting the vertices of a grid and inverting the values. The marching cube algorithm is used during volume rendering to create an isosurface, a surface whose value is constant in three-dimensional space.

도 6은 마칭큐브 알고리즘에서 사용되는 15가지의 패턴 및 생성된 곡면의 예를 나타낸 도면이다. 격자 내의 입력이 가지는 부호에 따라 도 6의 (a)와 같은 15가지의 패턴이 결정되며, 면의 위치와 방향에 따라 255가지 형태의 면이 그려질 수 있다. 도 6의 (b)는 마칭큐브 알고리즘에 의해 생성된 곡면으로, 각 격자에서 등가치(isovalue)의 연결에 의해 각 격자 내의 패턴이 자연스럽게 연결된 곡면모델이 생성되었다.FIG. 6 is a diagram illustrating 15 patterns used in the marching cube algorithm and examples of generated curved surfaces. Fifteen patterns as shown in FIG. 6A are determined according to the sign of the input in the grid, and 255 types of faces may be drawn according to the position and direction of the plane. FIG. 6B illustrates a curved surface generated by a marching cube algorithm, and a curved surface model in which patterns in each lattice are naturally connected by connection of isovalues in each lattice.

기존의 마칭큐브 알고리즘은 격자 단위로 면이 구성되기 때문에 격자 내에서의 움직임에 대한 표현이 힘들다. 확장된 마칭큐브(extended marching cube) 알고리즘은 기존의 마칭큐브 알고리즘의 15가지 패턴으로 생성할 수 없는 부분에 대한 문제점을 해결하기 위한 방법이다. 도 7은 기존의 마칭큐브 알고리즘과 확장된 마칭큐브 알고리즘에 의해 생성된 곡면을 비교하여 나타낸 도면으로, (a)는 사용자가 그리고자 하는 목표 모델, (b)는 기본적인 마칭큐브 알고리즘에 의해 생성된 모델, 그리고 (c)는 확장된 마칭큐브 알고리즘에 의해 생성된 모델이다. (b)와 (c)를 비교하여 보면, 기존의 마칭큐브 알고리즘으로는 표현하기 어려운 각진 부분들이 확장된 마칭큐브 알고리즘에 의하면 정확하게 표현되는 것을 확인할 수 있다.The existing marching cube algorithm is difficult to express the movement in the lattice because the face is composed of the lattice unit. Extended marching cube (extended marching cube) algorithm is a method to solve the problem that can not be generated by the 15 patterns of the existing marching cube algorithm. 7 is a view showing a comparison between the curved surface generated by the existing marching cube algorithm and the expanded marching cube algorithm, (a) is a target model to be drawn by the user, (b) is generated by the basic marching cube algorithm The model, and (c) is a model generated by the extended marching cube algorithm. Comparing (b) and (c), it can be seen that the angular parts that are difficult to express by the existing marching cube algorithm are accurately represented by the expanded marching cube algorithm.

이상에서 설명한 마칭큐브 알고리즘은 입력이 정확하거나 일반적인 경우에는 실제 입력과 같은 면을 생성할 수 있지만, 입력의 빈도(frequency)가 적거나 너무 많을 경우에는 실제 움직임과는 다른 의도하지 않은 움직임이 나타날 수 있다. 따라서 본 발명에 따른 곡면 모델링 장치는 격자 내의 입력값을 기초로 면을 생성하지 않고 입력장치의 위치정보 및 이동방향을 기초로 구성된 입력장치의 이동경로와 3차원 격자구조를 구성하는 각각의 셀과의 교점을 기초로 면을 생성한다.The marching cube algorithm described above can produce the same face as the actual input if the input is accurate or normal, but if the frequency of input is too small or too large, an unintentional movement different from the actual motion may appear. have. Therefore, the curved surface modeling apparatus according to the present invention does not generate a surface based on an input value in a grid, and each cell constituting a movement path and a three-dimensional grid structure of the input device based on the position information and the moving direction of the input device; Create a face based on the intersection of.

교점 생성부(110)는 3차원 격자구조를 구성하는 각각의 셀의 모서리와 입력장치의 이동경로 사이의 교점을 생성하고, 각각의 교점마다 입력장치가 가리키는 방향에 따른 법선벡터를 산출한다. 입력장치가 도 8의 (a)와 같은 형태를 가지는 경우에는 이동방향이 일정한 입력장치가 가리키는 방향의 변화를 알 수 있다.The intersection generating unit 110 generates an intersection between the edge of each cell constituting the three-dimensional grid structure and the movement path of the input device, and calculates a normal vector according to the direction indicated by the input device for each intersection. When the input device has a shape as shown in (a) of FIG. 8, a change in the direction indicated by the input device having a constant moving direction can be seen.

도 8은 입력장치의 이동경로에 따라 생성되는 교점 및 법선벡터의 예를 도시한 도면이다. 도 8의 (a)는 입력장치의 좌표축의 움직임을 나타낸 것으로, 입력장치에 구비된 세 개의 반사마커를 통해 입력장치의 움직임과 회전을 추적할 수 있다. 교점 생성부(110)는 이러한 입력장치의 움직임을 기초로 도 8의 (b)와 같이 각 셀의 모서리에 교점을 생성하고 법선벡터를 산출한다. 각 셀에 대하여 생성되는 교점 및 법선벡터의 방향은 각각의 셀마다 3차원 곡면의 단위가 되는 패턴을 생성하는 기초가 된다.8 is a diagram illustrating an example of intersection and normal vectors generated according to a movement path of an input device. FIG. 8 (a) shows the movement of the coordinate axis of the input device, and the movement and rotation of the input device can be tracked through three reflective markers provided in the input device. The intersection generator 110 generates an intersection at each corner of each cell and calculates a normal vector based on the movement of the input device as shown in FIG. The direction of the intersection point and the normal vector generated for each cell is the basis for generating a pattern that is a unit of three-dimensional curved surface for each cell.

패턴 생성부(120)는 교점을 가지는 각각의 셀에 대해 교점의 생성 순서 및 각각의 교점에서의 법선벡터의 방향을 기초로 교점을 연결하여 다각형 패턴을 생성한다.The pattern generator 120 generates polygonal patterns by connecting the intersection points based on the generation order of the intersection points and the direction of the normal vector at each intersection point for each cell having the intersection points.

입력장치가 한 번의 움직임으로 하나의 셀을 횡단하면 최소 3개에서 최대 6개의 교점이 생성된다. 교점의 생성 순서는 입력장치가 통과하는 순서와 동일하다. 도 9는 입력장치가 하나의 셀을 통과함에 따라 순차적으로 생성되는 교점의 일 예를 나타낸 도면으로, 입력장치의 움직임에 따라 생성되는 4개의 교점 각각에 시간성이 부여되어 하나의 셀에 대하여 입력장치가 들어오는 면과 나가는 면을 구별할 수 있다. 또한 생성 순서에 관한 정보를 포함하는 교점들을 그 생성 순서에 따라 연결시켜 하나의 셀 내에서 패턴을 생성하게 된다.When the input device traverses a cell in one movement, at least three to six intersections are created. The order of intersection is the same as that of input device. FIG. 9 illustrates an example of intersections that are sequentially generated as the input device passes through one cell. FIG. 9 is a diagram illustrating time points of each of four intersection points generated by the movement of the input device. Can distinguish between incoming and outgoing sides. In addition, the intersections including the information about the generation order are connected according to the generation order to generate a pattern in one cell.

도 10은 입력장치의 움직임에 따라 하나의 셀에 대하여 생성되는 다양한 패턴의 예를 도시한 도면이다. 도 10을 참조하면, 좌측으로부터 순서대로 셀 모서리에 생성되는 교점의 개수가 각각 3개, 4개 및 6개이며, 복수의 교점들이 생성 순서에 따라 연결되어 하나의 다각형 패턴이 생성되는 것을 확인할 수 있다.FIG. 10 is a diagram illustrating examples of various patterns generated for one cell according to the movement of an input device. Referring to FIG. 10, the number of intersections generated at the cell edges in the order from the left is three, four, and six, respectively, and the plurality of intersections are connected in the generation order to generate one polygonal pattern. have.

하나의 셀에 대해 생성되는 교점의 개수가 3개인 경우에는 순차적으로 생성된 교점을 연결함으로써 하나의 삼각형 패턴이 얻어진다. 그러나 교점이 4개 이상인 경우에는 동일한 순서라도 입력장치의 이동방향에 따라 패턴이 다르게 생성되는 경우가 있다. 따라서 이러한 경우에 단순히 순차적으로 생성된 교점을 연결하게 되면 사용자가 의도한 것과 다른 형태의 패턴이 얻어질 수 있다. 도 11은 하나의 셀 내에서 교점의 생성 순서에 따라 생성될 수 있는 패턴의 예를 도시한 도면이다. 도 11을 참조하면, 교점의 순서가 동일한 경우에도 서로 다른 형태의 패턴이 생성될 수 있다.When the number of intersections generated for one cell is three, one triangular pattern is obtained by connecting sequentially generated intersections. However, when there are four or more intersections, patterns may be generated differently according to the moving direction of the input device even in the same order. Therefore, in this case, simply connecting sequentially generated intersections may result in a pattern different from the one intended by the user. FIG. 11 is a diagram illustrating an example of a pattern that may be generated according to a generation order of intersection points in one cell. Referring to FIG. 11, even when the intersection points are the same, different types of patterns may be generated.

이와 같이 교점의 순서가 동일하여도 생성되는 패턴의 형태가 달라지는 것은 일정한 이동방향으로 이동하는 입력장치가 가리키는 방향이 변화하는 경우에 해당한다. 즉, 입력장치의 회전에 의해 이동방향은 변화하지 않지만 교점에서의 법선벡터의 방향이 변화하는 경우이다. As such, even if the order of the intersection points is the same, the shape of the generated pattern is different when the direction indicated by the input device moving in the constant moving direction is changed. In other words, the direction of movement does not change by the rotation of the input device, but the direction of the normal vector at the intersection changes.

도 12는 입력장치가 가리키는 방향에 따라 서로 다르게 얻어지는 패턴의 예를 도시한 도면이다. 도 12의 (a)와 (b)는 4개의 교점의 위치와 생성 순서가 서로 동일하지만, 아래쪽의 두 개의 교점에서의 법선벡터의 방향이 서로 반대이다. 도 12의 (a)는 입력장치가 회전하지 않고 직선으로 셀을 통과한 경우로서, 생성된 교점의 순서에 따라 교점을 연결하여 패턴을 생성하게 된다. 그러나 도 12의 (b)는 셀 내에서 입력장치가 회전함으로써 꼬인 형태의 패턴이 생성된다.12 is a diagram illustrating an example of patterns obtained differently according to a direction indicated by an input device. 12 (a) and 12 (b) have the same positions and generation order of four intersections, but the directions of the normal vectors at two intersections below are opposite to each other. 12A illustrates a case where the input device passes through the cell in a straight line without rotating, and generates a pattern by connecting the intersection points in the order of the generated intersection points. However, in FIG. 12B, a twisted pattern is generated as the input device rotates in the cell.

이와 같이 교점의 생성 순서가 동일하더라도 법선벡터의 방향에 따라 전혀 다른 형태의 패턴이 생성될 수 있으므로, 패턴 생성부는 각각의 셀에 대한 패턴을 생성할 때 교점의 생성 순서뿐만 아니라 각 교점에서의 법선벡터의 방향도 함께 고려한다. 따라서 사용자의 의도에 맞는 정확한 형태의 패턴을 생성할 수 있다.As such, even if the order of generation of the intersection points is the same, a completely different pattern can be generated according to the direction of the normal vector, the pattern generator generates not only the generation order of the intersection points but also the normals at each intersection point. Consider the direction of the vector as well. Therefore, it is possible to create a pattern of the correct form to suit the user's intention.

이하에서, 하나의 셀 내에서의 교점의 개수에 따라 생성 가능한 패턴의 예를 설명한다.Hereinafter, an example of a pattern that can be generated according to the number of intersection points in one cell will be described.

먼저 교점이 3개인 경우이다. 평면 형태의 하나의 패턴이 생성되기 위해서는 최소한 3개의 교점을 필요로 하며, 삼각형의 패턴이 생성된다. 도 13a 및 도 13b는 교점이 3개인 경우에 교점들을 연결하는 방법 및 생성 가능한 패턴의 형태를 도시한 도면이다. 3개의 교점에 대응하는 삼각형의 패턴은 하나의 셀 내에서 위치를 달리하여 8가지 형태로 생성될 수 있다.First, there are three intersections. At least three intersections are required to generate one planar pattern, and a triangle pattern is generated. 13A and 13B illustrate a method of connecting intersections when three intersections and a form of a pattern that can be generated. A triangle pattern corresponding to three intersections may be generated in eight forms by changing positions in one cell.

도 14a 및 도 14b는 교점이 4개인 경우에 교점들을 연결하는 방법 및 생성 가능한 패턴의 형태를 도시한 도면이다. 도 14a 및 도 14b를 참조하면, 입력장치가 하나의 셀을 한 번 통과할 때 생성되는 4개의 교점의 생성 순서와 법선벡터의 방향에 따라 다양한 형태의 패턴이 생성되는 것을 확인할 수 있다. 4개의 교점이 있는 경우에는 교점의 생성 순서에 따라 하나의 셀에 대해 입력장치가 들어오는 면과 나가는 면을 정할 수 있다. 따라서 도 14b에 도시된 바와 같이 입력장치가 들어오는 면(IN)과 나가는 면(OUT)의 위치관계에 따라 입력이 8가지의 경우로 구분되고, 모두 42가지의 패턴이 생성된다.14A and 14B illustrate a method of connecting intersections when four intersections and a form of a pattern that can be generated. Referring to FIGS. 14A and 14B, it can be seen that various patterns are generated according to the generation order of four intersection points and the direction of the normal vector generated when the input device passes one cell once. If there are four intersections, the input and output sides of the input device can be determined for one cell according to the order of intersection. Accordingly, as shown in FIG. 14B, the input is divided into eight cases according to the positional relationship between the input surface IN and the output surface OUT of the input device, and 42 patterns are generated.

도 15a 및 도 15b는 교점이 5개인 경우에 교점들을 연결하는 방법 및 생성 가능한 패턴의 형태를 도시한 도면으로, 이러한 경우는 입력이 한 면으로 들어와 휘어져 두 면으로 나가는 경우에만 발생한다. 도 15a의 (b)와 같이 먼저 교점의 생성 순서 및 법선벡터의 방향에 따라 4개의 교점을 연결한 면을 생성하고, 5번째 교점은 도 15a의 (c)와 같이 두 개의 교점과의 방향성에 따라 연결하여 도 15a의 (d)와 같은 패턴을 생성한다.15A and 15B illustrate a method of connecting intersections in the case of five intersections and a form of a pattern that can be generated, and this case only occurs when an input enters one side and bends to two sides. First, as shown in (b) of FIG. 15A, a plane is formed by connecting four intersection points according to the generation order of the intersection points and the direction of the normal vector, and the fifth intersection point is directed to the two intersection points as shown in (c) of FIG. 15A. By connecting along, a pattern as shown in (d) of FIG. 15A is generated.

교점이 5개인 경우에는 교점이 4개인 경우와 달리 입력장치가 들어오는 면이 인접선이면 나가는 면은 항상 반대선으로, 들어오는 면이 반대선이면 나가는 면은 항상 인접선이 된다. 이러한 방법으로 생성 가능한 총 12가지의 패턴 중에서 도 15b에 도시된 것과 같은 3가지 패턴이 실질적으로 입력장치의 통과에 의해 생성된다. 나머지 패턴들은 입력장치가 셀을 통과하는 도중 입력이 중단되는 경우에 발생한다.In the case of 5 intersections, unlike the case of 4 intersections, the outgoing side is always the opposite line if the input device is adjacent to the input line, and the outgoing side is always the adjacent line if the incoming side is the opposite line. Of the total 12 patterns that can be generated in this way, three patterns as shown in FIG. 15B are substantially generated by passage of the input device. The remaining patterns occur when the input is interrupted while the input device is passing through the cell.

다음으로 도 16a 및 도 16b는 교점이 6개인 경우에 교점들을 연결하는 방법 및 생성 가능한 패턴의 형태를 도시한 도면이다. 도 16a를 참조하면, 입력장치가 셀을 한번 통과하여 6개의 교점이 생성되는 경우는 들어오는 면이 인접선일 때 인접면을 거쳐 인접선으로 나가는 경우 및 들어오는 면이 반대선일 때 나가는 면도 반대선인 경우에 발생한다. 생성된 6개의 교점으로 생성 순서 및 법선벡터의 방향에 따라 도 16a의 (b) 내지 (d)에 도시된 것과 같이 순차적으로 패턴을 생성한다. 도 16b는 6개의 교점으로 생성 가능한 패턴 중에서 실질적으로 입력장치의 통과에 의해 생성되는 3가지의 패턴을 도시한 것으로, 나머지 패턴은 입력장치가 셀을 통과한 후 다시 진입하여 교점이 생성되는 경우에 해당한다.Next, FIGS. 16A and 16B illustrate a method of connecting intersections and a form of a pattern that can be generated when there are six intersections. Referring to FIG. 16A, when an input device passes through a cell once and six intersections are generated, when an input side is an adjacent line and exits through an adjacent surface to an adjacent line, and when the input surface is an opposite line, the input device is an opposite line. Occurs. The patterns are generated sequentially as shown in (b) to (d) of FIG. 16A according to the generated intersection points and the direction of the normal vector. FIG. 16B illustrates three patterns generated by the passage of the input device substantially from among the patterns that can be generated by the six intersections, and the remaining patterns are entered when the input device passes through the cell and then enters the intersection again. Corresponding.

도 17은 본 발명에 따른 곡면 모델링 장치에 의해 얻어진 패턴들을 서로 연결한 곡면과 기존의 마칭큐브 알고리즘에 의해 생성된 곡면을 도시한 도면이다. 도 17의 (a)는 패턴 생성부(120)에 의해 각 셀에 대하여 생성된 패턴들을 연결하여 얻어진 곡면으로, 사용자에 의한 입력장치의 움직임으로 생성된 모든 교점을 연결함으로써 사용자의 의도와 일치하는 곡면이 생성된다. 도 17의 (b)는 마칭큐브 알고리즘을 사용하여 생성된 곡면으로, 입력의 형태가 단순하므로 사용자 입력과 유사한 형태의 곡면이 생성되었다.FIG. 17 is a diagram illustrating curved surfaces obtained by connecting patterns obtained by the curved surface modeling apparatus according to the present invention, and curved surfaces generated by a conventional marching cube algorithm. FIG. 17 (a) is a curved surface obtained by connecting patterns generated for each cell by the pattern generator 120, in which all intersections generated by the movement of the input device by the user are connected to match the intention of the user. The surface is created. FIG. 17B illustrates a curved surface generated by using a marching cube algorithm. Since the input form is simple, a curved surface similar to a user input is generated.

이와 같이 본 발명에 의해 생성된 곡면과 마칭큐브 알고리즘에 의해 생성된 곡면의 형태가 유사하다 하더라도 두 방법은 패턴을 생성하는 범위에 있어서 차이를 보인다. 도 18은 본 발명과 마칭큐브 알고리즘에서 곡면이 생성되는 범위를 비교하여 나타낸 도면이다. 도 18의 (a)는 본 발명에 의한 교점 연결 패턴을 나타낸 도면으로, 정확하게 완드가 셀을 통과한 범위에 따라 곡면이 생성된다. 그러나 마칭큐브 알고리즘을 사용할 경우에는 셀 내에 한 개의 입력이라도 포함되면 해당 셀에 패턴을 형성하기 때문에 도 18의 (b)와 같이 곡면 생성 범위가 넓어져 사용자의 의도와 다른 형태가 생성될 수 있다.As described above, although the curved surface generated by the present invention and the curved surface generated by the marching cube algorithm are similar, the two methods show a difference in the range for generating the pattern. FIG. 18 is a diagram illustrating a comparison between a range in which curved surfaces are generated in the present invention and a marching cube algorithm. FIG. Figure 18 (a) is a view showing the intersection connection pattern according to the present invention, a curved surface is generated according to the precise range of the wand passed through the cell. However, in the case of using the marching cube algorithm, when a single input is included in a cell, a pattern is formed in the corresponding cell, and thus, a shape generation range widens as shown in FIG.

또한 본 발명에 따른 곡면 모델링 장치는 단순한 입력뿐만 아니라 셀 내에서 입력장치가 회전하는 등의 복잡한 입력에 대하여도 정확한 패턴을 생성할 수 있다. 도 19는 하나의 셀을 통과하는 입력장치의 입력에 대해 마칭큐브 알고리즘 및 패턴 생성부에 의해 생성된 패턴을 도시한 도면이다. 도 19의 (a)는 입력장치가 셀의 윗면으로 들어와 셀 내부에서 회전하여 앞면을 통해 나가는 경우를 나타낸 도면이고, (b)는 이러한 입력장치의 움직임에 대해 마칭큐브 알고리즘에 의해 생성된 패턴을 나타낸 도면이다. 마칭큐브 알고리즘은 셀 내의 입력점에 의해 패턴을 생성하므로, 입력이 일정하지 않고 복잡한 데이터인 경우에는 사용자의 의도와 다른 형태의 패턴이 생성되는 것을 확인할 수 있다. 그러나 도 19의 (c)와 같이 교점 연결을 통해 패턴을 생성하는 경우에는 입력장치의 회전으로 인한 입력의 변화에 상관없이 실제 입력장치의 이동경로와 유사한 형태의 패턴을 생성할 수 있다.In addition, the curved surface modeling apparatus according to the present invention can generate an accurate pattern not only for a simple input but also for a complicated input such as a rotation of an input device in a cell. FIG. 19 is a diagram illustrating a pattern generated by a marching cube algorithm and a pattern generator for an input of an input device passing through one cell. (A) of FIG. 19 illustrates a case in which the input device enters the upper surface of the cell, rotates inside the cell, and exits through the front surface, and (b) illustrates a pattern generated by the marching cube algorithm for the movement of the input device. The figure shown. Since the marching cube algorithm generates a pattern by input points in a cell, when the input is not constant and complicated data, a pattern of a form different from the user's intention is generated. However, when the pattern is generated through the intersection connection as shown in FIG. 19C, a pattern similar to the movement path of the actual input device may be generated regardless of the change in the input due to the rotation of the input device.

도 20은 단순한 입력에 대해 마칭큐브 알고리즘과 패턴 생성부(120)에 의해 생성된 패턴을 도시한 도면이다. 도 20의 (a)와 같이 입력장치가 회전 없이 단순히 한 방향으로 셀을 통과하는 경우에는 마칭큐브 알고리즘에 의해 생성된 (b)의 패턴 및 패턴 생성부(120)에 의해 생성된 (c)의 패턴의 형태가 유사하게 얻어지는 것을 알 수 있다.20 is a diagram illustrating a pattern generated by the marching cube algorithm and the pattern generator 120 for a simple input. As shown in (a) of FIG. 20, when the input device simply passes through the cell in one direction without rotation, the pattern of (b) and the pattern generating unit 120 of (b) generated by the marching cube algorithm are generated. It can be seen that the shape of the pattern is similarly obtained.

도 21a 및 도 21b는 셀을 통과하는 입력장치의 속도와 방향이 변화함에 따라 얻어지는 패턴을 도시한 도면이다. 먼저 도 21a는 사용자가 입력장치를 이동시킴에 따라 셀 내의 특정 부분에서 입력의 빈도가 달라지는 경우를 나타낸 것이다. 도 21a의 (a)와 같이 셀 내에서 입력장치의 이동방향이 급격하게 변화함에 따라 변화하는 지점에서 입력의 빈도가 높아지는 경우, 마칭큐브 알고리즘에 의해 얻어지는 도 21a의 (b)의 패턴은 각 점의 등가치(isovalue)를 계산하므로 사용자의 실제 의도와 다른 패턴이 생성된다. 그러나 본 발명에 따른 곡면 모델링 장치의 패턴 생성부(120)에 의해 생성되는 패턴은 입력의 빈도와 무관하게 교점의 연결에 의해 패턴을 생성하므로 실제 입력장치의 움직임에 가까운 패턴을 생성할 수 있다. 셀 내에서 입력장치의 움직임이 급격하게 변화하는 부분은 뒤에 설명한 셀의 분할에 의해 표현할 수 있다.21A and 21B illustrate patterns obtained as the speed and direction of an input device passing through a cell change. First, FIG. 21A illustrates a case where an input frequency is changed in a specific part of a cell as a user moves an input device. As shown in (a) of FIG. 21A, when the frequency of input increases at the point of change as the direction of movement of the input device changes rapidly in the cell, the pattern of FIG. 21A (b) obtained by the marching cube algorithm is used for each point. By calculating the isovalue of, a pattern is generated that is different from the user's actual intent. However, the pattern generated by the pattern generating unit 120 of the curved modeling device according to the present invention generates a pattern by connecting the intersections regardless of the frequency of the input, thereby generating a pattern close to the movement of the actual input device. The part where the movement of the input device changes rapidly in the cell can be expressed by the division of the cell described later.

또한 도 21b의 (a)는 입력장치의 움직임이 셀 내에서 한 번 멈추었다가 다시 진행하는 경우를 나타낸 것이다. 이러한 경우 도 21b의 (b)에 도시된 마칭큐브 알고리즘에 의한 패턴은 실제 입력장치의 움직임에 무관한 형태를 가지지만, 도 21b의 (c)에 도시된 패턴 생성부(120)에 의한 패턴은 입력장치의 움직임에 따른 형태를 가짐으로써 사용자의 의도를 잘 반영하고 있다.In addition, (a) of FIG. 21B illustrates a case where the movement of the input device stops once in the cell and then proceeds again. In this case, the pattern by the marching cube algorithm shown in (b) of FIG. 21B has a form irrelevant to the movement of the actual input device, but the pattern by the pattern generating unit 120 shown in (c) of FIG. The user's intention is well reflected by having the shape according to the movement of the input device.

도 22a 및 도 22b는 입력장치의 복잡한 움직임에 의해 생성되는 패턴을 도시한 도면이다. 도 22a와 도 22b 모두 입력장치가 셀의 윗면에 대각으로 들어와 셀 내의 모서리를 지나서 옆면으로 나가는 복잡한 형태의 입력을 나타낸다. 마칭큐브 알고리즘은 정해진 15가지 패턴으로 실제 입력과 유사한 면을 생성하지만, 이와 같이 복잡한 입력의 경우에는 도 22a와 도 22b의 (b)에 도시된 것과 같이 사용자가 의도하지 않은 형태의 패턴을 생성하게 된다. 그러나 교점을 연결하여 패턴을 생성하는 방법의 경우에는 입력의 복잡도와 별개로 패턴의 생성이 가능하며, 도 22a와 도 22b의 (c)에 도시된 것과 같이 실제 입력장치의 움직임과 유사한 형태의 패턴이 생성된다.22A and 22B illustrate patterns generated by complex movements of the input device. 22A and 22B both show complex inputs in which the input device is diagonal to the top of the cell and exits sideways past the edges within the cell. The marching cube algorithm generates a surface similar to the actual input with 15 predetermined patterns. However, in the case of such a complicated input, the marching cube algorithm generates a pattern that is not intended by the user as shown in FIGS. 22A and 22B. do. However, in the case of generating a pattern by connecting intersections, a pattern can be generated separately from the complexity of the input, and a pattern similar to the motion of an actual input device as shown in FIGS. 22A and 22B (c). Is generated.

이와 같이 본 발명에 따른 곡면 모델링 장치의 패턴 생성부(120)에 의하면 입력장치의 이동경로에 의해 셀의 모서리에서 생성되는 교점을 연결함으로써 각각의 셀에 대응하는 패턴을 적응적으로 생성하므로, 사전에 정해진 몇 가지의 패턴을 사용하는 마칭큐브 알고리즘에 비하여 사용자의 의도가 정확하게 반영된 3차원 곡면을 생성할 수 있다.As described above, the pattern generator 120 of the curved modeling apparatus adaptively generates a pattern corresponding to each cell by connecting intersections generated at edges of cells by a movement path of the input device. Compared to the marching cube algorithm using several patterns defined in Fig. 3, a three-dimensional curved surface accurately reflecting the user's intention can be generated.

패턴 갱신부(130)는 패턴을 포함하는 셀을 사전에 설정된 분할횟수에 따라 반복적으로 분할하여 복수의 하위 셀을 생성하되, 각각의 분할시마다 생성된 하위 셀들이 가지는 교점 및 법선벡터의 방향 정보를 기초로 패턴을 갱신한다.The pattern updater 130 generates a plurality of subcells by repeatedly dividing a cell including a pattern according to a preset number of divisions, and generates direction information of intersection points and normal vectors of the subcells generated at each division. Update the pattern on the basis.

격자 기반 알고리즘에서 일정한 크기의 셀에 의해 모델을 표현하는 경우에는 모델의 세밀한 부분을 표현하는 데 한계가 있다. 또한 셀의 크기가 작아지면 미세한 표현이 가능하지만 연산량이 증가하여 실시간 모델링이 어려워진다. 따라서 패턴 갱신부(130)는 3차원 격자구조를 구성하는 모든 셀을 분할하지 않고 세밀한 표현이 필요하다고 판단되는 셀을 선택적으로 분할하여 사용자의 의도에 부합하는 패턴을 생성한다.In the grid-based algorithm, when the model is represented by a cell of a constant size, there is a limit in expressing the details of the model. In addition, as the size of the cell becomes smaller, finer expression is possible, but the computational amount increases, making real-time modeling difficult. Accordingly, the pattern updater 130 selectively divides the cells determined to require detailed expression without dividing all the cells constituting the 3D grid structure to generate a pattern that meets the intention of the user.

옥트리는 각 노드가 최대 8개의 자식노드를 가지는 하나의 트리구조로서, 정육면체로 구성되는 3차원 공간을 표현할 때 이상적인 구조이다. 패턴 갱신부(130)는 3차원 격자구조를 구성하는 셀들 중에서 패턴을 포함하는 셀, 즉 입력장치가 통과한 셀을 8개의 하위 셀로 분할한다. 이러한 분할 과정은 반복적으로 수행되며, 각각의 분할시마다 생성된 하위 셀에 대하여 패턴의 갱신 과정이 수행된다.An octree is a tree structure in which each node has up to eight child nodes, which is ideal for representing a three-dimensional space composed of cubes. The pattern updater 130 divides the cell including the pattern, that is, the cell passed by the input device, into eight sub-cells among the cells constituting the 3D grid structure. This division process is repeatedly performed, and the pattern updating process is performed for the lower cells generated for each division.

즉, 최상위 셀이 분할되어 8개의 상위 셀이 생성되면, 이러한 상위 셀들 각각에 대한 교점 및 법선벡터의 정보를 기초로 새로운 패턴이 생성된다. 이때 상위 셀들 중에서 교점을 가지지 않는 셀은 다음의 분할 과정에서 제외되고, 갱신된 패턴을 가지는 상위 셀만 다시 하위 셀로 분할된다. 패턴 갱신부(130)에 의한 반복적인 분할 횟수는 사전에 설정될 수 있으며, 특정 셀을 분할할 것인지 여부에 대하여 적응적인 기준을 설정할 수도 있다.That is, when the uppermost cell is divided and eight upper cells are generated, a new pattern is generated based on the information of the intersection point and the normal vector for each of these upper cells. At this time, the cell having no intersection among the upper cells is excluded in the next partitioning process, and only the upper cell having the updated pattern is divided into lower cells again. The number of repetitive divisions by the pattern updater 130 may be set in advance, and an adaptive criterion may be set for whether or not to divide a specific cell.

도 23은 3차원 격자구조를 구성하는 셀의 크기에 따라 얻어지는 곡면을 나타낸 도면이다. 도 23의 (a)는 사용자가 그리고자 하는 목표 곡면을 나타낸다. 이를 3차원 격자구조 내에서 표현하고자 할 때, 격자구조를 구성하는 셀의 크기가 지나치게 크면 도 23의 (b)와 같이 부드러운 곡면의 형태를 표현하는 데 한계가 있다. 또한 셀의 크기가 지나치게 작아지면 도 23의 (c)와 같이 목표 곡면과 거의 동일한 형태의 곡면을 생성할 수 있으나, 계산량이 많아져 비효율적이다. 그러나 앞에서 설명한 것과 같이 적응적인 분할방법을 사용하면 도 23의 (d)와 같이 사용자가 의도한 것과 유사한 형태를 가지는 곡면을 빠르게 생성할 수 있다.FIG. 23 is a diagram showing curved surfaces obtained according to the sizes of cells constituting a three-dimensional lattice structure. FIG. FIG. 23A illustrates a target surface to be drawn by the user. When trying to express this in a three-dimensional lattice structure, if the size of the cells constituting the lattice structure is too large, there is a limit to expressing the shape of a smooth curved surface as shown in Fig. 23 (b). In addition, if the size of the cell is too small, as shown in (c) of FIG. 23, a curved surface having substantially the same shape as the target curved surface may be generated, but the amount of calculation is large, which is inefficient. However, using the adaptive segmentation method as described above, it is possible to quickly generate a curved surface having a similar shape as the user intended as shown in (d) of FIG.

한편, 패턴 갱신부(130)는 패턴을 포함하는 모든 셀을 하위 셀로 분할하는 대신 셀 내에서 입력의 변화가 큰 경우에만 해당 셀을 분할할 수도 있다. 도 24는 법선벡터의 방향 변화에 따라 셀이 분할되는 일 예를 도시한 도면이다. 도 24의 좌측 도면을 참조하면, 입력장치가 하나의 셀을 통과할 때 셀 내부에서 입력장치의 방향이 변화하였다. 이는 입력장치가 셀 내부로 들어올 때 가장 먼저 생성되는 교점과 입력장치가 셀 외부로 나갈 때 가장 마지막으로 생성되는 교점에서의 법선벡터의 방향을 통해 알 수 있다.On the other hand, instead of dividing all cells including the pattern into lower cells, the pattern updater 130 may divide the corresponding cells only when the input change is large in the cells. FIG. 24 is a diagram illustrating an example of dividing a cell according to a change in direction of a normal vector. Referring to the left figure of FIG. 24, when the input device passes through one cell, the direction of the input device changes inside the cell. This can be seen from the direction of the normal vector at the intersection generated first when the input device enters the cell and the last generated intersection when the input device exits the cell.

따라서 패턴 갱신부(130)는 하나의 셀에 대하여 생성된 교점들 중에서 가장 먼저 생성된 교점과 가장 마지막으로 생성된 교점에서의 법선벡터의 방향이 사전에 설정된 기준각도 이상으로 변화하면 해당 셀을 하위 셀들로 분할할 수 있다. 기준각도의 크기가 작아질수록 입력장치의 급격한 변화를 잘 표현할 수 있으나 분할의 횟수가 많아지게 되고, 기준각도의 크기가 커지면 세밀한 표현의 정확도는 떨어지게 된다. 따라서 기준각도의 값을 적절하게 설정하며, 일 실시예로서 기준각도를 45°로 설정할 수 있다.Therefore, the pattern updater 130 subordinates the corresponding cell when the direction of the normal vector at the first and the last intersections generated for one cell changes more than a preset reference angle. Can be divided into cells. As the size of the reference angle decreases, the abrupt change of the input device can be represented well, but the number of divisions increases, and the precision of the detailed expression decreases as the size of the reference angle increases. Therefore, the reference angle may be appropriately set, and as an example, the reference angle may be set to 45 °.

또한 패턴 갱신부(130)는 입력장치의 이동경로의 가장자리에 해당하는 부분을 세밀하게 표현하기 위해 이동경로의 가장자리에 위치하는 셀을 선택적으로 분할할 수도 있다. 도 25는 입력장치의 이동경로의 가장자리에 위치하는 셀이 분할되는 일 예를 도시한 도면이다. 도 25를 참조하면, 좌측의 도면과 같이 입력장치가 셀을 통과할 경우에 이동경로의 가장자리에 해당하는 셀들은 두 개씩의 교점을 가지게 되어 패턴 생성에서 제외된다. 그러나 이러한 셀들을 제외하고 패턴을 생성하게 되면 실제 입력보다 작은 범위로 곡면이 생성된다. 따라서 실제 입력을 정확하게 반영하기 위해 이동경로의 가장자리에 위치하는 셀을 반복적으로 분할함으로써 패턴을 생성할 수 있다.In addition, the pattern updater 130 may selectively divide the cell located at the edge of the movement path in order to express in detail the portion corresponding to the edge of the movement path of the input device. FIG. 25 is a diagram illustrating an example of dividing a cell located at an edge of a movement path of an input device. Referring to FIG. 25, when the input device passes through a cell as shown in the left figure, cells corresponding to the edge of the movement path have two intersections, and thus are excluded from the pattern generation. However, except for these cells, creating a pattern creates a surface with a smaller range than the actual input. Therefore, the pattern may be generated by repeatedly dividing a cell located at the edge of the movement path to accurately reflect the actual input.

즉, 도 25의 우측 도면과 같이 이동경로의 가장자리에 위치하는 6개의 셀들을 두 번 분할하면 입력장치가 완전히 통과하는 하위 셀들을 얻을 수 있다. 따라서 패턴 갱신부(130)는 이러한 하위 셀에 대한 패턴을 생성함으로써 입력장치의 이동경로에 일치하는 곡면이 생성되도록 한다.That is, as shown in the right figure of FIG. 25, if the six cells located at the edge of the movement path are divided twice, the lower cells through which the input device passes completely can be obtained. Accordingly, the pattern update unit 130 generates a pattern for the lower cell so that a curved surface matching the movement path of the input device is generated.

곡면 생성부(140)는 패턴 생성부(120) 및 패턴 갱신부(130)에 의해 생성된 복수의 패턴을 연결하여 3차원 곡면을 생성한다.The curved surface generating unit 140 connects a plurality of patterns generated by the pattern generating unit 120 and the pattern updating unit 130 to generate a three-dimensional curved surface.

패턴 생성부(120) 및 패턴 갱신부(130)에 의한 패턴 생성은 각각의 셀 단위로 이루어진다. 곡면 생성부(140)는 최종적으로 생성된 복수의 패턴을 연결함으로써 입력장치의 움직임에 대응하는 3차원 곡면을 생성할 수 있다.Pattern generation by the pattern generator 120 and the pattern updater 130 is performed in units of cells. The curved surface generating unit 140 may generate a 3D curved surface corresponding to the movement of the input device by connecting a plurality of finally generated patterns.

그런데 패턴을 포함하는 서로 인접한 셀의 크기가 서로 다른 경우, 즉 트리구조에서의 레벨이 다른 셀이 인접하여 위치하는 경우에는 패턴의 경계선이 일치하지 않는 경우가 발생할 수 있다. 도 26은 서로 인접한 셀의 크기가 다른 경우에 발생하는 패턴의 불일치를 도시한 도면이다. 도 26을 참조하면, 좌측의 셀은 8개의 하위 셀로 분할된 반면 우측의 셀은 분할되지 않아 인접한 셀의 크기가 서로 다르다. 또한 좌측의 패턴은 작은 크기의 하위 셀에 대해 각각 생성되어 구부러진 곡면을 표현하고 있는 반면, 우측의 패턴은 분할되지 않은 하나의 셀에 대해 생성되어 평평한 하나의 평면 형태를 가진다. 따라서 좌측과 우측 패턴이 연결될 때 이격되는 지점이 발생하게 된다.However, when the sizes of adjacent cells including the patterns are different, that is, when cells having different levels in the tree structure are adjacent to each other, the boundary lines of the patterns may not match. FIG. 26 is a diagram illustrating a pattern mismatch that occurs when the sizes of adjacent cells are different. Referring to FIG. 26, the cell on the left is divided into eight subcells while the cell on the right is not divided, and thus adjacent cells have different sizes. In addition, the pattern on the left side represents the curved surface that is generated and bent for each of the lower-sized cells, while the pattern on the right side is generated for one undivided cell and has a flat shape. As a result, when the left and right patterns are connected, spaced points are generated.

곡면 생성부(140)는 이를 해결하기 위해 인접한 셀 사이의 경계면에서 하위 셀에 해당하는 셀이 가지는 교점의 정보를 상위 셀에 해당하는 셀이 가지는 교점의 정보에 일치시킴으로써 서로 다른 크기의 인접한 셀들 사이에서 패턴이 자연스럽게 연결되도록 한다. 도 27은 서로 다른 크기의 인접한 셀에 대해 생성된 패턴을 연결시키는 일 예를 도시한 도면이다. 도 27의 (a)를 참조하면, 인접한 셀의 크기가 서로 달라짐에 의해 하위 셀에서 생성된 패턴과 상위 셀에서 생성된 패턴 사이에 이격되는 부분이 발생하였다. 이때 상위 셀과 하위 셀 사이의 경계면에서 하위 셀의 교점 정보를 상위 셀에 일치시킴으로써 도 27의 (b)와 같이 패턴이 자연스럽게 연결되는 것을 확인할 수 있다.In order to solve this problem, the surface generating unit 140 matches the intersection information of the cell corresponding to the lower cell with the intersection information of the cell corresponding to the upper cell in the interface between the adjacent cells, and thus, between adjacent cells of different sizes. Make the patterns connect naturally. FIG. 27 is a diagram illustrating an example of connecting patterns generated for adjacent cells of different sizes. Referring to (a) of FIG. 27, a portion spaced between a pattern generated in a lower cell and a pattern generated in an upper cell occurs due to a difference in sizes of adjacent cells. At this time, by matching the intersection information of the lower cell to the upper cell at the interface between the upper cell and the lower cell, it can be confirmed that the patterns are naturally connected as shown in FIG. 27 (b).

도 28은 곡면 생성부(140)에 의해 생성된 3차원 곡면의 일 예를 도시한 도면이다. 도 28을 참조하면, 3차원 곡면은 복수의 셀에 대하여 생성된 패턴이 서로 연결되어 생성된다. 이때 패턴을 포함하는 모든 셀이 분할되지 않고 곡면이 급격하게 변화하는 부분에 대하여만 하위 셀로 분할되어 사용자의 의도를 정확하게 반영하면서도 빠르게 3차원 곡면을 생성할 수 있다. 또한 입력장치가 셀을 통과하지 않고 일부를 지나가는 경우에도 앞에서 설명한 적응적인 분할에 의해 입력장치의 입력경로를 정확하게 표현할 수 있다.28 is a diagram illustrating an example of a 3D curved surface generated by the curved surface generating unit 140. Referring to FIG. 28, a three-dimensional curved surface is generated by connecting patterns generated for a plurality of cells to each other. In this case, all cells including the pattern may be divided into sub-cells only for the portion where the curved surface is rapidly changed, and thus the 3D curved surface can be quickly generated while accurately reflecting the user's intention. In addition, even when the input device does not pass through the cell but partially passes, the input path of the input device can be accurately represented by the adaptive division described above.

도 29는 본 발명에 따른 3차원 격자구조에서의 교점을 이용한 곡면 모델링 방법에 대한 바람직한 실시예의 수행과정을 도시한 흐름도이다.29 is a flowchart illustrating a process of performing a preferred embodiment of the curved surface modeling method using the intersection points in the three-dimensional lattice structure according to the present invention.

도 29를 참조하면, 교점 생성부(110)는 3차원 입력공간 내에서 이동하는 입력장치의 위치정보 및 방향을 기초로 입력공간에 대응하여 생성된 3차원 격자구조를 구성하는 복수의 셀 각각에 대하여 각각의 셀의 모서리와 입력장치의 이동경로 사이의 교점을 생성하고, 교점에서 입력장치가 가리키는 방향에 따른 법선벡터를 산출한다(S1110).Referring to FIG. 29, the intersection generator 110 may include a plurality of cells constituting a three-dimensional grid structure generated in correspondence to the input space based on the position information and the direction of the input device moving in the three-dimensional input space. An intersection is generated between the edge of each cell and the movement path of the input device, and a normal vector corresponding to the direction pointed by the input device is calculated at the intersection (S1110).

다음으로 패턴 생성부(120)는 교점을 가지는 각각의 셀에 대해 교점의 생성 순서 및 각각의 교점에서의 법선벡터의 방향을 기초로 교점이 연결된 다각형 패턴을 생성한다(S1120). 또한 패턴 갱신부(130)는 패턴을 포함하는 셀을 사전에 설정된 분할횟수에 따라 반복적으로 분할하여 복수의 하위 셀을 생성하되, 각각의 분할시마다 상위 셀이 분할되어 생성된 하위 셀들이 가지는 교점 및 법선벡터의 방향 정보를 기초로 상위 셀에 대해 생성된 패턴을 갱신한다(S1130).Next, the pattern generator 120 generates a polygonal pattern in which the intersections are connected based on the generation order of the intersections and the direction of the normal vector at each intersection for each cell having the intersections (S1120). In addition, the pattern updater 130 generates a plurality of lower cells by repeatedly dividing the cell including the pattern according to a preset number of divisions, and the intersection points of the lower cells generated by splitting the upper cell at each division and The generated pattern for the upper cell is updated based on the direction information of the normal vector (S1130).

마지막으로 곡면 생성부(140)는 패턴 생성부(120) 및 패턴 갱신부(130)에 의해 생성된 복수의 패턴을 연결하여 3차원 곡면을 생성한다(S1140).Finally, the curved surface generating unit 140 connects a plurality of patterns generated by the pattern generating unit 120 and the pattern updating unit 130 to generate a three-dimensional curved surface (S1140).

본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.The present invention can also be embodied as computer-readable codes on a computer-readable recording medium. The computer-readable recording medium includes all kinds of recording devices in which data that can be read by a computer system is stored. Examples of the computer-readable recording medium include a ROM, a RAM, a CD-ROM, a magnetic tape, a floppy disk, an optical data storage device, and the like, and may be implemented in the form of a carrier wave (for example, transmission via the Internet) . The computer readable recording medium can also be distributed over network coupled computer systems so that the computer readable code is stored and executed in a distributed fashion.

이상에서 본 발명의 바람직한 실시예에 대해 도시하고 설명하였으나, 본 발명은 상술한 특정의 바람직한 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변형 실시가 가능한 것은 물론이고, 그와 같은 변경은 청구범위 기재의 범위 내에 있게 된다.Although the preferred embodiments of the present invention have been shown and described above, the present invention is not limited to the specific preferred embodiments described above, and the present invention belongs to the present invention without departing from the gist of the present invention as claimed in the claims. Various modifications can be made by those skilled in the art, and such changes are within the scope of the claims.

110 - 교점 생성부
120 - 패턴 생성부
130 - 패턴 갱신부
140 - 곡면 생성부
110-Vertex Generator
120-pattern generator
130-pattern update unit
140-surface generator

Claims (11)

3차원 입력공간 내에서 이동하는 입력장치의 위치정보 및 방향을 기초로 상기 입력공간에 대응하여 생성된 3차원 격자구조를 구성하는 복수의 셀 각각에 대하여 상기 각각의 셀의 모서리와 상기 입력장치의 이동경로 사이의 교점을 생성하고, 상기 교점에서 상기 입력장치가 가리키는 방향에 따른 법선벡터를 산출하는 교점 생성부;
상기 교점을 가지는 각각의 셀에 대해 상기 교점의 생성 순서 및 상기 각각의 교점에서의 상기 법선벡터의 방향을 기초로 상기 교점을 연결하여 다각형 패턴을 생성하는 패턴 생성부;
상기 패턴을 포함하는 셀을 사전에 설정된 분할횟수에 따라 반복적으로 분할하여 복수의 하위 셀을 생성하되, 각각의 분할시마다 상위 셀이 분할되어 생성된 하위 셀들이 가지는 교점 및 법선벡터의 방향 정보를 기초로 상기 상위 셀에 대해 생성된 패턴을 갱신하는 패턴 갱신부; 및
상기 패턴 생성부 및 상기 패턴 갱신부에 의해 생성된 복수의 패턴을 연결하여 3차원 곡면을 생성하는 곡면 생성부;를 포함하는 것을 특징으로 하는 곡면 모델링 장치.
The corners of the cells and the input device of the plurality of cells constituting the three-dimensional lattice structure generated corresponding to the input space based on the position information and the direction of the input device moving in the three-dimensional input space. An intersection generator which generates an intersection point between movement paths and calculates a normal vector according to a direction indicated by the input device at the intersection point;
A pattern generation unit generating a polygonal pattern by connecting the intersection points based on a generation order of the intersection points and a direction of the normal vector at each intersection point for each cell having the intersection points;
A plurality of subcells are generated by repeatedly dividing a cell including the pattern according to a preset number of divisions, and based on direction information of intersection points and normal vectors of lower cells generated by splitting an upper cell at each division. A pattern updater for updating a pattern generated for the upper cell with a; And
And a curved surface generator for connecting a plurality of patterns generated by the pattern generator and the pattern updater to generate a three-dimensional curved surface.
제 1항에 있어서,
상기 패턴 갱신부는 상기 패턴을 포함하는 셀들 중에서 가장 먼저 생성된 교점과 가장 마지막으로 생성된 교점에 대한 법선벡터의 방향의 차가 사전에 설정된 기준각도 이상인 셀을 분할하여 상기 하위 셀을 생성하는 것을 특징으로 하는 곡면 모델링 장치.
The method of claim 1,
The pattern updating unit generates the sub-cell by dividing a cell having a difference in the direction of a normal vector with respect to the first generated intersection and the last generated intersection among cells including the pattern equal to or greater than a preset reference angle. Surface modeling device.
제 1항 또는 제 2항에 있어서,
상기 패턴 갱신부는 상기 복수의 셀들 중에서 상기 입력장치의 이동경로의 가장자리에 위치하는 셀을 분할하여 생성된 하위 셀이 가지는 교점 및 법선벡터의 방향 정보를 기초로 패턴을 생성하는 것을 특징으로 하는 곡면 모델링 장치.
3. The method according to claim 1 or 2,
The pattern updating unit generates a pattern based on direction information of intersection points and normal vectors of a lower cell generated by dividing a cell located at an edge of a movement path of the input device among the plurality of cells. Device.
제 1항 또는 제 2항에 있어서,
상기 곡면 생성부는 상기 반복적인 분할에 의해 생성된 복수의 셀들 중에서 서로 인접한 셀의 크기가 다른 경우에는 상기 인접한 셀 사이의 경계면에서 하위 셀에 해당하는 셀이 가지는 교점의 정보를 상위 셀에 해당하는 셀이 가지는 교점의 정보에 일치시키는 것을 특징으로 하는 곡면 모델링 장치.
3. The method according to claim 1 or 2,
If the size of the adjacent cells among the plurality of cells generated by the repetitive division is different from each other, the curved surface generating unit is a cell corresponding to the upper cell with the information of the intersection of the cells corresponding to the lower cells in the interface between the adjacent cells The surface modeling apparatus characterized by matching this branch with information of an intersection.
제 1항 또는 제 2항에 있어서,
상기 입력장치는 세 개의 적외선 반사마커로 이루어진 완드(wand)이며, 상기 입력장치의 위치정보 및 이동방향은 두 개의 적외선 카메라에 의해 상기 완드의 움직임을 추적함으로써 얻어지는 것을 특징으로 하는 곡면 모델링 장치.
3. The method according to claim 1 or 2,
The input device is a wand made of three infrared reflecting markers, and the position information and the moving direction of the input device are obtained by tracking the movement of the wand by two infrared cameras.
3차원 입력공간 내에서 이동하는 입력장치의 위치정보 및 방향을 기초로 상기 입력공간에 대응하여 생성된 3차원 격자구조를 구성하는 복수의 셀 각각에 대하여 상기 각각의 셀의 모서리와 상기 입력장치의 이동경로 사이의 교점을 생성하고, 상기 교점에서 상기 입력장치가 가리키는 방향에 따른 법선벡터를 산출하는 교점 생성단계;
상기 교점을 가지는 각각의 셀에 대해 상기 교점의 생성 순서 및 상기 각각의 교점에서의 상기 법선벡터의 방향을 기초로 상기 교점을 연결하여 다각형 패턴을 생성하는 패턴 생성단계;
상기 패턴을 포함하는 셀을 사전에 설정된 분할횟수에 따라 반복적으로 분할하여 복수의 하위 셀을 생성하되, 각각의 분할시마다 상위 셀이 분할되어 생성된 하위 셀들이 가지는 교점 및 법선벡터의 방향 정보를 기초로 상기 상위 셀에 대해 생성된 패턴을 갱신하는 패턴 갱신단계; 및
상기 패턴 생성단계 및 상기 패턴 갱신단계에서 생성된 복수의 패턴을 연결하여 3차원 곡면을 생성하는 곡면 생성단계;를 포함하는 것을 특징으로 하는 곡면 모델링 방법.
The corners of the cells and the input device of the plurality of cells constituting the three-dimensional lattice structure generated corresponding to the input space based on the position information and the direction of the input device moving in the three-dimensional input space. An intersection generation step of generating intersection points between movement paths and calculating a normal vector according to a direction indicated by the input device at the intersection point;
A pattern generation step of generating a polygon pattern by connecting the intersection points based on a generation order of the intersection points and a direction of the normal vector at each intersection point for each cell having the intersection points;
A plurality of subcells are generated by repeatedly dividing a cell including the pattern according to a preset number of divisions, and based on direction information of intersection points and normal vectors of lower cells generated by splitting an upper cell at each division. A pattern updating step of updating a pattern generated for the upper cell with a; And
And a surface generation step of generating a three-dimensional surface by connecting the plurality of patterns generated in the pattern generation step and the pattern update step.
제 6항에 있어서,
상기 패턴 갱신단계에서, 상기 패턴을 포함하는 셀들 중에서 가장 먼저 생성된 교점과 가장 마지막으로 생성된 교점에 대한 법선벡터의 방향의 차가 사전에 설정된 기준각도 이상인 셀을 분할하여 상기 하위 셀을 생성하는 것을 특징으로 하는 곡면 모델링 방법.
The method of claim 6,
In the pattern updating step, generating a lower cell by dividing a cell having a difference in a direction of a normal vector with respect to a first generated intersection and a last generated intersection among cells including the pattern being equal to or greater than a preset reference angle. Characterized by the surface modeling method.
제 6항 또는 제 7항에 있어서,
상기 패턴 갱신단계에서, 상기 복수의 셀들 중에서 상기 입력장치의 이동경로의 가장자리에 위치하는 셀을 분할하여 생성된 하위 셀이 가지는 교점 및 법선벡터의 방향 정보를 기초로 패턴을 생성하는 것을 특징으로 하는 곡면 모델링 방법.
The method according to claim 6 or 7,
In the pattern updating step, a pattern is generated based on direction information of an intersection point and a normal vector of a lower cell generated by dividing a cell located at an edge of a movement path of the input device among the plurality of cells. Surface modeling method.
제 6항 또는 제 7항에 있어서,
상기 곡면 생성단계에서, 상기 반복적인 분할에 의해 생성된 복수의 셀들 중에서 서로 인접한 셀의 크기가 다른 경우에는 상기 인접한 셀 사이의 경계면에서 하위 셀에 해당하는 셀이 가지는 교점의 정보를 상위 셀에 해당하는 셀이 가지는 교점의 정보에 일치시키는 것을 특징으로 하는 곡면 모델링 방법.
The method according to claim 6 or 7,
In the curved surface generation step, when adjacent cells of the plurality of cells generated by the repetitive division have different sizes, corresponding intersection information of a cell corresponding to a lower cell corresponds to an upper cell at an interface between the adjacent cells. Curved modeling method characterized in that it matches the information of the intersection point of the cell.
제 6항 또는 제 7항에 있어서,
상기 입력장치는 세 개의 적외선 반사마커로 이루어진 완드(wand)이며, 상기 입력장치의 위치정보 및 이동방향은 두 개의 적외선 카메라에 의해 상기 완드의 움직임을 추적함으로써 얻어지는 것을 특징으로 하는 곡면 모델링 방법.
The method according to claim 6 or 7,
The input device is a wand made of three infrared reflection markers, and the position information and the moving direction of the input device are obtained by tracking the movement of the wand by two infrared cameras.
제 6항 또는 제 7항에 기재된 곡면 모델링 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.A computer-readable recording medium having recorded thereon a program for executing the curved surface modeling method according to claim 6 or 7.
KR1020100021713A 2010-03-11 2010-03-11 Apparatus and method for modeling curved surface using intersection points in three-dimensional grid structure KR101105244B1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020100021713A KR101105244B1 (en) 2010-03-11 2010-03-11 Apparatus and method for modeling curved surface using intersection points in three-dimensional grid structure
PCT/KR2010/003527 WO2011111900A1 (en) 2010-03-11 2010-06-01 Apparatus and method for modeling curved surface using intersection points in three-dimensional lattice structure

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100021713A KR101105244B1 (en) 2010-03-11 2010-03-11 Apparatus and method for modeling curved surface using intersection points in three-dimensional grid structure

Publications (2)

Publication Number Publication Date
KR20110102618A true KR20110102618A (en) 2011-09-19
KR101105244B1 KR101105244B1 (en) 2012-01-13

Family

ID=44563685

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100021713A KR101105244B1 (en) 2010-03-11 2010-03-11 Apparatus and method for modeling curved surface using intersection points in three-dimensional grid structure

Country Status (2)

Country Link
KR (1) KR101105244B1 (en)
WO (1) WO2011111900A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101975603B1 (en) 2018-09-14 2019-08-28 이영문 Sea power generator

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102240564B1 (en) 2014-07-29 2021-04-15 삼성전자주식회사 Apparatus and method for rendering image
WO2017088134A1 (en) * 2015-11-25 2017-06-01 Siemens Product Lifecycle Management Software Inc. System and method for modeling of parts with lattice structures

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100809525B1 (en) 2005-12-08 2008-03-04 한국전자통신연구원 System and method for generating surface mesh surrounding particles
KR100707841B1 (en) 2006-04-04 2007-04-17 중앙대학교 산학협력단 Nurbs surface deformation apparatus and the method using 3d target curve
CN101383047B (en) 2007-09-03 2011-05-04 鸿富锦精密工业(深圳)有限公司 Curved surface meshing method

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101975603B1 (en) 2018-09-14 2019-08-28 이영문 Sea power generator

Also Published As

Publication number Publication date
WO2011111900A1 (en) 2011-09-15
KR101105244B1 (en) 2012-01-13

Similar Documents

Publication Publication Date Title
US7084869B2 (en) Methods and apparatus for detecting and correcting penetration between objects
Otaduy et al. Sensation preserving simplification for haptic rendering
Fuge et al. Conceptual design and modification of freeform surfaces using dual shape representations in augmented reality environments
EP3008702B1 (en) Scalable volumetric 3d reconstruction
EP2671210B1 (en) Three-dimensional environment reconstruction
Ren et al. A potential field model using generalized sigmoid functions
KR101028698B1 (en) Apparatus and method for three-dimensional modeling using lattice structure
US9892485B2 (en) System and method for mesh distance based geometry deformation
KR101105244B1 (en) Apparatus and method for modeling curved surface using intersection points in three-dimensional grid structure
Liu et al. BuildingSketch: Freehand mid-air sketching for building modeling
KR20230005312A (en) Method and Apparatus for Generating Floor Plans
Felbrich et al. Self-organizing maps for intuitive gesture-based geometric modelling in augmented reality
Schkolne et al. Surface drawing.
Çetinaslan Position manipulation techniques for facial animation
Sasaki et al. Facetons: face primitives with adaptive bounds for building 3D architectural models in virtual environment
Onishi et al. Modeling of trees with interactive L-system and 3D gestures
Zhang et al. Physically interacting with four dimensions
Basdogan et al. 3-DOF haptic rendering
Brož et al. Dynamic path planning with regular triangulations
Volarević et al. Freeform spatial modelling using depth-sensing camera
Yuan et al. The Fusion Method of Virtual Reality Technology and 3D Movie Animation Design.
CN116168183A (en) Automatic cutting method and system for 3D model in VR environment
Mora et al. Real-time fluid interaction with a haptic device
Pungotra Collision detection and merging of deformable B-spline surfaces in virtual reality environment
Zheng et al. A mobile environment for sketching-based skeleton generation

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20150417

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160119

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170104

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20180221

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20181126

Year of fee payment: 8