KR20030070426A - Exact geometry based triangle mesh generating method - Google Patents
Exact geometry based triangle mesh generating method Download PDFInfo
- Publication number
- KR20030070426A KR20030070426A KR1020020009962A KR20020009962A KR20030070426A KR 20030070426 A KR20030070426 A KR 20030070426A KR 1020020009962 A KR1020020009962 A KR 1020020009962A KR 20020009962 A KR20020009962 A KR 20020009962A KR 20030070426 A KR20030070426 A KR 20030070426A
- Authority
- KR
- South Korea
- Prior art keywords
- triangle
- point
- dimensional
- loop
- parameter
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/20—Finite element generation, e.g. wire-frame surface description, tesselation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/20—Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Architecture (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Geometry (AREA)
- Image Generation (AREA)
Abstract
Description
본 발명은 3차원 그래픽(3D graphics)에서 형상을 디스플레이하기 위한 엔진에 사용되는 삼각망 생성 방법에 관한 것으로써, 특히 3D로 모델링된 경계 표현 곡면(bounded surface)으로부터 경계와 곡률을 고려하여 곡면 내부를 삼각형으로 만드는 방법에 있어서 모든 곡면을 NURBS(Non-Uniform Rational B-spline Surface)로 변환하지 않고 원래의 곡면상에서 삼각화하는 방법에 관한 것이다.The present invention relates to a triangular net generation method used in an engine for displaying a shape in 3D graphics, and in particular, considering the boundary and curvature from a bounded surface modeled in 3D. To triangulate all the surfaces on the original surface without converting them to non-uniform Rational B-spline surfaces (NURBS).
3차원 그래픽에 있어서 3D 형상의 디스플레이를 위해서는 형상의 내부를 미세한 단위 요소로 조각내어 이를 표현하는데, 단위 요소의 모양으로는 통상 삼각형이 사용되며 이들 삼각형의 집합을 삼각망(Triangle Mesh)이라 하며, 삼각망을 생성하는 장치를 삼각망 생성기(Triangulator)라 한다.In 3D graphics, for the display of 3D shapes, the inside of the shape is sculpted into fine unit elements, which are represented by triangles. The set of unit elements is usually a triangle, and a set of these triangles is called a triangle mesh. A device for generating a triangular network is called a triangulator.
삼각망 생성을 위한 다양한 종래의 삼각망 생성 방법 및 종래의 삼각망 생성기가 이미 제공되고 있다.Various conventional triangular net generation methods and conventional triangular net generators for triangular net generation have already been provided.
도 1은 종래의 삼각망 생성 방법의 일예를 나타내는 순서도이다.1 is a flowchart illustrating an example of a conventional triangular network generating method.
먼저 기저 곡면(base surface)을 NURBS(Non-Uniform Rational B-spline Surface)로 변환하고(S 110), 다음 경계 곡선을 트리밍 곡선(trimming curve)으로변환한다(S 120). 즉, 기저 곡면의 모양에는 관계없이 곡면을 일률적으로 NURBS로 변환하고 그 후 경계 곡선을 변환된 NURBS의 매개 변수 상에서 변환하여 트리밍 곡선으로 변환하는 방법을 취하고 있다.First, the base surface is converted to a non-uniform Rational B-spline surface (NURBS) (S 110), and then the boundary curve is converted to a trimming curve (S 120). In other words, regardless of the shape of the underlying surface, the curved surface is uniformly converted to NURBS, and then the boundary curve is converted to a trimming curve by converting the boundary curve on the converted NURBS parameters.
다음 트리밍 루프를 구성하고(S 130), 델라우나이 삼각화(Delaunay Triangulation) 방식을 사용하여 삼각망을 형성하는 각각의 삼각형을 생성하고(S 140), 마지막으로 이렇게 생성된 각각의 파라메트릭 삼각형을 실제 삼각형으로 변환한다(S 150).Construct the next trimming loop (S 130), create each triangle to form a triangle using the Delaunay triangulation scheme (S 140), and finally, each of the parametric triangles thus created Is converted to the actual triangle (S 150).
즉, 이러한 종래 삼각망 생성 방법은 경계 곡면(bounded surface)을 NURBS로 변환하고 경계 곡선(boundary curve)들을 NURBS상의 매개변수 곡선으로 변환하며, 내부 경계를 처리하기 위해 심라인(seam line)을 생성한 후 NURBS 매개변수 공간(parametric domain)상에서 델라우나이 삼각화 방식을 사용하여 균일에 가까운 형태의 삼각형들을 생성해 내는 방식을 취하고 있다.That is, the conventional triangular network generation method converts a boundary surface into NURBS, converts boundary curves into parametric curves on NURBS, and generates a seam line to process internal boundaries. After that, we use the Delaunai triangulation method in the NURBS parametric domain to generate nearly uniform triangles.
이러한 종래 델라우나이 삼각화에 의해 생성되는 삼각형은 모든 삼각형이 정삼각형에 가까워야 하는 유한요소해석(FEA; Finite Element Analysis)과 같은 해석의 목적에는 적합하지만, 형상이나 경계와 별개의 과도한 삼각형이 많아 시스템 자원을 낭비하고 데이터 전송 속도 및 디스플레이 속도를 저하시키게 된다는 문제점이 지적되어 왔다.The triangles generated by the conventional Delaunai triangulation are suitable for the purpose of analysis, such as finite element analysis (FEA), in which all triangles should be close to equilateral triangles, but there are many excessive triangles separate from shapes or boundaries. The problem of wasting system resources and slowing down data transmission and display speeds has been pointed out.
또한, 삼각망 생성 알고리즘의 특성상 삼각형을 생성하는 파라미터 공간이 NURBS의 매개변수 공간 안에서 이루어지므로 반복 수치 계산법(Iteration)을 사용하게 되므로 삼각망 생성에 걸리는 시간이 길어질 수 밖에 없으며, 실세계 좌표로부터 매개변수 공간 상의 포인트를 찾는데 시간이 많이 걸리므로 전체적인 삼각망 생성 시간이 길어진다는 문제점이 아울러 지적되어 왔다.In addition, due to the characteristics of the triangular network generation algorithm, since the parameter space for generating triangles is made in the parameter space of NURBS, iterative numerical calculation (Iteration) is used, so the time required for triangular network generation is long. It has also been pointed out that it takes a long time to find a point in space, so the overall triangle generation time is long.
또한, 종래의 삼각망 생성 방법은 이러한 데이터 용량 및 속도상에서의 문제점으로 인하여, 형상에 최적화된 신속한 삼각형의 생성이 요구되는 3차원 그래픽 분야 즉 3D CAD, 가상현실, 속도와 데이터의 크기가 중요한 관권이 되는 인터넷 상에서의 가상현실 분야, 많은 요소를 한번에 보여 주어야 하는 건축설계, 인테리어 시뮬레이션 등의 적용에 일정한 한계를 지니며 효율이 떨어질 수 밖에 없다는 문제점이 지적되고 있다.In addition, the conventional triangular network generation method is a three-dimensional graphics field that requires rapid triangle generation optimized for shape due to such data capacity and speed problems, that is, 3D CAD, virtual reality, speed and data size is important authority The problem is pointed out that the efficiency of the virtual reality on the Internet, the architectural design that must show many elements at once, interior design simulation, etc. has a certain limit and the efficiency decreases.
본 발명은 상기 종래 기술의 문제점을 해결하기 위해 안출된 것으로서, 삼각망 생성 속도와 생성된 삼각형의 특성, 이 두 가지 측면을 동시에 개선할 수 있는 삼각망 생성 방법을 제공하는 것을 목적으로 한다.The present invention has been made to solve the problems of the prior art, and an object of the present invention is to provide a triangular net generation method that can improve both of the triangle network generation speed and the characteristics of the generated triangle simultaneously.
또한 본 발명은 1차 및 2차 곡면에 대한 NURBS 변환을 필요로 하지 않도록 구성하여 삼각망 생성을 위한 전처리 속도 및 삼각형 생성속도를 개선하며, 생성된 삼각형들을 형상과 경계에 최적화시켜 데이터의 양을 최소화하여 시스템 자원을 적게 차지하고, 빠른 디스플레이를 가능하게 하고, 인터넷을 통한 삼각망 데이터의 이동도 유리하게 할 수 있도록 하는 삼각망 생성 방법을 제공하는 것을 목적으로 한다.In addition, the present invention improves preprocessing speed and triangle generation speed for triangle network generation by configuring NURBS transformation for the first and second curved surfaces, and optimizes the generated triangles to shape and boundary to improve the amount of data. An object of the present invention is to provide a triangular net generation method that minimizes system resources, enables fast display, and facilitates the movement of triangular net data over the Internet.
도 1은 종래의 삼각망 생성 방법의 일예를 나타내는 순서도이다.1 is a flowchart illustrating an example of a conventional triangular network generating method.
도 2는 본 발명에 의한 삼각망 생성 방법의 각 단계를 개략적으로 도시하는 순서도이다.2 is a flowchart schematically showing each step of the triangular network generating method according to the present invention.
도 3은 본 발명의 삼각망 생성 방법에 의한 평면의 매개변수화 방법을 보여 주는 개략도이다.3 is a schematic view showing a parameterization method of a plane by a triangular network generation method of the present invention.
도 4는 본 발명의 삼각망 생성 방법에 의한 원통 일부의 매개변수화 방법을 보여주는 개략도이다.4 is a schematic diagram showing a parameterization method of a part of a cylinder by the triangular net generating method of the present invention.
도 5 및 도 6은 본 발명의 삼각망 생성 방법에 의한 구(球)와 원환체의 3D 상에서의 매개변수화 방법을 나타내는 개략도이다.5 and 6 are schematic diagrams showing a method of parameterizing a sphere and a toric in 3D by the triangular network generating method of the present invention.
도 7은 생성된 매개변수 공간상의 트리밍 곡선에 대하여 셀을 나누어 셀루프를 구성하는 예를 보여주는 예시도이다.7 is an exemplary diagram illustrating an example of forming a cell loop by dividing cells with respect to trimming curves in a generated parameter space.
도 8은 원통에 대한 셀분할 및 그 결과를 도시하는 개략도이다.8 is a schematic diagram illustrating cell division and results for a cylinder.
도 9는 경계 루프의 절점만을 고려한 본 발명의 삼각망 생성 방법에 의한 삼각형 생성 방법의 단계를 구체적으로 보여 주는 순서도이다.9 is a flowchart showing in detail the steps of the triangle generation method by the triangular network generation method of the present invention considering only the nodes of the boundary loop.
도 10은 본 발명의 삼각망 생성 방법에 의하여 삼각형을 생성하는 양호한 예를 도시하는 개략도이다.Fig. 10 is a schematic diagram showing a preferred example of generating triangles by the triangle network generating method of the present invention.
이하 첨부한 도면을 참고로 하여 본 발명의 구성 및 동작을 상세히 설명하기로 한다.Hereinafter, the configuration and operation of the present invention will be described in detail with reference to the accompanying drawings.
도 2는 본 발명에 의한 삼각망 생성 방법의 각 단계를 개략적으로 도시하는 순서도이다. 상기 도 1에서 도시한 종래 삼각망 생성 방법과 비교하여 보면, 두 순서도에서 입력과 출력은 동일하지만 각각의 단계가 다른 과정을 거친다.2 is a flowchart schematically showing each step of the triangular network generating method according to the present invention. Compared with the conventional triangular network generation method shown in FIG. 1, the input and output are the same in each of the two flowcharts, but each step undergoes a different process.
먼저, 3차원에서 표현된 경계 곡선들을 2차원 매개변수 공간상의 트리밍(trimming) 곡선으로 변환한다(S 210). 이 단계는 종래의 삼각망 생성 방법과 본 발명에서의 방법에서 공통적으로 수행 되지만 그 내용에 있어서 차이가 있다. 즉, 3차원 공간상의 곡선을 2차원으로 사상(mapping)하기 위해서는 기저 곡면(base surface)이 2차원 매개변수에 의한 식으로 표현이 가능하여야 하는데, 기존 방법에서는 이를 위해서 평면(planar surface), 원통(cylindrical surface), 원뿔(conical surface), 구(spherical surface), 원환체(toroidal surface) 등의 기저 곡면을 NURBS로 변환하여(S 110, 도 1 참조) 경계 곡선 또한 NURBS 매개 변수 상에서 변환하지만(S 120, 도 2 참조), 본 삼각망 생성 방법은 이들 기저 곡면에 객체의 개념을 도입하여 NURBS로 변환하지 않고 매개변수 표현을 가능하도록 구성하고 있다. 이러한 표현이 가능하게 하기 위해서, 본 발명에서는 평면, 원통, 원뿔, 구, 원환체 각각의 3차원-2차원 또는 2차원-3차원 간의 변환 방법을 고안하였다.First, the boundary curves expressed in three dimensions are converted to trimming curves in a two-dimensional parameter space (S 210). This step is performed in common in the conventional triangular network generation method and the method of the present invention, but there is a difference in the content. In other words, in order to map a curve in three-dimensional space in two dimensions, the base surface should be represented by a two-dimensional parameter. In the conventional method, a planar surface and a cylinder are used for this purpose. The boundary curves are also transformed on the NURBS parameters by converting the underlying surface of the cylindrical surface, the conical surface, the spherical surface, the toroidal surface, etc. into NURBS (S 110, see FIG. 1). S120, see FIG. 2), this triangular network generation method is constructed to introduce the concept of the object to these base surface to enable the parameter expression without conversion to NURBS. In order to enable such a representation, the present invention devised a conversion method between 3D-2D or 2D-3D of each of a plane, a cylinder, a cone, a sphere, and a torus.
도 3은 본 발명의 삼각망 생성 방법에 의한 평면의 매개변수화 방법을 보여주는 개략도로서, 다루어야 하는 원래의 평면 도형(301)을 충분히 감쌀 수 있는 사각의 평면(302)을 가상하면 원래의 평면도형 상의 모든 3D 점은 가상의 사각형의 모서리들(P0, P1, P2, P3;303)의 1차 보간으로 표현 가능해진다. 즉, P0와 P1사이의 보간 매개변수를 u로 하고, P0와 P2사이의 보간 매개변수를 v로 하면 2차원에서 3차원 변환, 또는 3차원에서 2차원 변환을 둘 다 한 번의 벡터식 계산으로 얻을 수 있다. 변환하여야 하는 3차원 점이 P(x,y,z) 라면, 이에 상응하는 매개변수 u, v 는 다음과 같이 구할 수 있다.3 is a schematic view showing a parameterization method of a plane by a triangular net generation method of the present invention, when a hypothetical plane 302 that can sufficiently cover an original planar figure 301 to be handled is simulated, All 3D points can be represented by first-order interpolation of virtual rectangular edges P 0 , P 1 , P 2 , and P 3 ; 303. In other words, if the interpolation parameter between P 0 and P 1 is u and the interpolation parameter between P 0 and P 2 is v, both the two-dimensional to three-dimensional transformation or the three-dimensional to two-dimensional transformation Obtained by vector calculations. If the three-dimensional point to be transformed is P (x, y, z), the corresponding parameters u and v can be obtained as follows.
v = (P-P0)·(P2-P0)/(|P-P0||P2-P0|)v = (PP 0 ) · (P 2 -P 0 ) / (| PP 0 || P 2 -P 0 |)
(0≤u≤1, 0≤v≤1)(0≤u≤1, 0≤v≤1)
역으로, 매개변수 u, v로부터 3차원 점 P는 다음의 식으로 구할 수 있다.Conversely, the three-dimensional point P from the parameters u and v can be obtained from the following equation.
도 4는 본 발명의 삼각망 생성 방법에 의한 원통 일부의 매개변수화 방법을 보여주는 개략도로서, 다루어야 하는 원래의 원통 일부 도형(401)은 기저곡면(402)과 경계 곡선의 루프로 표현된다. 기저 곡면(402)은 무한 원통을 표현하기 위해서 원통의 지역 좌표계를 나타내는 축(404)과 반경으로 표현되는데, 축(404)의 x, y, z 는 절대 좌표계가 아니고 각각이 축을 나타내는 벡터이므로 기울어지거나 회전한 원통도 표현 가능하다. 3D 점을 2D 파라미터 좌표계로 나타내는 방법은, 3D점을 축(404)의 x, y 가 이루는 평면에 투상(projection)한 점이 x 벡터와 이루는 각을 매개변수 u 로 하고, 3D점을 축(404)의 z 벡터에 투상한 점이 축(404) 원점과 이루는 변위를 매개변수 v 로 한다.4 is a schematic view showing a method of parameterizing a portion of a cylinder by the triangular network generating method of the present invention, in which the original portion of the cylinder portion 401 to be handled is represented by a loop of the base surface 402 and a boundary curve. The base surface 402 is represented by an axis 404 and a radius representing the local coordinate system of the cylinder in order to represent an infinite cylinder. The x, y, z of the axis 404 is not an absolute coordinate system but is a vector representing the axis. A built or rotated cylinder can also be represented. The method of representing a 3D point in a 2D parametric coordinate system is based on a parameter u, the angle of the projection of the 3D point on the plane formed by x and y of the axis 404 with the x vector, and the 3D point as the axis 404. The displacement of the point projected on the z vector of) with the origin of the axis 404 is taken as the parameter v.
즉, 지역 좌표축 x, y, z의 중심점을 C, 가상원통의 높이를 h 라고 한다면 다음과 같은 식을 이용하여 3차원 점 P로부터 매개변수 u, v 를 구할 수 있다.That is, if the center point of the local coordinate axes x, y, z is C, and the height of the virtual cylinder is h, the parameters u and v can be obtained from the three-dimensional point P using the following equation.
v = (P-C)· Z /|P-C|v = (PC) Z / | PC |
(0≤u≤2π, 0≤v≤1, X , Y , Z 는 각 좌표계의 방향 벡터임)(0≤u≤2π, 0≤v≤1, X , Y , Z are direction vectors of each coordinate system)
또한 역으로 매개변수 u, v로부터 3차원 점 P는 다음과 같이 구할 수 있다.Conversely, the three-dimensional point P can be obtained from the parameters u and v as follows.
도 4의 오른쪽에는 매개변수화 된 원통영역(406)과 이 영역에서 표현된 원래 곡면의 경계(407)가 표현되어 있다. 이 경우는 원래 곡면이 원통 지역 좌표계의 x축에 걸쳐 있었기 때문에 매개변수화에 의해서 두 개의 루프로 나누어진 경우를 나타내고 있다. 도 1에 개시되어 있는 종래 방법의 경우 이렇게 경계가 잘리는 경우가 생기면 기저 곡면을 NURBS로 변환하는 단계(S 110)로 다시 되돌아가서 경계가 잘리지 않게 변환한다든지 이 방법이 여의치 않으면 매개변수 공간에서 루프를 구성하는 단계(S 130)에서 잘린 것을 표현하기 위해서 심라인(seam line)을 삽입하는 방식을 사용해서 이런 경우를 피해 가야만 하지만, 본 발명에 의한 방법은 이러한 경우가 전혀 문제가 되지 않음을 알 수 있다. 원뿔 또한 위상이 원통과 다르지 않기 때문에 거의 유사한 방법으로 매개변수화 한다.On the right side of FIG. 4, a parameterized cylindrical region 406 and the boundary 407 of the original curved surface represented in this region are represented. In this case, since the original surface was along the x-axis of the cylindrical local coordinate system, it is divided into two loops by parameterization. In the case of the conventional method disclosed in FIG. 1, when the boundary is cut off, the process returns to the step of converting the base surface into NURBS (S 110), and the boundary is not cut off. In order to express the cut in the step S 130 of constructing the use of a method of inserting a seam (seam line) to avoid this case, but the method according to the present invention knows that such a case is not a problem at all. Can be. The cone is also parameterized in a very similar way because the phase is not different from the cylinder.
도 5 및 도 6은 본 발명의 삼각망 생성 방법에 의한 구(球)와 원환체의 3D 상에서의 매개변수화 방법을 나타내는 개략도이다. 본 발명에서 이들을 매개변수화 하기 위해서는 구는 경도와 위도에 해당하는 각을 각각 u, v 매개변수로 사용하고, 원환체는 대좌표계인 x, y, z 좌표계에 대해서 원통이나 원뿔과 같은 방법으로 u 를 결정하고, 소좌표계인 x', y' 좌표계에서 x' 축과 이루는 각으로 v 파라미터를 결정하게 된다. 이들의 식 또한 원통의 매개변수화 식과 같으나 기준되는 좌표계를 달리 적용할 뿐이다.5 and 6 are schematic diagrams showing a method of parameterizing a sphere and a toric in 3D by the triangular network generating method of the present invention. In the present invention, in order to parameterize them, the sphere uses angles corresponding to the longitude and latitude as u and v parameters, respectively, and the torus has u as a cylinder or cone with respect to the coordinate system x, y, z. Then, the v parameter is determined by the angle formed with the x 'axis in the coordinate system x' and y '. Their equations are also the same as the cylindrical parameterization equations, but they apply differently to the reference coordinate system.
이와 같이 본 발명에서 사용하는, 1차 및 2차 곡면에 대해서 원래 형상을 기반으로 매개변수화 하는 방법은 간단한 벡터 연산 및 삼각함수만으로 수행되므로, 수치적인 반복 계산(iteration)을 필요로 하는 기존의 NURBS 매개변수 방법에 비해서 연산 속도나 계산의 안정성 측면에서 탁월한 성능을 보인다.As described above, the method of parameterizing the first and second curved surfaces based on the original shape is performed by simple vector operation and trigonometric functions, and thus, the existing NURBS which requires numerical iteration. Compared to the parametric method, the performance is excellent in terms of computation speed and computation stability.
다시 도2의 순서도로 돌아가 본 발명의 다음 단계들에 대한 설명을 계속하자면, 경계곡선을 트리밍 곡선으로 변환하는 과정(S 210)이 끝나면. 셀(cell)을 나누고 셀루프(cell loop)를 구성한다(S 220).Returning to the flowchart of FIG. 2, the process of converting the boundary curve to the trimming curve (S 210) is completed. The cell is divided and a cell loop is formed (S 220).
셀은 파라미터 공간상에서 나누어진 영역으로 기존의 삼각화 방법에서는 삼각망 생성 모듈에 따라 사용되기도 했던 개념이다. 본 발명에서는 크게 두 가지 이유로 셀을 사용하는데, 첫 번째는 내부 루프(inner/hole loop)를 없애기 위해서이고 두 번째는 곡면의 곡률에 따라 최적화된 삼각형을 생성하기 위해서이다.The cell is a divided region in the parameter space, which is a concept used in the triangulation method according to the triangulation network generation module. In the present invention, a cell is mainly used for two reasons. The first is to eliminate an inner / hole loop and the second is to generate an optimized triangle according to the curvature of a curved surface.
도 7은 S 210의 과정에 의해서 생성된 매개변수 공간상의 트리밍 곡선에 대하여 셀을 나누어 셀루프를 구성하는 예를 보여주는 예시도이다. 가운데 구멍이 뚫린 모양의 평면(701)을 표현하기 위해서, 가상의 매개변수 영역(702)상에서 바깥쪽 경계(703)와 안쪽 경계(704)가 있다. 삼각형이 도형의 내부에만 생성되기 위해서는 경계의 내부, 외부의 구분이 있어야 하는데 이것은 경계 루프의 방향으로 결정할 수 있다. 경계 루프의 방향이 반시계 방향일 경우(703) 그 루프의 내부가 그려져야 하고 루프의 방향이 시계 방향일 경우(704) 루프의 외부가 그려져야 한다.7 is an exemplary diagram illustrating an example of forming a cell loop by dividing cells with respect to a trimming curve in a parameter space generated by the process of S 210. In order to represent the plane 701 shaped like a central hole, there is an outer boundary 703 and an inner boundary 704 on the virtual parameter area 702. In order for the triangle to be created only inside the geometry, there must be a distinction between the inside and outside of the boundary, which can be determined in the direction of the boundary loop. If the direction of the boundary loop is counterclockwise (703) the interior of the loop should be drawn and if the direction of the loop is clockwise (704) the outside of the loop should be drawn.
기존 삼각망 생성기는 이러한 바깥쪽 경계(703) 및 안쪽 경계(704)가 동시에 존재하는 형상에 대하여 삼각형을 생성할 때 두 경계루프(703, 704)를 모두 기준으로 하여 이러한 루프의 방향에 유의해서 삼각형을 생성하였다. 이에 비해 본 발명에서는 삼각형을 생성할 때는 내부 루프에 대해서만 생성하여 시간을 단축하도록 하는 새로운 방식을 제공한다. 즉, 셀을 나누는 단계(S 220)에서 시계방향의 루프가 있을 때 이를 지나는 방향으로 파라미터 공간을 나누어 반시계 방향의 루프만 존재하도록 한다. 도 7의 706은 내부 루프를 없애기 위해 생성된 셀 경계를 보여주고 있으며 이 경계에 의해서 두 개의 셀로 나누어진다. 셀이 나누어지면 셀을 가로지르는 경계 요소 또한 셀의 경계에서 잘리고 셀 안에서 루프가 재구성 된다(707). 이 결과 두 개의 셀이 생기고 각각의 셀은 하나의 외부 루프만을 가지게 된다.Conventional triangular network generators take care of the direction of these loops based on both boundary loops 703 and 704 when generating a triangle for a shape where these outer and inner boundaries 703 and 704 exist simultaneously. A triangle was created. On the contrary, the present invention provides a new method for shortening the time by generating only the inner loop when generating the triangle. That is, when there is a clockwise loop in the dividing cell (S 220), the parameter space is divided in the direction passing therethrough so that only the counterclockwise loop exists. 706 of FIG. 7 shows a cell boundary created to eliminate an inner loop, and is divided into two cells by this boundary. When the cell is divided, the boundary element crossing the cell is also cut at the cell boundary and the loop is reconstructed in the cell (707). This results in two cells, each with only one outer loop.
도 8은 원통에 대한 셀분할 및 그 결과를 도시하는 개략도로서, 본 도면의 원통의 예를 들어 셀을 나누는 두 번째 이유를 설명한다. 원통의 경우 매개변수 u의 방향으로는 일정 곡률이 있고, 매개변수 v의 방향으로는 곡률이 없다. 이것을 3차원에서 표현한다면 곡률이 없는 방향으로는 삼각화하지 않는 것이 적절하므로 801과 같이 셀을 나누고 각각의 셀에 대해서 셀 루프를 구성하면 802와 같은 원통에 최적화된 모양의 삼각형을 얻을 수 있다. 도 8에 나타난 원통의 예에서는 곡률이 균일하지만 곡률이 부분마다 불균일한 자유 곡면에서는 곡률별로 셀의 크기를 다르게 나눔으로써 최적화된 삼각형 생성이 가능하다. 이는 물론 곡률에 따라 u, v 방향 모두에 대해서 적용된다.FIG. 8 is a schematic diagram showing cell division for a cylinder and its result, illustrating a second reason for dividing a cell, for example, of the cylinder of this drawing. In the case of a cylinder there is a constant curvature in the direction of the parameter u and no curvature in the direction of the parameter v. If this is expressed in three dimensions, it is appropriate not to triangulate in the direction without curvature, so by dividing the cells as shown in 801 and forming a cell loop for each cell, a triangle having a shape optimized for a cylinder such as 802 can be obtained. In the example of the cylinder shown in FIG. 8, in the free curved surface where the curvature is uniform but the curvature is uneven for each part, the optimized triangle can be generated by dividing the cell size by the curvature. This, of course, applies to both the u and v directions depending on the curvature.
이렇게 각 셀이 나누어 지고 셀 단위로 하나의 외부 루프만을 가지게 되면 셀 단위의 경계만을 기반으로 하여 매개변수 영역에서 삼각화를 한다(S 230). 전 단계(S 220)에서 곡률과 방향성을 고려한 경계 루프의 생성이 끝났기 때문에 삼각화 단계(S 230)에서는 하나의 경계 루프의 형태만을 고려하여 삼각형을 생성한다.When each cell is divided and has only one outer loop per cell, triangulation is performed in the parameter area based on the cell boundary only (S 230). Since the generation of the boundary loop considering the curvature and the directionality is completed in the previous step (S 220), the triangulation step (S 230) generates a triangle considering only the shape of one boundary loop.
도 9는 경계 루프의 절점만을 고려한 본 발명의 삼각망 생성 방법에 의한 삼각형 생성 방법의 단계를 구체적으로 보여 주는 순서도이다.9 is a flowchart showing in detail the steps of the triangle generation method by the triangular network generation method of the present invention considering only the nodes of the boundary loop.
먼저 삼각망 생성을 시작하기 위한 시작 인덱스를 설정한다(S 910). 시작 인덱스를 설정할 때는 일반적으로 루프의 첫번째 포인트를 사용하면 되지만 첫 점이 오목포(concave) 점이든지 특이한 경우에는 다르게 설정할 수 있다.First, a start index for starting triangle network generation is set (S 910). When setting the starting index, you usually use the first point of the loop, but you can set it differently if the first point is a concave point or unusual.
그 이후에 프로그램상의 루프를 돌면서 삼각형을 생성하고, 경계 루프상의 절점을 삭제해 나가는 방식으로 삼각형을 생성하게 된다. 즉, 인덱스 점과 바로 다음점 및 그 다음점의 세 점으로 구성되는 삼각형을 설정하고(S 920), 설정된 삼각형이 시계방향 삼각형이거나 다른 점을 포함하는지 여부를 판단하여(S 930), 시계방향이거나 다른 점 포함시 인덱스를 증가시켜 다음 점으로 이동하고(S 940), 아닌 경우 설정된 삼각형을 생성한다(S 950).After that, we create a triangle by looping through the program loop and delete the nodes on the boundary loop. That is, a triangle consisting of an index point and three points immediately following the next point and the next point is set (S 920), and it is determined whether the set triangle is a clockwise triangle or another point (S930), and clockwise. If it is or includes another point, increase the index to move to the next point (S 940), otherwise generates a set triangle (S 950).
삼각형을 생성한 경우 기준이 된 시작 인덱스 점의 바로 다음 점을 루프에서 제거한다(S 960).When the triangle is generated, the next point after the reference starting index point is removed from the loop (S960).
다음 남은 루프의 사이즈가 3보다 큰지 즉 점의 갯수가 3개보다 많은지 여부를 판단한다(S 970). 점이 3개를 초과하는 경우에는 920의 단계로 돌아가서 인덱스 점과 상기 루프에서 제거된 점의 바로 다음 점 및 그 다음 점이 이루는 삼각형을 설정하고 이하 과정을 반복한다(S 920 내지 S 970).It is determined whether the size of the next remaining loop is greater than 3, that is, the number of points is greater than three (S970). If there are more than three points, the process returns to step 920, sets the index point, the next point after the point removed from the loop, and the triangle formed by the next point, and repeats the following steps (S 920 to S 970).
이러한 단계를 반복하여 최종적으로 점이 3개가 남은 경우에는 남은 점으로 삼각형을 생성한다(S 980).By repeating these steps, if finally three points remain, a triangle is generated from the remaining points (S980).
도 10은 본 발명의 삼각망 생성 방법에 의하여 삼각형을 생성하는 양호한 예로서, 8개의 점으로 이루어진 루프에 대한 삼각화 방법을 구체적으로 도시하고 있다. 도 10을 참고하면, 도 9의 순서도의 방법으로 삼각형을 생성한다.FIG. 10 illustrates a triangulation method for a loop composed of eight points as a preferred example of generating triangles by the triangular net generation method of the present invention. Referring to FIG. 10, a triangle is generated by the method of the flowchart of FIG. 9.
1 단계, 점 0을 시작점 즉 시작 인덱스로 설정한다(S 910; i 참조).In step 1, point 0 is set as a starting point, that is, a starting index (S910; see i).
2 단계, 점 012 가 이루는 삼각형을 설정한다(S 920; ⅱ 참조). 이때 다른 점 6이 삼각형에 포함되므로(S 930) 실제로 삼각형을 생성하지 않고 다음 점으로 시작점을 옮긴다(S 940).Step 2, the triangle formed by the point 012 is set (S 920; ii). At this time, since the other point 6 is included in the triangle (S 930), the start point is moved to the next point without actually generating the triangle (S 940).
3 단계, 점 123 이 이루는 삼각형을 설정한다(S 920; ⅲ 참조). 이 삼각형은 시계 방향(S 930)이므로 삼각형 생성을 포기하고 다음 점으로 옮긴다(S 940).Step 3, the triangle formed by the point 123 is set (S920; see ⅲ). Since the triangle is clockwise (S 930), the triangle is abandoned and moved to the next point (S 940).
4 단계, 점 234 가 이루는 삼각형을 설정한다(S 920; ⅳ 참조). 반시계 방향이고 다른 점이나 선분을 포함하지 않으므로 삼각형을 생성하고(S 950), 삼각형의 두 번째 점(점 3)을 루프에서 제거한다(S 960; ⅴ 참조). 시작점은 그대로 점 2에 머무른다. 점 3이 루프에서 제거되더라도 남은 점의 갯수 즉 루프사이즈는 7이므로 3을 초과한다. 따라서 루프 사이즈 판단 과정(S 970)을 거쳐 S 920의 단계를 반복하게 된다.Step 4, a triangle formed by the point 234 is set (S920; see ⅳ). Since it is counterclockwise and does not include another point or line segment, a triangle is generated (S 950), and the second point of the triangle (point 3) is removed from the loop (S 960; ⅴ). The starting point stays at point 2 as it is. Even if point 3 is removed from the loop, the number of remaining points, that is, the loop size, is 7, so it exceeds 3. Therefore, the step S920 is repeated after the loop size determination process (S970).
5 단계, 점 245 가 이루는 삼각형을 설정(S 920; ⅴ 참조)하여, 삼각형을 생성한다(S 950). 다음 삼각형의 두 번째 점인 점 4를 제거한다(S 960; ⅵ 참조).In step 5, a triangle formed by the point 245 is set (S920; see ⅴ) to generate a triangle (S950). Remove point 4, the second point of the next triangle (S 960; see ⅵ).
6 단계, 점 256 이 이루는 삼각형을 설정(S 920)하여, 삼각형을 생성한다(S 950; ⅵ 참조). 다음 삼각형의 두 번째 점인 점 5를 제거한다(S 960; ⅶ 참조).In step 6, a triangle formed by the point 256 is set (S920) to generate a triangle (S950). Remove point 5, the second point of the next triangle (S 960; see ⅶ).
7 단계, 점 267 이 이루는 삼각형을 설정한다(S 920; ⅶ 참조). 삼각형이 시계방향이므로(S 930) 다음점 6으로 시작점을 옮긴다(S 940; ⅷ 참조).In step 7, a triangle formed by the point 267 is set (S920; see ⅶ). Since the triangle is clockwise (S 930), the starting point is moved to the next point 6 (S 940; ⅷ).
8 단계, 점 670 이 이루는 삼각형을 설정(S 920; ⅷ 참조), 생성한다(S 950).In step 8, a triangle formed by the point 670 is set (S920; see ⅷ), and is generated (S950).
9 단계, 점 601 이 이루는 삼각형을 설정(S 950), 생성한다(S 950). 가운데점 0 을 제거하면 남은 점이 3개이고(S 970), 612 가 반시계 방향을 이루므로 612로 이루어진 마지막 삼각형을 생성한다(S 980).In step 9, a triangle formed by the point 601 is set (S950) and is generated (S950). If the center point 0 is removed, there are three remaining points (S970), and 612 is counterclockwise to generate the last triangle of 612 (S980).
이상과 같이 매개변수 공간에서 삼각형을 생성하고 나면 실세계, 즉 3차원 공간에서의 삼각형을 생성한다(S 240). 매개변수 공간의 삼각형은 (u, v) 값에 의해 표현되므로 앞서 설명한 본 발명에서의 곡면 매개변수화 방법의 역변환, 즉 2차원 매개변수에서 3차원 점을 얻어내는 식(예를 들어 상기 수학식 2 및 수학식 4)을 이용하여 3차원 점을 얻어내고 이러한 삼각형들을 응용 프로그램의 그래픽 라이브러리로 보냄으로써 화면에 그릴 수 있게 된다. 이 때는 각각의 점에 대한 곡면상의 법선 벡터가 있어야 부드러운 렌더링(Phong shading 또는 Goroud shading)을 할 수 있는데 본 발명에서는 곡면 클래스가 3차원 점에서 u, v 매개변수로 바꾸는 메소드(예를 들어 상기 수학식 1 및 수학식 3), 또는 u, v 에서 3차원 점으로 바꾸는 메소드(예를 들어 상기 수학식 2 및 수학식 4)와 더불어서 u, v 매개변수에서 3차원 법선 벡터를 얻을 수 있도록 하는 메소드를 제공하도록 하고 있다.After generating the triangle in the parameter space as described above, a triangle in the real world, that is, three-dimensional space is generated (S 240). Since the triangle in the parameter space is represented by the value (u, v), the inverse transformation of the surface parameterization method according to the present invention described above, that is, the equation for obtaining a three-dimensional point from the two-dimensional parameter (for example, Equation 2 above) And by using the equation (4) to obtain a three-dimensional point and to send these triangles to the graphics library of the application program can be drawn on the screen. In this case, smooth rendering (Phong shading or Goroud shading) is required when there is a curved normal vector for each point. In the present invention, a method of converting a surface class from a three-dimensional point to a u and v parameter (for example, Equation 1 and Equation 3) or a method for obtaining a three-dimensional normal vector from u and v parameters in addition to a method of converting from u and v to a three-dimensional point (for example, Equations 2 and 4 above). To provide.
즉, 기저곡면이 원통인 경우에 법선 벡터의 도출 방법을 설명하면, P를 도출하는 수학식인 상기 수학식 4를 u 방향 및 v 방향에 대해 각각 편미분을 행하고, 각 방향으로 편미분한 두 결과 수식을 상호 크로스 프로덕트(Cross Product)하면 원하는 법선 벡터를 도출할 수 있다. 이는 평면의 매개변수화에 대한 수학식 2에도동일하게 적용된다. 즉, 본 발명에 의하면 최초의 매개변수화 수식을 그대로 이용하여 간단히 법선 벡터를 도출할 수 있으므로 용이한 랜더링이 가능하다.That is, when the basis surface is a cylinder, a method of deriving a normal vector will be described. The above equation 4, which is a equation for deriving P, may be partially divided in the u and v directions, respectively, and two resultant equations that are partial in each direction may be obtained. Cross product can yield the desired normal vector. The same applies to equation (2) for parameterization of planes. That is, according to the present invention, it is possible to easily derive a normal vector by using the original parameterization equation as it is, so that it is easy to render.
이상 본 발명을 양호한 실시예를 들어 설명하였으나, 이는 발명의 설명을 위한 것이지 그 제한을 위한 것이 아님을 이해할 것이다. 또한 본 발명의 사상 및 범위를 벗어나지 않는 한도에서 본 발명이 속하는 기술 분야의 당업자에 의한 다양한 변형 및 수정이 가능함을 이해할 것이다.While the present invention has been described with reference to preferred embodiments, it will be understood that the invention is for the purpose of illustration and not of limitation. It will also be understood that various modifications and variations can be made by those skilled in the art without departing from the spirit and scope of the invention.
이와 같은 본 발명의 구성에 의하면, 기존의 NURBS와 델라우나이(Delaunay) 삼각화 기반의 삼각망 생성 방법에 비해서 알고리즘적으로 빠르고 간결한 프로세스를 고안하고 선택함으로써, 안정성과 높은 퍼포먼스를 기대할 수 있는 삼각망 생성 방법을 제공할 수 있다는 효과가 있다.According to the configuration of the present invention, by designing and selecting algorithms fast and concise, compared to the conventional NURBS and Delaunay triangulation based triangulation method, triangulation that can expect stability and high performance There is an effect that it can provide a network generation method.
또한 본 발명에 의하면, 생성된 삼각형들이 곡면의 곡률을 잘 표현하면서도 형상과 경계에 최적화됨으로써, 이것을 이용하는 응용 프로그램의 측면에서는 가볍고 향상된 퍼포먼스를 기대할 수 있으며 데이터 양이 적어 시스템 자원을 적게 차지하고 빠른 디스플레이를 가능하게 한다는 효과가 있다.In addition, according to the present invention, the generated triangles are well represented in the curvature of the curved surface while being optimized for shape and boundary, so in terms of the application program using the same, light and improved performance can be expected, and the amount of data consumes less system resources and provides a faster display. It has the effect of enabling it.
또한 본 발명에 의하면, 모든 3D 캐드 또는 3D 그래픽 시스템에서 사용될 수 있으며, 특히 인터넷을 통한 가상 현실 시스템, 실시간 렌더링을 필요로 하는 시스템, 가볍고 빠르게 보여 줄 수 있어야 하는 뷰어, 많은 요소들을 한 화면에 보여 주어야 하는 건축 설계나 인테리어 시뮬레이션 등의 분야에 효과적으로 적용될 수 있다는 효과가 있다.In addition, according to the present invention, it can be used in any 3D CAD or 3D graphics system, especially a virtual reality system over the Internet, a system that requires real-time rendering, a viewer that must be able to show light and fast, many elements on one screen It can be effectively applied to fields such as architectural design or interior simulation that should be given.
Claims (9)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2002-0009962A KR100433947B1 (en) | 2002-02-25 | 2002-02-25 | Exact geometry based triangle mesh generating method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2002-0009962A KR100433947B1 (en) | 2002-02-25 | 2002-02-25 | Exact geometry based triangle mesh generating method |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20030070426A true KR20030070426A (en) | 2003-08-30 |
KR100433947B1 KR100433947B1 (en) | 2004-06-04 |
Family
ID=32222498
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR10-2002-0009962A KR100433947B1 (en) | 2002-02-25 | 2002-02-25 | Exact geometry based triangle mesh generating method |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100433947B1 (en) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100965870B1 (en) * | 2008-11-26 | 2010-06-24 | 인스티튜트 포 인포메이션 인더스트리 | Triangulation processing systems and methods |
KR101056225B1 (en) * | 2009-06-26 | 2011-08-11 | 원광대학교산학협력단 | 3D mesh generation method |
KR101139590B1 (en) * | 2008-12-29 | 2012-05-30 | 경희대학교 산학협력단 | Development Figure Manufacturing Method of Triangles for 3D Object and 3D Object using the same |
CN103424070A (en) * | 2012-05-23 | 2013-12-04 | 鸿富锦精密工业(深圳)有限公司 | Curved face coordinate system set-up system and method |
CN116433873A (en) * | 2023-06-13 | 2023-07-14 | 广州中望龙腾软件股份有限公司 | Grid dividing method and device and electronic equipment |
-
2002
- 2002-02-25 KR KR10-2002-0009962A patent/KR100433947B1/en not_active IP Right Cessation
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100965870B1 (en) * | 2008-11-26 | 2010-06-24 | 인스티튜트 포 인포메이션 인더스트리 | Triangulation processing systems and methods |
KR101139590B1 (en) * | 2008-12-29 | 2012-05-30 | 경희대학교 산학협력단 | Development Figure Manufacturing Method of Triangles for 3D Object and 3D Object using the same |
KR101056225B1 (en) * | 2009-06-26 | 2011-08-11 | 원광대학교산학협력단 | 3D mesh generation method |
CN103424070A (en) * | 2012-05-23 | 2013-12-04 | 鸿富锦精密工业(深圳)有限公司 | Curved face coordinate system set-up system and method |
CN116433873A (en) * | 2023-06-13 | 2023-07-14 | 广州中望龙腾软件股份有限公司 | Grid dividing method and device and electronic equipment |
CN116433873B (en) * | 2023-06-13 | 2023-12-01 | 广州中望龙腾软件股份有限公司 | Grid dividing method and device and electronic equipment |
Also Published As
Publication number | Publication date |
---|---|
KR100433947B1 (en) | 2004-06-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6323863B1 (en) | Object structure graph generation and data conversion using the same | |
Lodha et al. | Scattered data techniques for surfaces | |
US5774124A (en) | Finite element modeling method and computer system for converting a triangular mesh surface to a quadrilateral mesh surface | |
US7310097B2 (en) | Method, apparatus and computer program product enabling a dynamic global parameterization of triangle meshes over polygonal domain meshes | |
CN111581776A9 (en) | Geometric reconstruction model-based isogeometric analysis method | |
JP2002329215A (en) | Method for generating adaptively sampled distance field of object | |
CN115453753A (en) | NURBS surface-based optical system high-precision ray tracing method and device | |
Chen | Digital Functions and Data Reconstruction | |
JP2002520750A (en) | Numerical calculation method of parameterized surface in eigenspace of subdivision matrix of irregular patch | |
CN110675323B (en) | Three-dimensional map semantic processing method, system, equipment and computer medium | |
JP3265879B2 (en) | 3D orthogonal grid data generator | |
US20230120926A1 (en) | U-splines: splines over unstructured meshes | |
JP2002324251A (en) | Method for editing graphics object | |
US20120191423A1 (en) | Method for local refinement of geometric or physical representation | |
Ye et al. | Dirichlet energy of Delaunay meshes and intrinsic Delaunay triangulations | |
KR100433947B1 (en) | Exact geometry based triangle mesh generating method | |
KR101032397B1 (en) | Apparatus and method for representing 3d shape using spherical coordinate system | |
Makhlouf et al. | Reconstruction of the cad model using tps surface | |
Qin et al. | D-NURBS: A physics-based geometric design framework | |
KR100848304B1 (en) | Apparatus for nurbs surface rendering of sculpting deformation effect using the multi-resolution curved surface trimming | |
CN114937110B (en) | GPU (graphics processing unit) -accelerated drainage wire modeling method, system, equipment and medium | |
Xu et al. | A fast sweeping method for computing geodesics on triangular manifolds | |
Shen et al. | 3D modeling and visualization of river systems | |
Uemura et al. | Automatic mesh generation for FEM simulation of wind flow around tall buildings | |
Lawlor et al. | Bounding recursive procedural models using convex optimization |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20120404 Year of fee payment: 9 |
|
FPAY | Annual fee payment |
Payment date: 20130408 Year of fee payment: 10 |
|
FPAY | Annual fee payment |
Payment date: 20150305 Year of fee payment: 12 |
|
LAPS | Lapse due to unpaid annual fee |