CN105389851B - A kind of Loop subdivision implementation method based on vertex and the unified adjustment of new edge point - Google Patents
A kind of Loop subdivision implementation method based on vertex and the unified adjustment of new edge point Download PDFInfo
- Publication number
- CN105389851B CN105389851B CN201510689989.6A CN201510689989A CN105389851B CN 105389851 B CN105389851 B CN 105389851B CN 201510689989 A CN201510689989 A CN 201510689989A CN 105389851 B CN105389851 B CN 105389851B
- Authority
- CN
- China
- Prior art keywords
- vertex
- subdivision
- loop subdivision
- point
- loop
- Prior art date
- Legal status (The legal status 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 status listed.)
- Active
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
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
Abstract
The Loop subdivision implementation method based on vertex and the unified adjustment of new edge point that the present invention provides a kind of, it is characterised in that initially set up the half of data store organisation of triangle grid model.It is then based on the data structure and realizes 14 subdivisions, then all vertex positions of the grid model after 14 subdivisions are adjusted by unified calculation formula, to realize 1 Loop subdivision.Finally, to realizing that the grid progress estimation error after Loop subdivision stops segmenting if the grid meets error requirements, otherwise continue subdivision until meeting error requirements.The Loop subdivision method of the present invention is realized simply, efficient.
Description
Technical field
The Loop subdivision implementation method based on vertex and the unified adjustment of new edge point that the present invention relates to a kind of, and in particular to half
Loop subdivision is fast implemented under the data structure of side, the signified Loop subdivision of the present invention is a kind of subdivision based on tringle coal
Method, i.e. Loop subdivision belong to computer graphics and Curves and Surfaces Modeling Technology field.
Background technology
Modeling Technology of Subdivision Surface is a kind of by the way that initial control grid is obtained a smooth pole by refining many times
Curved surface is limited, is a kind of common technology in surface modeling, has obtained widely answering in computer animation and reverse-engineering field
With.Loop subdivision is one of most common method in Modeling Technology of Subdivision Surface, referring to Loop C.Smooth subdivision
surfaces based on triangles.1987.The characteristics of Loop subdivision segments template due to it, for newly-generated side
Point and original vertices must use different subdivision templates.In order to distinguish existing vertex and newly-generated edge point, Loop is being realized
Generally understand opposite vertexes when subdivision and edge point is handled by different level, newly-generated edge point is made to be in highest level, opposite vertexes and side
The processing by different level of point increases the amount of storage for realizing Loop subdivision program.Additionally due to the position of newly-generated edge point is by level
The position on existing vertex lower than it determines that this makes the specific location for calculating edge point become complex.
Loop subdivision belongs to the subdivision of 1-4 triangles from subdivision mode, i.e., a triangle point in segmenting each time
At four triangles.So Loop subdivision can be realized in two steps, first, by three on three sides of each tri patch
A midpoint is connected two-by-two as the edge point newly increased, realizes that the 1-4 that a tri patch is subdivided into four tri patch is segmented.
Then, the position of original vertices and the edge point newly increased is adjusted.Need to find a kind of unified method to original for this
The position of beginning control vertex and the edge point newly increased is adjusted, this is not by original control vertex and newly-generated edge point
It is handled respectively to realize that Loop subdivision provides possibility.
Invention content
The Loop subdivision implementation method based on vertex and the unified adjustment of new edge point that the purpose of the present invention is to provide a kind of, it
It is a kind of simple, the Loop subdivision realization side of introducing control vertex hierarchical information and control vertex type need not be passed through
Method needs by the way that level is arranged to control vertex and to push up new edge point and original control to solve existing Loop subdivision algorithm
The problem of point uses different subdivision templates to be calculated to realize Loop subdivision.
A kind of Loop subdivision implementation method based on vertex and the unified adjustment of new edge point of the present invention, it includes the following steps:
Step 1:The half of data store organisation based on tringle coal is built, specifically:By triangle grid model text
The data of part are read by computer program in memory, and according in model data vertex coordinates data and each dough sheet
Three vertex numbers establish vertex linear linked list based on vertex, one side of something and dough sheet, half of linear linked list and face respectively
Piece linear linked list.And according to the relationship between point, one side of something and dough sheet, build the half of data store organisation between three.
Step 2:Midpoint on three sides of each tri patch is connected two-by-two as newly-generated edge point, realization will be every
A tri patch is divided into four tri patch.It should increase new life in the linear linked list of corresponding vertex, one side of something and dough sheet at this time
At point, one side of something and new dough sheet, with realize 1-4 segment.
Step 3:Newly-generated edge point after 1-4 is segmented and original control vertex coordinate are counted using formula (1)
It calculates.
Wherein V represents the coordinate value without the vertex before adjustment,Apex coordinate value after adjustment, Vi(i=0,1 ...
N-1 the coordinate value on n vertex in its field 1- of vertex V) is represented.
Step 4:Using all vertex of the grid model after completion Loop subdivision as new original control vertex, repeat
Step 2 and three after model reaches precision prescribed, completes entire Loop subdivision process to realize multiple Loop subdivision.
Wherein, " the triangle grid model file " described in step 1 refers to containing owning for triangle grid model
The computer documents of topological relation between the vertex point coordinate information and vertex knead dough of tri patch, it can be OBJ, PLY etc.
Computer file format, it is only necessary to the coordinate on three vertex, vertex and face on each tri patch are contained in model file
Topological relation.
It is 3D modeling and animation software " Advanced that wherein obj file format, which refers to by Alias/Wavefront companies,
A kind of Standard File Format of Visualizer " exploitations, comprising just like the triangle gridding described in step 1 in this file format
Topological relation between the vertex point coordinate information and vertex knead dough of all tri patch in model.
Wherein PLY file formats refer to by being a set of three-dimensional grid model data format of Stanford universities exploitation.This
In kind of file format comprising the vertex point coordinate information just like all tri patch in the triangle grid model described in step 1 with
And topological relation between the knead dough of vertex.
Wherein, the half of data store organisation described in step 1 can also be replaced by other types of data structure,
Only require that data structure can be good at embodying the topological relation between vertex, side and dough sheet.
Wherein, described in step 2 1-4 subdivision refer to by three midpoints on a three sides of a triangle two-by-two
It interconnects, and a triangle is divided into the process of four triangles.
Wherein, the 1- neighborhood points on the vertex described in step 3 refer to all and this is connected with each other with a line
Point, the number of vertices in the fields 1- on the vertex are known as the valence on the vertex.The side that the internal point and vertex valence that vertex valence is 6 are 4
Boundary's point is known as regular point, is otherwise irregular point.
Wherein, Loop subdivision is a limit process, i.e., Loop subdivision model is by Loop subdivision rule many times
The limit model obtained after being finely divided, but in practical applications, obtained after the initial subdivision for controlling grid progress limited number of time
Loop subdivision grid is in close proximity to Loop subdivision model.Therefore, the specific number of Loop subdivision depends on user institute
It is required that model accuracy and run Loop subdivision program computer performance.
The present invention is based on the Loop subdivision implementation methods on vertex and the unified adjustment of new edge point, and advantage and effect are:It is logical
Crossing the new edge point generated after 1-4 subdivisions and control vertex can be adjusted by unified computational methods, without right
Newly-generated edge point and control vertex is distinguished by way of level is arranged, and has saved memory, also simplifies realization edge point
The difficulty of position adjustment algorithm.Enable and is engaged in Loop subdivision researcher and fast implements Loop subdivision algorithm.
Description of the drawings
Fig. 1 (a), (b) are half of data store organisation schematic diagrames.
Fig. 2 is 1-4 subdivision schematic diagrames.
Fig. 3 is new summit and the unified adjustment algorithm schematic diagram of new edge point in Loop subdivision method proposed by the present invention.
Fig. 4 is the flow chart of Loop subdivision method proposed by the present invention.
Serial number, symbol, code name are described as follows in figure:
Forerunner in Fig. 1 (a), (b) with it is subsequent refer in Computer Subject the forerunner of single-track link table with it is subsequent.In a list
Into linear linked list, forerunner refers to the previous data before current signified data, and subsequent refers in current signified data
The latter data.
Serial number 1,2 in Fig. 1 (b) refers respectively to two triangles up and down, and 1 refers to the triangle in Fig. 1 (b) above, and 2
It refer to the triangle in lower section in Fig. 1 (b).
Two circles in Fig. 1 (b) represent two vertex in the common edge of two triangles, two sides with the arrow point
Two one side of something of a common edge are not represented.
The vertex subordinate being connected with one side of something in Fig. 1 (b) and the one side of something.
Open circles in Fig. 2 represent the original control vertex before being segmented without 1-4, and concentric circles is represented to be segmented by 1-4
The edge point newly increased afterwards.
When α representatives in Fig. 3 are adjusted the vertex, the weights on this vertex.β represents all of the fields 1- on this vertex
The weights on vertex.
Specific implementation mode
With reference to operating procedure and attached drawing 1 (a), (b) --- Fig. 3, the present invention is further illustrated.
A kind of Loop subdivision implementation method based on vertex and the unified adjustment of new edge point of the present invention, includes the following steps:
Step 1 builds the half of data store organisation based on tringle coal, specifically:By triangle grid model text
The data of part are read by computer program in memory, and according in model data vertex coordinates data and each dough sheet
Three vertex numbers establish vertex linear linked list based on vertex, one side of something and dough sheet, half of linear linked list and face respectively
Piece linear linked list.And according to the relationship between point, one side of something and dough sheet, build the half of data store organisation between three.
Midpoint on three sides of each tri patch is connected by step 2 two-by-two as newly-generated edge point, and realization will be each
Tri patch is divided into four tri patch.It should increase in the linear linked list of corresponding vertex, one side of something and dough sheet at this time newly-generated
Point, one side of something and new dough sheet, with realize 1-4 segment.
Step 3 counts newly-generated edge point after 1-4 is segmented and original control vertex coordinate using formula (1)
It calculates.
Wherein V represents the coordinate value without the vertex before adjustment,Apex coordinate value after adjustment, Vi(i=0,1 ...
N-1 the coordinate value on n vertex in its field 1- of vertex V) is represented.
Step 4 repeats to walk using all vertex of the grid model after completing Loop subdivision as new original control vertex
Rapid two and three, to realize multiple Loop subdivision, after model reaches precision prescribed, complete entire Loop subdivision process.
The core concept of half of data structure is to regard a line as two opposite one side of something in direction.Two in a line
Vertex is belonging respectively to different one side of something, opposite one side of something of this two one side of something other side each other.As shown in Fig. 1 (a), (b), with direction to
The connected vertex of right one side of something belongs to the one side of something of this direction to the right, and belongs to this direction to the left with the vertex of direction to the left
It is half of.This two one side of something are belonging respectively to different dough sheets, and green one side of something belongs to dough sheet 2, and red one side of something belongs to dough sheet 1.It is logical
Vertex and the dough sheet data read in grid model file are crossed, the linear linked list of vertex, one side of something and dough sheet is established.Every half
The vertex information and dough sheet information for being included in side include all half side informations for forming the dough sheet in each dough sheet.
To realize the data access structure as shown in Fig. 1 (a), (b), lay the foundation for subsequent 1-4 subdivisions.
As shown in Fig. 2, 1-4 subdivision core concept be take the midpoint on three sides on each tri patch be newly increase it is new
These three new edge points are connected by edge point two-by-two, to which a tri patch is divided into four tri patch.Specifically in a program,
Double of side linear linked list is traversed, and first determines whether the one side of something has stepped through, if not traversing, takes the midpoint on one side of something to be
New vertex increases to the tail portion of vertex linear linked list, while this one side of something and opposite one side of something corresponding to it being marked
Traversal.After having traversed all one side of something, the midpoint for forming all sides of grid model has been all increased in the linear linked list on vertex.
Then new half of chained list is established by the relationship between vertex and vertex.Such as the midpoint on arbitrary two sides of a dough sheet
Two new one side of something are formed, two vertex at midpoint and the side in arbitrary a line form new one side of something.Establish new one side of something
After linear linked list, new sub- dough sheet linear linked list is established according to the correlation between half of.In this way, after 1-4 is segmented, obtain
New vertex linear linked list, edge point linear linked list and sub- dough sheet linear linked list are arrived, they still use half of data structure
It is handled, realizes 1-4 subdivisions.
After carrying out 1-4 subdivisions, the topological structure after a Loop subdivision is had been obtained for.But all tops
Point position is all incorrect, needs to be adjusted.And the coordinate on all vertex is only needed through its own apex coordinate and is somebody's turn to do
Point weighted average in all fields 1- on vertex obtains.As shown in figure 3, all apex coordinates all pass through vertex own coordinate
MultiplyAnd all vertex (new edge point and original control vertex) coordinate in its field 1-
It takesIt is weighted the coordinate value for averagely obtaining the vertex after once segmenting,
Middle n is the valence on the vertex (new edge point and original control vertex).
Segment a limit process, i.e., subdivision curved surface is that initial control grid carries out refining many times in some way
The Limit Surface arrived.In practical application, due to initially control grid by it is a small number of segment several times after obtained refined net
Visually smooth enough, therefore the general subdivision refined net approximation generation for taking subdivision to meet certain error afterwards several times
For limit subdivision curved surface.Therefore, as shown in figure 4, the subdivided meshes needs that initially control grid has obtained after once segmenting
Judge whether to meet error condition, stop segmenting if meeting error condition, otherwise has to the intermediate mesh that will be obtained again
It is secondary to be finely divided, just stop subdivision until meeting given error condition.
In conclusion the software flow pattern of Loop subdivision implementation method is as shown in figure 4, first should be by given grid mould
In type, such as OBJ PLY grid model file read-in programmes.By vertex coordinates data in grid model and each
The serial number on three vertex that dough sheet is included is established based on vertex linear linked list, half of linear linked list and dough sheet linear linked list
Half of data store organisation.Then 1-4 subdivisions are carried out to initially controlling grid, obtain and initially controls grid into a Loop excessively
The upper model of equal value of topology after subdivision.Later by unified vertex adjustment algorithm, all vertex positions are adjusted.From
And realize a Loop subdivision.And then error-detecting is carried out to the grid model after a Loop subdivision, whether full seen
Sufficient assigned error stops segmenting if the grid model has met assigned error, otherwise continues Loop to the model
Subdivision, until meeting assigned error.Finally stop subdivision.
Claims (7)
1. a kind of Loop subdivision implementation method based on vertex and the unified adjustment of new edge point, it is characterised in that:It includes following step
Suddenly:
Step 1:The half of data store organisation based on tringle coal is built, specifically:By triangle grid model file
Data are read by computer program in memory, and according to three of the vertex coordinates data and each dough sheet in model data
A vertex number establishes vertex linear linked list, half of linear linked list and dough sheet line based on vertex, one side of something and dough sheet respectively
Property chained list, and according to the relationship between point, one side of something and dough sheet, build the half of data store organisation between three;
Step 2:Midpoint on three sides of each tri patch is connected two-by-two as newly-generated edge point, is realized each three
Edged surface piece is divided into four tri patch, should increase in the linear linked list of corresponding vertex, one side of something and dough sheet at this time newly-generated
Point, one side of something and new dough sheet, to realize that 1-4 is segmented;
Step 3:Newly-generated edge point after 1-4 is segmented and control vertex coordinate are calculated using formula (1):
Wherein, V represents the coordinate value without the vertex before adjustment,Apex coordinate value after adjustment, ViRepresent its of vertex V
The coordinate value on n vertex in the fields 1-;Wherein, i=0,1 ... n-1;
Step 4:Using all vertex for completing the grid model after Loop subdivision as new control vertex, repeat step 2 and
Step 3, to realize that plural number time Loop subdivision completes entire Loop subdivision process after model reaches precision prescribed.
2. a kind of Loop subdivision implementation method based on vertex and the unified adjustment of new edge point according to claim 1, special
Sign is:" triangle grid model file " described in step 1 refers to all tri patch for containing triangle grid model
Vertex point coordinate information and vertex knead dough between topological relation computer documents, it is OBJ, PLY computer file format,
The coordinate on three vertex on each tri patch, vertex and the topological relation in face are contained in model file.
3. a kind of Loop subdivision implementation method based on vertex and the unified adjustment of new edge point according to claim 1, special
Sign is:Obj file format is for a kind of normative document of 3D modeling and animation software " AdvancedVisualizer " exploitation
Format includes the apex coordinate letter of all tri patch in the triangle grid model described in step 1 in this file format
Topological relation between breath and vertex knead dough.
4. a kind of Loop subdivision implementation method based on vertex and the unified adjustment of new edge point according to claim 1, special
Sign is:PLY file formats are a set of three-dimensional grid model data formats of exploitation, include step 1 in this file format
Topological relation between the vertex point coordinate information and vertex knead dough of all tri patch in the triangle grid model.
5. a kind of Loop subdivision implementation method based on vertex and the unified adjustment of new edge point according to claim 1, special
Sign is:Half of data store organisation described in step 1 can also be replaced by other types of data structure, only require number
It can be good at embodying the topological relation between vertex, side and dough sheet according to structure.
6. a kind of Loop subdivision implementation method based on vertex and the unified adjustment of new edge point according to claim 1, special
Sign is:Vertex in its field 1- of vertex V described in step 3 refers to all being connected with each other with a line with the point
Point, the number of vertices in its field 1- of vertex V is known as the valence on the vertex, and the internal point and vertex valence that vertex valence is 6 are 4
Boundary point be known as regular point, be otherwise irregular point.
7. a kind of Loop subdivision implementation method based on vertex and the unified adjustment of new edge point according to claim 1, special
Sign is:Loop subdivision is a limit process, i.e., Loop subdivision model is carried out carefully by Loop subdivision rule many times
The limit model obtained after point, in practical applications, the Loop subdivision obtained after the initial subdivision for controlling grid progress limited number of time
Grid is in close proximity to Loop subdivision model, and therefore, the specific number of Loop subdivision depends on the model required by user
The performance of the computer of precision and operation Loop subdivision program.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510689989.6A CN105389851B (en) | 2015-10-22 | 2015-10-22 | A kind of Loop subdivision implementation method based on vertex and the unified adjustment of new edge point |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510689989.6A CN105389851B (en) | 2015-10-22 | 2015-10-22 | A kind of Loop subdivision implementation method based on vertex and the unified adjustment of new edge point |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105389851A CN105389851A (en) | 2016-03-09 |
CN105389851B true CN105389851B (en) | 2018-07-27 |
Family
ID=55422099
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510689989.6A Active CN105389851B (en) | 2015-10-22 | 2015-10-22 | A kind of Loop subdivision implementation method based on vertex and the unified adjustment of new edge point |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105389851B (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106296824B (en) * | 2016-08-18 | 2019-04-16 | 北京航空航天大学 | A kind of T-mesh local refinement implementation method based on half of data structure |
CN110956699B (en) * | 2019-11-27 | 2022-10-25 | 西安交通大学 | GPU (graphics processing unit) parallel slicing method for triangular mesh model |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1430184A (en) * | 2001-12-29 | 2003-07-16 | 田捷 | Simplified method of realizing three dimensional network model using half of data structure |
US6859202B2 (en) * | 2002-04-23 | 2005-02-22 | Alias Systems Corp. | Conversion of a hierarchical subdivision surface to nurbs |
CN1877640A (en) * | 2006-07-05 | 2006-12-13 | 中山大学 | Geometric data subdivision method based on triangle interpolation surface subdivision |
-
2015
- 2015-10-22 CN CN201510689989.6A patent/CN105389851B/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1430184A (en) * | 2001-12-29 | 2003-07-16 | 田捷 | Simplified method of realizing three dimensional network model using half of data structure |
US6859202B2 (en) * | 2002-04-23 | 2005-02-22 | Alias Systems Corp. | Conversion of a hierarchical subdivision surface to nurbs |
CN1877640A (en) * | 2006-07-05 | 2006-12-13 | 中山大学 | Geometric data subdivision method based on triangle interpolation surface subdivision |
Non-Patent Citations (1)
Title |
---|
基于曲面细分技术的三维可视化研究;王伟;《中国优秀硕士学位论文全文数据库(电子期刊)》;20100630;论文第8-19、36-39页 * |
Also Published As
Publication number | Publication date |
---|---|
CN105389851A (en) | 2016-03-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Liang et al. | An improved loop subdivision to coordinate the smoothness and the number of faces via multi-objective optimization | |
Takayama et al. | Sketch-based generation and editing of quad meshes. | |
CN109377561A (en) | A kind of digital-to-analogue surface mesh generation method based on conformal geometry | |
CN105069226B (en) | A kind of three-dimensional modeling modeling method based on template | |
CN105741355B (en) | A kind of block dividing method of triangle grid model | |
CN102306396B (en) | Three-dimensional entity model surface finite element mesh automatic generation method | |
CN103714577B (en) | Three-dimensional model simplification method suitable for model with textures | |
KR102040988B1 (en) | Creating a surface from a plurality of 3d curves | |
CN109584357A (en) | Three-dimensional modeling method, device, system and storage medium based on more contour lines | |
CN101408991B (en) | Curved surface molding method combing interpolation type subdivision and approach type subdivision | |
CN104361632A (en) | Triangular mesh hole-filling method based on Hermite radial basis function | |
CN106981097A (en) | A kind of T spline surface approximating methods based on subregion Local Fairing weight factor | |
CN107038308B (en) | A kind of regular grid terrain modeling method based on linear interpolation | |
CN107273543A (en) | A kind of conversion method of DGN data formats | |
CN116126809B (en) | Building information model data storage conversion method based on national standard | |
CN105389851B (en) | A kind of Loop subdivision implementation method based on vertex and the unified adjustment of new edge point | |
CN106445981A (en) | Wavelet transform-based self-adaptive compression method for STL (Standard Template Library) grid model slicing data | |
CN102298787A (en) | Control method and control system for animation object motion | |
CN106803280A (en) | A kind of subdivision curved surface method for reconstructing perceived based on variation frame feature | |
CN104504758B (en) | Artificial tooth is preced with surface curve generation method | |
CN107330209B (en) | Modeling wall intelligent template implementation method based on parametric design | |
Falcidieno et al. | Natural surface approximation by constrained stochastic interpolation | |
CN114119628B (en) | Point cloud accurate segmentation method based on feature template | |
Shang et al. | Effective re-parameterization and GA based knot structure optimization for high quality T-spline surface fitting | |
CN104504719A (en) | Image edge detection method and equipment |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |