CN102360515B - Progressive mesh data organization method for three-dimensional model - Google Patents

Progressive mesh data organization method for three-dimensional model Download PDF

Info

Publication number
CN102360515B
CN102360515B CN201110317931.0A CN201110317931A CN102360515B CN 102360515 B CN102360515 B CN 102360515B CN 201110317931 A CN201110317931 A CN 201110317931A CN 102360515 B CN102360515 B CN 102360515B
Authority
CN
China
Prior art keywords
data
index
triangle
level
detail
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.)
Expired - Fee Related
Application number
CN201110317931.0A
Other languages
Chinese (zh)
Other versions
CN102360515A (en
Inventor
陈静
李墨
李华玮
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuhan University WHU
Original Assignee
Wuhan University WHU
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 Wuhan University WHU filed Critical Wuhan University WHU
Priority to CN201110317931.0A priority Critical patent/CN102360515B/en
Publication of CN102360515A publication Critical patent/CN102360515A/en
Application granted granted Critical
Publication of CN102360515B publication Critical patent/CN102360515B/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Image Generation (AREA)

Abstract

The invention provides a progressive mesh data organization method for a three-dimensional model. Progressive mesh data are generated according to an original mesh of the three-dimensional model and are layered and organized in a multi-dimension manner, and the progressive mesh data consist of a foundation mesh, foundation index data, various levels of incremental data and various levels of detailed layer mesh index data. In a progressive mesh visualization process, the foundation mesh and the foundation index data are firstly transmitted to a client side and are subjected to drawing, the incremental data and the index data are transmitted to the client side along with decrease of the distance between a viewpoint and the model, and detailed layer meshes of corresponding layers are drawn. Non-redundancy multi-dimension incremental type data organization of the three-dimensional model is realized by the aid of the progressive mesh data organization method, and the progressive mesh data organization method is favorable for quick transmission and high-efficiency visualization of complicated three-dimensional models.

Description

A kind of Progressive mesh data organization method for three-dimensional model
Technical field
Patent of the present invention relates to Network Three-dimensional geography information visualization technique field, particularly relates to a kind of Progressive mesh data organization method for net environment city complex three-dimensional model.
Background technology
In addition, along with the development of network technology with popularize, three-dimensional model not only need to be stored and draw in this locality, also needs to transmit by the internet.Therefore, how at net environment, the different levels detail model is effectively transmitted, also become a critical problem.
Since the nineties in 20th century, the researchist has carried out a large amount of research work for above problem, wherein, Progressive Mesh (the Progressive Mesh that proposes with the H.Hoppe of Microsoft company, PM) concept is the most famous, related documents: Hoppe, H.Progressive Meshes[C] .Proceedings of SIGGRAPH ' 96, Computer Graphics Proceedings, Annual Conference Series, ACM SIGGRAPH, ACM Press.1996,8:99-108.Hoppe, H.View-Dependent Refinement of Progressive Meshes[C] and .Proceedings of SIGGRAPH ' 97.1997:189-198. provides a solution for the progressive transmission of three-dimensional model.
Hoppe proposes the Progressive Mesh concept and provides a kind of realization approach for the network progressive transmission of complex three-dimensional model, can play up simultaneously and the download model data, compares with display packing after the traditional first download, has very strong real-time.And, compare with the method for traditional structure resolution simplified model, more level and smooth and continuous aspect the model hierarchy transition.
But in actual applications, this method still exists certain defective and weak point, is mainly reflected in the following aspects:
(1) the Progressive mesh data amount that generates after the simplification is larger.
The complex three-dimensional model data amount of using in some applications is up to tens MB, may comprise several ten thousand even hundreds of thousands triangular piece unit, adopting Edge collapse algorithm to generate in the process of simplified model, may need to carry out up to tens thousand of inferior folding operations, and in the process that makes up Progressive Mesh, the recovery information of folding operation is all recorded each time, therefore vertex split in the Progressive Mesh that generates (Vertex Split is called for short vsplit) sequence information need to take a large amount of additional storage spaces.
In addition, each time in the folding process, all need to generate a new summit and record, therefore the final Progressive mesh data amount that generates will be far longer than the data volume of original three-dimensional model, has increased the burden of service end model data store.
(2) model reconstruction frequent operation.
In three-dimensional grid model rejuvenation, a vsplit operation of every execution all needs to send a secondary data request to service end, and after downloading to data the client grid is rebuild and plays up.In the application of digital earth, usually need to play up the three-dimensional modeling data of magnanimity, number is very harsh for the performance requirement of client with ten thousand times reconstruction calculations, has greatly limited the real-time display efficiency of three-dimensional model.For the progressive display of magnanimity complex three-dimensional model, a large amount of data request operation can take more Internet resources undoubtedly in addition, also can cause huge load to server simultaneously.
Summary of the invention
The object of the invention is to overcome the prior art deficiency, has proposed a kind of Progressive mesh data organization method for three-dimensional model.
Technical scheme of the present invention is a kind of Progressive mesh data organization method for three-dimensional model, according to the original mesh M of three-dimensional model nGenerate Progressive mesh data, comprise basic grid M 0With basic index data Index 0, incremental datas at different levels { Δ Data 1, Δ Data 2... Δ Data n, and level of detail grid M at different levels 1, M 2... M nCorresponding index data { Index 1, Index 2... Index n; Wherein, the detail rank is the level of detail grid M of i i=M I-1+ Δ Data i, the i value is 1,2 ... n;
With basic grid M 0With basic index data Index 0Store top layer into, along with the increase of yardstick, successively with increment geometric data { Δ Data at different levels 1, Δ Data 2... Δ Data nAnd level of detail grid M at different levels 1, M 2... M nCorresponding index data { Index 1, Index 2... Index nStore in the corresponding level;
In the Progressive Mesh visualization process, at first with basic grid M 0With basic index data Index 0Be transferred to client, and draw; According to current required detail rank i, the incremental data Δ Data that transmission is corresponding iWith index data Index iTo client, at other level of detail grid of upper level M I-1Draw level of detail grid M on the basis i
And the concrete mode that generates Progressive mesh data may further comprise the steps,
Step 1 reads original three-dimensional model, with the original mesh of original three-dimensional model as level of detail grid M n, all summits of original three-dimensional model are added among the Progressive Mesh vertex set VertexList, and the attribute Level value on all summits of initialization is 0; All summits and leg-of-mutton attribute Removed value that original three-dimensional model is set are false, and expression is not removed; List all triangles of original three-dimensional model in triangle chained list TriangleList, traversing triangle chained list TriangleList obtains index data Index n, with index data Index nAdd among the detail index LodVertexList at different levels; If level of detail grid current to be simplified is M k, make k=n;
Step 2 is with level of detail grid M current to be simplified kSimplify the level of detail grid M that obtains last layer K-1, need the vertex set V that removes after being simplified mIf vertex set V after simplifying mIn arbitrary summit V aBy summit V bSubstitute, traversal comprises summit V aIn abutting connection with triangle set, will point to summit V in abutting connection with all triangles in the triangle set aPointer all point to summit V b, form V aSensing triangle set; Vertex set V mIn the sensing triangle set on all summits consist of triangle set NT;
Step 3, traversing triangle set NT, when in three summit pointers in the triangle any two when pointing to same summit, then this triangle is invalid triangle; All invalid triangle attribute Removed values are set are true, expression has removed;
Step 4, mark vertex set V in Progressive Mesh vertex set VertexList mThe attribute Removed value on interior all summits is true, and expression removes; Vertex set V is set mThe attribute Level value on interior all summits is k, and expression detail rank is k, this vertex set V mBe the incremental data Δ Datak of k level;
Step 5, attribute Removed value is the triangle of false among the traversing triangle chained list TriangleList, obtains index data Index K-1, with index data Index K-1Add among the detail index LodVertexList at different levels;
Step 6 if k>0 makes k=k-1, is returned step 2 and is continued to calculate incremental data Δ Data kWith index data Index K-1If, if k=0 enters step 7;
Step 7, all properties Removed value is consisted of set by the summit of true and is basic grid M among the Progressive Mesh vertex set VertexList 0, attribute Removed value is the triangle of false among the traversing triangle chained list TriangleList, the gained index data is basic index data Index 0
Innovation of the present invention is to make up the multiple dimensioned Progressive Mesh of three-dimensional model, realizes irredundant, the multiple dimensioned increment type Organization of Data of net environment three-dimensional modeling data, is conducive to the fast transport of complex three-dimensional model and efficiently visual.
Description of drawings
Fig. 1 is the complex three-dimensional model generation multilevel data structure figure of the embodiment of the invention.
Fig. 2 is the Progressive mesh data illustraton of model of the embodiment of the invention.
Fig. 3 is that the Progressive Mesh of the embodiment of the invention makes up process flow diagram.
Fig. 4 is the Progressive mesh data organization method for three-dimensional model of the embodiment of the invention.
Embodiment
The present invention proposes a kind of Progressive mesh data organization method for three-dimensional model, describes technical solution of the present invention in detail below in conjunction with drawings and Examples:
For reducing reconstruct and the solicit operation of three-dimensional model gridding rejuvenation in making up the Progressive Mesh process, embodiment is according to original mesh M nGenerate Progressive mesh data, comprise basic grid M 0With basic index data Index 0, incremental datas at different levels { Δ Data 1, Δ Data 2... Δ Data n, and level of detail grid M at different levels 1, M 2... M nCorresponding index data { Index 1, Index 2... Index n; Wherein, the detail rank is the level of detail grid M of i i=M I-1+ Δ Data i, the i value is 1,2 ... n.During implementation, n belongs to positive integer, is the progression of Progressive mesh data, can be by user's self-defining during implementation.
The Progressive mesh data structure is with original mesh M iGenerate according to the actual requirements multi-stage data, as shown in Figure 1, for example: the original mesh model M iComprise 7 vertex data collection { V 1, V 2, V 3, V 4, V 5, V 6, V 7; M iIndex Index iBe { { V 1, V 2, V 3; { V 1, V 4, V 5; { V 1, V 6, V 7, retrieve respectively three triangles, this moment is without incremental data.Through simplifying one-level, next rank grid M I-1Comprise 5 vertex data collection { V 1, V 2, V 3, V 4, V 5; Index Index I-1Be { { V 1, V 2, V 3; { V 1, V 4, V 5, incremental data is Δ Data iBe { V 6, V 7.Streamline any further one-level, next rank grid M I-2Comprise 3 vertex data collection { V 1, V 2, V 3; Index Index I-2Be { { V 1, V 2, V 3, incremental data Δ Data I-1Be { V 4, V 5.
Thus, the multistage simplification through grid model comprises basic grid M 0With basic index Index 0, incremental datas at different levels { Δ Data 1, Δ Data 2... Δ Data n, and index data { Index corresponding to incremental data at different levels 1, Index 2... Index n; The adjacent mesh relationship model can be expressed as:
M i=M i-1+ΔData i
In the edge contraction Progressive Mesh construction method that Hoppe proposes, each step edge contraction action need generates a new summit with two original vertices, need to open up the data that newly-generated summit is stored in certain storage space space, causes the waste of storage space.Therefore, for reducing the redundant data amount, in carrying out the model simplification process, the generation on new summit be should avoid, but two or more summits of needs simplification, i.e. any one-level incremental data Δ Data in the Progressive Mesh replaced with a certain summit in the original mesh data iAll are original mesh M nSubset.
Referring to Fig. 3, the three-dimensional model Progressive Mesh product process step of embodiment is as follows:
Step 1 reads original three-dimensional model, initialization level of detail grid M n, be about to the original mesh of original three-dimensional model as level of detail grid M n, level of detail grid M nThe detail rank be n.All summits of original three-dimensional model are added among the Progressive Mesh vertex set VertexList, and the attribute Level value on all summits of initialization is 0; All summits and leg-of-mutton attribute Removed value that original three-dimensional model is set are false, and expression is not removed; List all triangles of original three-dimensional model in triangle chained list TriangleList, traversing triangle chained list TriangleList obtains index data Index n, with index data Index nAdd among the detail index LodVertexList at different levels; If level of detail grid current to be simplified is M k, make k=n.
Step 2 is with level of detail grid M current to be simplified kSimplify the level of detail grid M that obtains last layer K-1, need the vertex set V that removes after being simplified mIf vertex set V after simplifying mIn arbitrary summit V aBy summit V bSubstitute, traversal comprises summit V aIn abutting connection with triangle set (embodiment is designated as NeighborTriangle), will point to summit V in abutting connection with all triangles in the triangle set aPointer all point to summit V b, form V aSensing triangle set; Vertex set V mIn the sensing triangle set on all summits consist of triangle set NT.
Step 3, traversing triangle set NT, when in three summit pointers in the triangle any two when pointing to same summit, then this triangle is invalid triangle; All invalid triangle attribute Removed values are set are true, expression removes.Embodiment is designated as Vertex[1 with three summit pointers in the triangle], Vertex[2], Vertex[3], as Vertex[1]==Vertex[2] || Vertex[1]==Vertex[3] || Vertex[2]==Vertex[3] time, then this triangle is invalid triangle.
Step 4, mark vertex set V in Progressive Mesh vertex set VertexList mThe attribute Removed value on interior all summits is true, and expression removes, and the simplification that this part summit does not participate in is next time calculated.Vertex set V is set mThe attribute Level value on interior all summits is k, and expression detail rank is k, this vertex set V mBe the incremental data Δ Data of k level k
Step 5, attribute Removed value is the triangle of false among the traversing triangle chained list TriangleList, obtains index data Index K-1, with index data Index K-1Add among the detail index LodVertexList at different levels.
Step 6 if k>0 makes k=k-1, is returned step 2 and is continued to calculate incremental data Δ Data kWith index data Index K-1If, if k==0 enters step 7.
Step 7, all properties Removed value is consisted of set by the summit of true and is basic grid M among the Progressive Mesh vertex set VertexList 0, attribute Removed value is the triangle of false among the traversing triangle chained list TriangleList, the gained index data is basic index data Index 0
Progressive mesh data can carry out ascending sort to vertex set according to summit Level value, thereby make basic grid M after generating 0With incremental datas at different levels be generic sequence in storage order; Then export the vertex data increment of every one-level and index data to file according to the Progressive Mesh vertex set VertexList behind the generic sequence and LOD index LodVertexList at different levels.Be convenient to like this carry out multiple dimensioned tissue storage.
During implementation, step 2 is simplified can adopt various ways, such as shortcut calculation of Edge Collapse Simplification, wavelet decomposition etc.Embodiment adopts the method for simplifying vertex clustering of three-dimensional models with texture constraint, texture error metrics method and how much simplification organic unities of complex three-dimensional model are got up, realize the quick simplification of magnanimity complex three-dimensional model, and effectively kept the textural characteristics after the model simplification.This short-cut method comprises the following steps:
Step 1, each weight of vertex value in the Calculation of Three Dimensional model;
Step 2, big or small according to default geometric units lattice size and texture cell lattice, with three-dimensional model according to (x, y, z, u, v) five dimensions are divided, namely divide according to the geometric units lattice first and obtain some leaf nodes, according to the texture cell lattice above-mentioned some leaf node Further Divisions are obtained more leaf node, wherein (x on this basis, y, z) expression geometric space coordinate, (u, v) represents texture space coordinates;
Step 3 checks each leaf node inner vertex number,
If number of vertices is empty or is 1, then do not do any operation;
If number of vertices greater than default number threshold value, is then carried out the node split operation to leaf node;
If number of vertices is greater than 1 and be less than or equal to default number threshold value, according to step 1 gained weight of vertex value, the geometric error ε that produces after the cluster is calculated as the cluster representative point in the summit of selecting the weights maximum in the leaf node sWith texture error ε ' s, as geometric error ε sGreater than default geometric error threshold epsilon MaxOr texture error ε ' sGreater than default texture error threshold ε ' MaxThe Shi Jinhang splitting operation;
Step 4, the leaf node that splitting operation is produced returns execution in step 3, until the number of vertices in all leaf nodes is for empty or be 1, perhaps geometric error ε sWith texture error ε ' sAll in threshold range;
Step 5 is for all geometric error ε sWith texture error ε ' sAll the leaf node in threshold range is replaced the summit in the leaf node with cluster representative point, and upgrades index data, then the triangle of degenerating is removed from the triangle tabulation of three-dimensional model.
In step 1, weight of vertex value account form is as follows,
If summit weights scope w ∈ (0,1), weights are larger, and then to represent this summit more important, for the arbitrary summit Q that is not positioned at boundary in the three-dimensional model, relevant triangle set T arranged S={ t 0, t 1... t m, suppose triangle set T SIntermediate cam shape t iWith t jAdjacent, definition w IjAs follows
w ij=(1-dot(n i,n j))/2
N wherein i, n jBe respectively triangle t i, t jNormal vector, dot is the vector dot computing, w IjThe value scope is (0,1), w IjBe worth larger, expression triangle t iWith t jAngle less, the weight w of summit Q is expressed as:
w = max { w ij } i ≠ j i , j ∈ ( 0 , m )
For the summit that is positioned at boundary, its weights are directly given maximal value 1.Judge that the specific implementation whether summit is positioned at boundary is, establishing summit Q has relevant limit set L SWith triangle set T SIf, limit set L SIn have limit l and satisfy triangle set T SIn only have unique triangle t to comprise this limit, this summit Q namely is frontier point so; If limit set L SIn all limits do not satisfy this condition, this summit is not frontier point so.
In step 3, the computational geometry error adopts the error of curvature measure, and specific implementation is as follows,
Be set in the vertex set Q in the leaf node S={ Q w, Q 0, Q 1... Q n, summit Q wherein wBe cluster representative point, vertex set Q SOther any one summit Q in interior iRelevant triangle set Ts={t is arranged 0, t 1... t m, triangle is gathered all vertex of a triangle Q among the Ts iUse summit Q wObtain triangle set Ts '={ t after the replacement 0', t 1' ... t m'; If triangle set Ts intermediate cam shape t jNormal vector be n j, triangle set Ts ' intermediate cam shape t j' normal vector be n j', this summit Q iGeometric error be
ϵ i = 1 m + 1 Σ j = 0 m dot ( n j , n j ′ )
Dot represents the vector dot computing in the formula, and the j value is 0,1 ... m;
This vertex set Q SGeometric error after the cluster is
ε s=max{ε i}
In the formula, max{} represents to get maximal value, and the i value is 0,1 ... n.
In step 3, the specific implementation of calculating the texture error is as follows,
Be set in the vertex set Q in the leaf node S={ Q w, Q 0, Q 1... Q n, summit Q wherein wBe cluster representative point, summit Q wTexture coordinate be (u w, v w), vertex set Q SOther any one summit Q in interior iTexture coordinate be (u i, v i), with summit Q iUse summit Q wTexture error after the replacement is
ε′ i=(u i-u w) 2+(v i-v w) 2
This vertex set Q STexture error after the cluster is
ε′ s=max{ε′ i}
Wherein, max{} represents to get maximal value, and the i value is 0,1 ... n.
In order to realize the multiple dimensioned tissue of three-dimensional model Progressive mesh data, the present invention proposes basic grid M 0With basic index data Index 0Store top layer into, along with the increase of yardstick, successively with increment geometric data { Δ Data at different levels 1, Δ Data 2... Δ Data nAnd level of detail grid M at different levels 1, M 2... M nCorresponding index data { Index 1, Index 2... Index nStore in the corresponding level.
Because the singularity of three-dimensional model, concrete organizational form has many different from spatial datas such as landform, images.Three-dimensional modeling data comprises mainly that on space expression data texturing is expressed and geometric data is expressed, so must consider both expression when making up the three-dimensional model Multi-scale model.To this, the Progressive Mesh method that the multiple dimensioned method for organizing of three-dimensional model Progressive mesh data adopts the present invention to propose is stored.The most complicated three-dimensional model is generated the Progressive Mesh that obtains correspondence through multistage simplification, the model data store of simplifying is the most arrived detail (Level of Detail, LOD) the 0th layer, and along with the increase of yardstick, successively incremental datas at different levels are stored in the corresponding level.For the three-dimensional model texture, set up the texture storehouse based on the pyramid structure of multiresolution, can satisfy the texture needs of visual middle MIP-MAP.With the texture of the corresponding different resolutions of how much LOD models of different level of detail, avoided because model detail changes the texture crenellated phenomena that causes simultaneously.
Therefore, the embodiment of the invention according to its how much features with texture, is set up three-dimensional model corresponding multistage geometric model storehouse and Mipmap storehouse, thereby is made up multiple dimensioned Organization of Data, with basic grid M 0With basic index data Index 0, the respective texture data store top layer into, along with the increase of yardstick, successively with increment geometric data { Δ Data at different levels 1, Δ Data 2... Δ Data nAnd level of detail grid M at different levels 1, M 2... M nCorresponding index data { Index 1, Index 2... Index n, the respective texture data store in the corresponding level.Its structure is as shown in Figure 4: basic grid M 0With basic index data Index 0, the respective texture data storing is at top layer, this layer is designated as LOD 0; The detail rank is 1 level of detail grid M 1With incremental data Δ Data 1, the respective texture data storing is at lower one deck LOD 1; The detail rank is 2 level of detail grid M 2With incremental data Δ Data 2, the respective texture data storing is the level of detail grid M of n in lower one deck LOD 2... detail rank nWith incremental data Δ Data n, the respective texture data storing is at bottom LOD n.Along with the increase of the LOD number of plies, its how much and the also successively increase of texture resolution.Obtaining of data texturings at different levels belongs to prior art, and resampling by texture to form multistage data texturing, and it will not go into details in the present invention.
In order to realize the drafting of three-dimensional model Progressive Mesh, embodiment is in the Progressive Mesh visualization process, at first with basic grid M 0With basic index Index 0Being transferred to client draws.Along with the distance of viewpoint and model diminishes, ask the level of detail grid M of a high rank LOD 1Corresponding incremental data Δ Data 1With index Index 1, directly draw level of detail grid M 1, M 1=M 0+ Δ Data 1The like, according to current required detail rank i, the incremental data Δ Data that transmission is corresponding iWith index data Index iTo client, at the level of detail grid M of upper level other (detail rank i-1) I-1Draw level of detail grid M on the basis i, i.e. M i=M I-1+ Δ Data iThe continuous variation of viewpoint, the Progressive Mesh that has just consisted of three-dimensional model is drawn.This method for drafting has been avoided frequently model meshes reconstruction and data request operation, reduced the data volume to Internet Transmission, it is clear nearby also to meet in the viewpoint observation world, at a distance fuzzy rule, can improve simultaneously the display efficiency of client, reduce user's stand-by period.
For the purpose of the enforcement reference, the Progressive mesh data concrete model design recommendation scheme that the invention provides three-dimensional model is as follows:
In the structure of three-dimensional model Progressive Mesh, not only be a simplification process, or the dynamic ordering procedure of a vertex data, for the vertex data that needs after simplifying each time to remove, it is not removed from internal memory, but determine its memory location by its place of mark LOD rank.After all simplification processes finish, vertex data in the Progressive Mesh that makes up is sorted according to the LOD rank, thus the sequential storage of realization vertex data.To this, embodiment has designed the Progressive mesh data model of three-dimensional model, as shown in Figure 2.
In Fig. 2, a complex model (Complex Model) is made of Progressive Mesh (Progress Mesh), comprises model attributes and ID.Progressive Mesh comprises the three basic data structure: (1) triangle data structure Triangle, the triangle data structure of composition Progressive Mesh model comprises ID and attribute.(2) vertex data structure PMVertex, the vertex data structure of composition Progressive Mesh model comprises ID and attribute.(3) vertex index data structure IndexList, the index data structure on LOD summit comprises ID and attribute.
In the Progressive mesh data model of its three-dimensional model, each spatial object has unique ID identifier, and has its association attributes, such as volume coordinate, normal vector, color etc.; Relation then represents the corresponding relation that all kinds of spatial objects form, such as one-to-many (1:n), many-one (n:1) with shine upon one by one (1:1) etc.It is 1 pair 3 corresponding relation between triangle data structure Triangle and the vertex data structure PMVertex.
For a complex model, may be combined by a plurality of Progressive Meshs; For a Progressive Mesh, comprise the basic geometric space object set of component model, i.e. triangle set and vertex set simultaneously, also comprise a plurality of vertex index data, are used for other index of storage Different L OD level; For each summit, also stored its adjacent vertex, the leg-of-mutton relation table of adjacency in its attribute information, thus the relation between each spatial object of complete expression.
1) vertex data PMVertex, vertex data structure in the Progressive Mesh is defined as follows:
Figure BDA0000099982810000091
Vertex weights Weight is the quantized value of summit importance, determines whether removing this summit by comparing the Weihgt value in shortcut calculation.The vertex weights size is not only relevant with the geometric coordinate on summit, simultaneously also and its adjacent vertex, in abutting connection with triangle close relationship is arranged.Therefore need to preserve the adjacent vertex set and in abutting connection with the triangle aggregate information.In addition, vertex texture mapping point (u, v) is used for calculating the texture error under the texture coordinate space, thereby guarantees to simplify result's textural characteristics.
2) triangle T riangle, the triangular structure of Progressive Mesh comprises three summits, organization definition is as follows:
Figure BDA0000099982810000092
Figure BDA0000099982810000101
3) vertex index data I ndexList, the vertex index of storing LOD at different levels, organization definition is as follows:
struct?IndexList{
Std::vector<PMVertex*〉VertexList // summit pointer chained list is the elongated array of PMVertex structured fingers
}
4) Progressive Mesh ProgressMesh, Progressive Mesh, organization definition is as follows:
Figure BDA0000099982810000102
More than C Plus Plus is adopted in definition, utilizes those skilled in the art's common terminology.* represent pointer, PMVertex* represents to point to the pointer of PMVertex structure, and PMTriangle* represents to point to the pointer of PMTriangle structure.
For the purpose of understanding effect of the present invention, adopt method of the present invention to test, use C Plus Plus to write three-dimensional model Progressive Mesh generating algorithm, come implementation by typical 3 D complex building model.Original three-dimensional model triangle number is 101983, and number of vertex is 140809.According to the inventive method, implementation is divided into 3 grades yardstick.Result of implementation is as shown in table 1:
Table 1: LOD three-dimensional data amounts at different levels
Figure BDA0000099982810000103
Wherein the aggregate data of triangle and triangular apex is for making up the needed total amount of data of this LOD level model.
Specific embodiment described herein only is to the explanation for example of the present invention's spirit.Those skilled in the art can make various modifications or replenish or adopt similar mode to substitute described specific embodiment, but can't depart from spirit of the present invention or surmount the defined scope of appended claims.

Claims (1)

1. Progressive mesh data organization method for three-dimensional model is characterized in that:
Original mesh M according to three-dimensional model nGenerate Progressive mesh data, comprise basic grid M 0With basic index data Index 0, incremental datas at different levels { Δ Data 1, Δ Data 2... Δ Data n, and level of detail grid M at different levels 1, M 2... M nCorresponding index data { Index 1, Index 2... Index n; Wherein, the detail rank is the level of detail grid M of i i=M I-1+ Δ Data i, the i value is 1,2 ... n;
With basic grid M 0With basic index data Index 0Store top layer into, along with the increase of yardstick, successively with increment geometric data { Δ Data at different levels 1, Δ Data 2... Δ Data nAnd level of detail grid M at different levels 1, M 2... M nCorresponding index data { Index 1, Index 2... Index nStore in the corresponding level;
In the Progressive Mesh visualization process, at first with basic grid M 0With basic index data Index 0Be transferred to client, and draw; According to current required detail rank i, the incremental data Δ Data that transmission is corresponding iWith index data Index iTo client, at other level of detail grid of upper level M I-1Draw level of detail grid M on the basis i
The concrete mode of described generation Progressive mesh data may further comprise the steps,
Step 1 reads original three-dimensional model, with the original mesh of original three-dimensional model as level of detail grid M n, all summits of original three-dimensional model are added among the Progressive Mesh vertex set VertexList, and the attribute Level value on all summits of initialization is 0; All summits and leg-of-mutton attribute Removed value that original three-dimensional model is set are false, and expression is not removed; List all triangles of original three-dimensional model in triangle chained list TriangleList, traversing triangle chained list TriangleList obtains index data Index n, with index data Index nAdd among the detail index LodVertexList at different levels; If level of detail grid current to be simplified is M k, make k=n;
Step 2 is with level of detail grid M current to be simplified kSimplify the level of detail grid M that obtains last layer K-1, need the vertex set V that removes after being simplified mIf vertex set V after simplifying mIn arbitrary summit V aBy summit V bSubstitute, traversal comprises summit V aIn abutting connection with triangle set, will point to summit V in abutting connection with all triangles in the triangle set aPointer all point to summit V b, form V aSensing triangle set; Vertex set V mIn the sensing triangle set on all summits consist of triangle set NT;
Step 3, traversing triangle set NT, when in three summit pointers in the triangle any two when pointing to same summit, then this triangle is invalid triangle; All invalid triangle attribute Removed values are set are true, expression has removed;
Step 4, mark vertex set V in Progressive Mesh vertex set VertexList mThe attribute Removed value on interior all summits is true, and expression removes; Vertex set V is set mThe attribute Level value on interior all summits is k, and expression detail rank is k, this vertex set V mBe the incremental data Δ Data of k level k
Step 5, attribute Removed value is the triangle of false among the traversing triangle chained list TriangleList, obtains index data Index K-1, with index data Index K-1Add among the detail index LodVertexList at different levels;
Step 6 if k>0 makes k=k-1, is returned step 2 and is continued to calculate incremental data Δ Data kWith index data Index K-1If, if k=0 enters step 7;
Step 7, all properties Removed value is consisted of set by the summit of true and is basic grid M among the Progressive Mesh vertex set VertexList 0, attribute Removed value is the triangle of false among the traversing triangle chained list TriangleList, the gained index data is basic index data Index 0
CN201110317931.0A 2011-10-19 2011-10-19 Progressive mesh data organization method for three-dimensional model Expired - Fee Related CN102360515B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110317931.0A CN102360515B (en) 2011-10-19 2011-10-19 Progressive mesh data organization method for three-dimensional model

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110317931.0A CN102360515B (en) 2011-10-19 2011-10-19 Progressive mesh data organization method for three-dimensional model

Publications (2)

Publication Number Publication Date
CN102360515A CN102360515A (en) 2012-02-22
CN102360515B true CN102360515B (en) 2013-04-24

Family

ID=45585840

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110317931.0A Expired - Fee Related CN102360515B (en) 2011-10-19 2011-10-19 Progressive mesh data organization method for three-dimensional model

Country Status (1)

Country Link
CN (1) CN102360515B (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11854145B2 (en) 2020-04-08 2023-12-26 Speed Technology Co., Ltd. Octree-based three-dimensional building model LOD method

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102682103B (en) * 2012-04-28 2014-03-26 北京建筑工程学院 Three-dimensional space index method aiming at massive laser radar point cloud models
JP5983550B2 (en) * 2012-11-30 2016-08-31 株式会社デンソー 3D image generation apparatus and 3D image generation method
CN103324783B (en) * 2013-05-30 2015-12-23 国家电网公司 Based on the LOD model Real-time Generation of edge contraction
CN103425787B (en) * 2013-08-26 2016-06-22 中国人民解放军国防科学技术大学 The triangle gridding of a kind of asymptotic optimization repeats the quick minimizing technology in summit
CN106296794A (en) * 2015-05-12 2017-01-04 十维度(厦门)网络科技有限公司 A kind of self adaptation stream loading technique with the high-strength compression of 3D data
CN107808417A (en) * 2016-09-08 2018-03-16 索尼公司 Message processing device and information processing method
CN106447778A (en) * 2016-11-09 2017-02-22 苏州希格玛科技有限公司 A method of realizing a dynamic level-of-detail model
WO2019200141A1 (en) * 2018-04-12 2019-10-17 Google Llc Vertex split connectivity prediction for improved progressive mesh compression
CN109410332B (en) * 2018-09-17 2022-12-23 广西大学 Three-dimensional space geometric virtual model detail level cutting method based on point, line and surface
CN109829974B (en) * 2019-02-28 2023-05-05 中山大学 Three-dimensional graph self-adaptive display method of intelligent glasses
CN110211234B (en) * 2019-05-08 2023-09-22 上海索辰信息科技有限公司 Grid model stitching system and method
CN110716999B (en) * 2019-09-05 2021-10-22 武汉大学 POI positioning method based on position description containing qualitative position and quantitative distance
CN111046005B (en) * 2019-11-01 2023-09-01 宝略科技(浙江)有限公司 Gridding coding method for urban three-dimensional live-action data
CN113593031A (en) * 2021-05-24 2021-11-02 北京建筑大学 Multi-scale expression method of urban three-dimensional model considering local features
CN113890675A (en) * 2021-09-18 2022-01-04 聚好看科技股份有限公司 Self-adaptive display method and device of three-dimensional model

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6108006A (en) * 1997-04-03 2000-08-22 Microsoft Corporation Method and system for view-dependent refinement of progressive meshes

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11854145B2 (en) 2020-04-08 2023-12-26 Speed Technology Co., Ltd. Octree-based three-dimensional building model LOD method

Also Published As

Publication number Publication date
CN102360515A (en) 2012-02-22

Similar Documents

Publication Publication Date Title
CN102360515B (en) Progressive mesh data organization method for three-dimensional model
CN102306180B (en) Modeling method based on mass laser radar grid point cloud data
De Floriani et al. Multiresolution mesh representation: Models and data structures
CN102682103B (en) Three-dimensional space index method aiming at massive laser radar point cloud models
CN102930597B (en) Processing method for three-dimensional model of external memory
CN102509339B (en) Method for simplifying vertex clustering of three-dimensional models with texture constraint
Floriani et al. VARIANT: a system for terrain modeling at variable resolution
CN102930594B (en) Rendering method for computer three-dimensional terrain grid based on boundary maintenance
CN1936962A (en) Large-landform generation method based on PC platform in 3-D game
CN105405166A (en) LOD model generation method based on linear quadtree
CN103077549A (en) Real-time large-scale terrain visualization implementation method based on kd tree
JP3184785B2 (en) 3D shape model transmission method and device, 3D shape model compression method and device, 3D shape model display method and device
CN114529633A (en) Method for supporting continuous LOD (level of detail) drawing of GIS (geographic information system) line object and surface object
CN103268221A (en) Three-dimensional weather data volume display method and device based on WEB technique
CN101403909A (en) Triangular gridding subdivision curved surface NC tool track fast generation method
Franklin et al. Smugglers and border guards: the geostar project at RPI
Yang et al. Constructing multi-resolution triangulated irregular network model for visualization
Danovaro et al. Level-of-detail for data analysis and exploration: A historical overview and some new perspectives
CN106097446A (en) A kind of three dimensional geological curved surface method for reconstructing based on extensive geological data
Velho A dynamic adaptive mesh library based on stellar operators
Álvarez et al. A mesh optimization algorithm based on neural networks
Allegre et al. The hybridtree: Mixing skeletal implicit surfaces, triangle meshes, and point sets in a free-form modeling system
CN116258804A (en) BIM model light weight method based on digital-analog separation and compression optimization
CN106097447A (en) A kind of curve reestablishing method of extensive geological data
CN101504777A (en) Analysis method for topology relation between tri-dimensional composite body objects

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20130424

Termination date: 20211019

CF01 Termination of patent right due to non-payment of annual fee