CN109410332B  Threedimensional space geometric virtual model detail level cutting method based on point, line and surface  Google Patents
Threedimensional space geometric virtual model detail level cutting method based on point, line and surface Download PDFInfo
 Publication number
 CN109410332B CN109410332B CN201811083741.5A CN201811083741A CN109410332B CN 109410332 B CN109410332 B CN 109410332B CN 201811083741 A CN201811083741 A CN 201811083741A CN 109410332 B CN109410332 B CN 109410332B
 Authority
 CN
 China
 Prior art keywords
 vertex
 triangle
 weight
 array
 new
 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
 230000000875 corresponding Effects 0.000 claims description 17
 238000004364 calculation method Methods 0.000 claims description 14
 239000000463 material Substances 0.000 claims description 6
 239000003086 colorant Substances 0.000 claims description 2
 238000009877 rendering Methods 0.000 abstract description 13
 230000000694 effects Effects 0.000 abstract description 12
 230000000007 visual effect Effects 0.000 abstract description 3
 238000000034 method Methods 0.000 abstract description 2
 238000010276 construction Methods 0.000 abstract 1
 230000000717 retained Effects 0.000 abstract 1
 238000005457 optimization Methods 0.000 description 7
 238000010586 diagram Methods 0.000 description 4
 239000011159 matrix material Substances 0.000 description 4
 238000011156 evaluation Methods 0.000 description 2
 238000005259 measurement Methods 0.000 description 2
 230000004048 modification Effects 0.000 description 2
 238000006011 modification reaction Methods 0.000 description 2
 230000015572 biosynthetic process Effects 0.000 description 1
 238000005516 engineering process Methods 0.000 description 1
 238000005286 illumination Methods 0.000 description 1
 239000003550 marker Substances 0.000 description 1
 230000002441 reversible Effects 0.000 description 1
 239000007787 solid Substances 0.000 description 1
 238000003786 synthesis reaction Methods 0.000 description 1
 230000002194 synthesizing Effects 0.000 description 1
Images
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. wireframe surface description, tesselation

 G—PHYSICS
 G06—COMPUTING; CALCULATING OR COUNTING
 G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
 G06T15/00—3D [Three Dimensional] image rendering
 G06T15/005—General purpose rendering architectures
Abstract
The invention discloses a method for cutting a threedimensional space geometric virtual model based on a point line surface. Firstly, separating the attribute of a threedimensional space geometric virtual model from an integral structure, searching the structures of vertexes, lines and surfaces with shared properties in the model, sharing positions to texture, marking the vertexes in data processing, and acquiring adjacent triangular mesh information of the model through surrounding triangles neighboring the vertexes after the vertexes finish mapping processing of the associated triangles; and calculating each weight index by means of model global grid information to obtain the importance of the pointline surface of the region in the global grid model. The less important regions are deleted or simplified and the more important regions are retained. The method can limit the layer times and complexity of cutting, namely, the visual observation effect is not influenced, meanwhile, the system can be ensured to normally carry out the model construction function, and the effectiveness and the stability of the model rendering process are considered.
Description
Technical Field
The invention belongs to the technical field of threedimensional space modeling, and particularly relates to a threedimensional space geometric virtual model detail level cutting method based on a point line surface.
Background
Threedimensional space model rendering is not designed in a mode that a solid body is designed on a machine from inside to outside, but generally a homomorphic wire frame of an object is designed, and textures, materials and pictures are attached to the surface of the homomorphic wire frame, wherein the homomorphic wire frame is represented on a model in a mode of color, illumination or pattern. Textures, materials and tiles are essentially not different from pictures in nature, but they are designed specifically for threedimensional models, where pixels can be projected to pixels in screen space, making a sense of reality as if the image were pasted up.
From the moment the threedimensional modeling technology comes, the problem of how to draw and render more quickly comes. From efficient calculation of a Central Processing Unit (CPU) and a Graphics Processing Unit (GPU) of bottom hardware, to a Graphics rendering algorithm of a middlelayer Graphics program, and to various rendering technologies of top application software, the method has a great performance optimization space, and can adapt to different computer configurations, different rendering algorithms, and different scene rendering.
In addition to the abovedescribed vertical optimization factor of the computer graphics layer plane, horizontal optimization of the project development time axis is also one of important factors. The performance optimization cannot be performed after the threedimensional space geometric virtual model modeling and animation effect are completed, so that a large amount of work is overstocked on an optimization program, and on the other hand, the position of low model resource operation efficiency caused by inaccurate positioning cannot be positioned, so that too much time is consumed for the troubleshooting. Small optimization schemes that follow each step of the project, and large optimization schemes that enable final scene synthesis processing must be proposed.
At present, commonly used threedimensional space geometric virtual model clipping algorithms include edge contraction detail level algorithms, secondary error metric algorithms, CPU + GPU cooperation clipping algorithms and the like.
The edge contraction detail level algorithm uses vertex weight to express the importance degree of the vertex, the vertex weight is sequenced according to the degree of influence on the appearance of the model from large to small, and the clipping is controlled in a range with small influence; the weight of the vertex is stored in an ordered array, and the array order is the order of clipping the vertex, so that the method has the advantages of easy realization and high execution speed. The edge contraction detail level algorithm has the limitations that only one factor of a vertex is considered, the whole model is composed of a point line surface, only the vertex is considered for clipping, only the edge characteristics of the model can be well reserved, and the observability of the whole model is greatly influenced.
The quadratic error measurement algorithm is based on the improvement of an edge contraction detail level algorithm, error evaluation is considered in the vertex merging process, the evaluation is mainly based on a mechanism of boundary constraint and a normal vector, an error matrix is used for storing error values, and the quadratic error measurement algorithm has the advantages that the considered model attributes can achieve better operation effect in various aspects. The secondary error metric algorithm has the limitations that the time consumed for calculating the error matrix is very long, multiple times of highdimensional matrix multiplication are required, operations with high time complexity such as matrix inversion are required, and the time for rendering the model is long.
The CPU + GPU cooperative clipping algorithm is completed by the cooperation of the CPU and the GPU, the data processing amount of the CPU and the data processing amount of the GPU are adjusted to achieve load balance, and the effectiveness of the CPU and the GPU can be exerted to the maximum. The heterogeneous parallel of the CPU and the GPU is realized, and the clock period, the computing capacity, the storage capacity, the thread management and the like of the CPU and the GPU need to be coordinated. The method has the advantages that the method has cluster level parallel support and a Unified computing Device Architecture (CUDA) to provide node level parallel support, the overall computing performance of the system is greatly improved, and meanwhile, the good running effect can be guaranteed. The limitation of the CPU + GPU cooperative clipping algorithm is that the CPU and GPU architecture needs to be written, the algorithm logic is very complex and is not easy to realize; meanwhile, the algorithm relates to bottom hardware calculation, is usually influenced by the type of platform hardware and has no wide support.
Disclosure of Invention
The methods cannot well coordinate the problems of speed, effect, crossplatform and easy realization in the rendering of the threedimensional space model. In order to overcome the defects of the prior art, the invention provides a threedimensional space geometric virtual model detail level cutting method based on a point line surface.
The level of detail algorithm describes that when the object is far away from the camera, a model with lower resolution can be used, i.e. the complexity is lower than that of the prototype, but the difference is slight and invisible due to the distance. How to reduce the complexity of the threedimensional model without affecting the visual effect is always the key point of the detail level algorithm. Because the model is simplified, the rendering speed of the model is improved to a certain extent, and the number of rendered vertexes and the number of rendered triangles are reduced.
The invention relates to a threedimensional space geometric virtual model detail level cutting method based on a point line surface, which comprises the following specific steps:
(1) Grid attribute splitting and establishing ordered index list
And obtaining triangular arrays corresponding to different materials by separating the vertex attribute of the original mesh, the normal attribute in the vertex, the lattice surface map attribute, the lattice surface color attribute and the triangle, and combining the triangular arrays into different submesh arrays. In order to perform the following dual vertex lookup quickly and efficiently, an ordered index list needs to be established, and the ordered vertex index list is finally arranged in the order of xyz from small to large. The ordered vertex index list is finally arranged from small to large according to the threedimensional coordinate values of the vertexes and the priority order of x, y and z coordinates; for example, a (2, 5, 7) and b (2, 8, 4) then a has a coordinate value less than b, since a.y < b.y.
(2) Finding locationsharing attribute vertices and texturesharing attribute vertices
The system simplifies the vertex mainly by the following steps: removing similar vertexes, reserving independent vertexes or important vertexes, if common vertexes in a plurality of subgrids can exist, indicating that the vertexes have multiple material shares and belong to the important vertexes, finding out the common vertexes, and finding out the vertex coexisting with the subgrids by traversing each vertex of the triangular array; and (4) finding out the same vertex index by transmitting the vertex coordinate to be searched into the ordered index list for traversal. The common indices in the coexisting vertex and ordered list of the submesh are here the locationsharing attribute vertex and the texturesharing attribute vertex.
(3) Establishing an associated triangle array and an adjacent triangle array
Each vertex has a plurality of triangles to share, the acquisition of the triangles plays a key role for a following algorithm, the triangle array value is the index of the vertex, and the same indexes are merged.
Because three angles of each triangle have a plurality of adjacent triangles, the former method only corresponds each vertex with related triangle subscript, but does not extract specific triangle array according to the vertex, the method is a supplement to the former method, aiming at each vertex, by comparing x, y and z coordinate values, when the coordinate value of a certain vertex of two triangles is equal, the two triangles are both adjacent triangles; all the neighboring triangles can be obtained by obtaining the triangle array with all the same values of the vertex, and are needed later when calculating the vertex angle and stretching the map.
Splitting three vertexes of a current triangle, acquiring a triangle group associated with a first vertex, adding the group into a blank adjacent triangle array, then adding the group into a traversed triangle group, setting a unique group number for the adjacent triangle group, acquiring triangle groups associated with a second vertex and a third vertex, discarding the currently acquired triangle if the triangle array has been traversed, adding the adjacent triangle array if the triangle array has not been traversed, adding the group into the traversed triangle group, and setting a unique group number for the adjacent triangle group.
(4) Computing vertex angles and weights
Each vertex in the mesh is in fact shared by a number of adjacent triangles, and the sum of the angles of these shared vertices determines the unique position of this vertex in the mesh. If the sum is 0 degree, the vertex belongs to the simplified vertex; if the sum is 180 degrees, the vertex is on the edge of the mesh; if the sum is 360 degrees, the vertex is inside the mesh. The creation of the adjacent edge uses the vector difference of the two vertices. Using the previous adjacent triangle, the total number of degrees can be obtained by summing all angles, and the weight can be calculated by the following formula:
Vertex_Weight＝Sub_Vertex_Weight+1
Side_Weight+＝Vertex_Weight*Area
Side_Weight+＝Angle*Side_Length
Side_Weight+＝Total_Angle*Area
Side_Weight+＝(New–Old)*Total_Angle*Area
where Vertex _ Weight represents the coordinate value Weight, sub _ Vertex _ Weight represents the SubVertex Weight, side _ Weight represents the Side Weight, area represents the Area of the triangle corresponding to the Side, angle represents the Angle of the Vertex on the Side, side _ Length represents the Side Length, total _ Angle represents the Angle sum of the triangle corresponding to the Side, and New and Old represent the triangle change before and after the Side is folded (which means the change of the coordinate values of three points of the triangle, causes the triangle Angle sum Area and other changes such as the map).
(5) Computing triangle center distance weights
The vertex center distance refers to the distance between the vertex and the center of the mesh bounding box, and is usually used for judging whether the mesh surface has an offset, the triangle center distance is equal to the distance from three vertices to the center, so that the phenomenon that the comparison is empty caused by a certain folded vertex can be avoided for the convenience of comparing the center distance difference between the edges before and after folding, the system adopts the calculation of the average center distance of the triangle related to the vertex to replace the center distance value of the vertex, and the weight can be calculated through the following formula:
Weight1＝(New–Old)*Normal
Weight2＝(New–Old)*Total_Center_Distance
Side_Weight+＝Weight1*Weight2
wherein Weight1 represents the Weight of a Normal line, normal represents a triangle Normal line value, weight2 represents the Weight of a Center Distance, total _ Center _ Distance represents the value of the Center Distance, and other parameters with the same names have the same meanings as the previous parameters.
(6) Calculating weights based on chartlet and area changes
The subscript of a mapping array split in a grid is an index of a vertex, when the grid is simplified, deformation of the mapping is inevitably caused, the deformation is reduced to the minimum, three vertices of a triangle are obtained, a UV array is read to obtain mapping coordinates of the three vertices, the area of the triangle and the area of the mapping are solved, when the three vertices are circularly combined in pairs, the change of the area of the triangle and the change of the area of the mapping are recorded, and the weights can be calculated through the following formulas:
Side_Weight+＝Weight+(New–Old)*Area
Side_Weight+＝Weight+(New–Old)*UV_Area
where Weight represents the original Weight of the folded edge, UV _ Area represents the Area of the map, and other parameters of the same name have the same meaning as described above.
(7) Clipping importance selection
The first is edge folding, which is to select the edge with the lowest importance degree in a triangle for folding, resulting in merging of two vertices, and to simplify the calculation, the edge is finally merged into one of the vertices, instead of recalculating the coordinates of the new vertex. Defined according to three sides of a triangle and forward direction reversal, there are six folding methods in total, namely, less than 1 → 2 (first angle folding to second angle), < 2 → 1, < 1 → 3, < 3 → 1, < 2 → 3 and < 3 → 2.
After edge folding is completed, a new mesh is created again, all attribute data of the new mesh are created, a new vertex array and data such as a normal line, a map and colors in vertex attributes are created, the new vertex is recorded, if the circular traversal is used for judging whether each vertex is folded or not, the vertex array after folding is added to the vertex array of the new mesh, the map coordinate after folding is added to the map coordinate of the new mesh, the vertex color array after folding is added to the vertex color array of the new mesh, and the vertex added to the new mesh is recorded.
The method comprises the steps that triangles in an old grid are corresponding to a new grid according to the relation between the triangles and the vertexes in the old grid, the triangles of a threedimensional space geometric model grid bear the relation between the vertexes and the vertexes, if the triangles are not created, elements such as model chartlet textures and the like cannot be normally attached to the vertexes, the grid is disordered, each triangle in an old triangle array is extracted, subscripts of corresponding subgrids are changed, whether the three vertexes are all added into the new grid (edge folding) or not is judged, if the three vertexes are true, the triangles are added into a new triangle array, a new group number is set at the same time and added into a new triangle group number list, and the last part of the subgrids is filled to form a complete subgrid array.
And removing the triangle with the folded area of 0 to simplify the complexity of the grid, simultaneously removing the subscript of the corresponding grid, recording the removed triangle, removing the vertex, the chartlet coordinate and the vertex color data which correspond to the triangle, and updating the vertex index corresponding to the new triangle array.
When a higher level is cut, the camera is far away from the model, and the change of the fine part of the grid cannot be perceived, but the small area part of the grid usually occupies a large proportion, and the quantity of the triangle to be rendered is reduced greatly. The visual effect is often affected by excessive removal, so the method is not combined with the method for removing the empty triangles, the parameter of the value needs to be set independently before simplification, the highlevel weight is calculated according to the input value, the new triangle array is traversed, the area of each triangle taken out, the total area of the triangle array and the number of the triangles are calculated, the removed maximum area is determined according to the input value, the new triangle array is traversed, all triangles smaller than the maximum area are removed, and the subgrid subscripts corresponding to the triangles are removed.
Creating a new grid: and uniformly drawing the grids of the new data generated in the previous step, wherein the new vertex array covers the model vertex array, the new normal array covers the model normal array, and the new vertex color array covers the model vertex color array, and the new subgrid subscript array covers the model subgrid subscript array.
Aiming at the rendering characteristics of the threedimensional space geometric virtual model, the threedimensional space geometric virtual model rendering problem is solved based on three different levels of point, line and surface. Compared with the traditional geometric model rendering optimization method, the method provided by the invention achieves the unification of the realizability and the high efficiency, all the calculation is only to simply calculate the basic attributes of the distance, the area and the length of the model, the vivid effect can be achieved, and the cut simplified geometric model is closer to the appearance of the original model. The method carries out weight calculation based on the most basic pointlinesurface attribute of threedimensional space geometry, has simple calculation, easy realization and high execution efficiency, is similar to the appearance of an original model, has large cutting proportion and does not lose modeling, does not relate to bottom hardware calculation, and can be used in a crossplatform way without modification.
Drawings
FIG. 1 is a flow chart of a threedimensional space geometric virtual model detail level cutting method based on a point line surface;
FIG. 2 is a threedimensional virtual model prototype of the present invention;
FIG. 3 is a threedimensional space geometric virtual model mesh prototype of the present invention;
FIG. 4 is an example of texture sharing tags for a threedimensional geometric virtual model according to the present invention;
FIG. 5 is an example of a threedimensional space geometric virtual model position sharing marker of the present invention;
FIG. 6 is a diagram illustrating a firstlevel clipping effect of a threedimensional virtual model according to the present invention;
FIG. 7 is a diagram illustrating a second layer clipping effect of the threedimensional virtual model according to the present invention;
FIG. 8 is a third layer clipping effect diagram of the threedimensional space geometric virtual model of the present invention;
FIG. 9 is a diagram illustrating a fourth layer clipping effect of the threedimensional virtual model according to the present invention.
Detailed Description
In order to make the objects, technical solutions and advantages of the present invention more apparent, the present invention is described in further detail below with reference to the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are merely illustrative of the invention and are not intended to limit the invention. In addition, the technical features involved in the embodiments of the present invention described below may be combined with each other as long as they do not conflict with each other.
The invention relates to a threedimensional space geometric virtual model detail level cutting method based on a point line surface, a flow chart of the method is shown in figure 1, and the method comprises the following concrete implementation steps:
the first step is as follows: separating the original mesh vertex attribute, the vertex normal attribute, the lattice surface map attribute, the lattice surface color attribute and the original triangle set of the geometric model; establishing a sequencing array for the extracted vertex set, and establishing a sequencing index list;
the second step is that: searching a vertex with a texture sharing attribute in the original mesh of the model through the triangle set in the first step, and marking; searching the vertex with the position sharing attribute in the original mesh of the model through the ordered index list in the second step, and marking;
the third step: establishing a model mesh association triangle array according to the original vertex coordinates through the triangle set containing the marks in the second step; establishing an adjacent triangle array of the model mesh according to the shared vertex or edge through the related triangle array;
the fourth step: calculating the angle sum of each vertex and calculating the weight according to the calculation formula in the step (4) through the adjacent triangle arrays in the third step;
the fifth step: calculating the center distance of each triangle and calculating the weight according to the calculation formula in (5) through the adjacent triangle array in the third step;
and a sixth step: calculating the weight of the relevant edge according to the calculation formula in the step (6) by judging the area changes of the maps and the triangles before and after folding;
the seventh step: adding all the weights in a vector form, ending the cycle if the whole model calculation is completed, otherwise jumping to the fourth step; after the circulation is finished, comparing the importance of the regions according to the height of the weight, reserving the regions with high importance, and cutting the regions which are not important or unimportant to finish the simplified operation of the whole complex model.
The invention is further illustrated with reference to the following figures and examples.
In order to make the effect of the cutting method representative, the number of vertexes of the selected threedimensional space geometric virtual model is over ten thousand, and the threedimensional space geometric virtual model simultaneously has a plurality of subgrids, wherein the original model is shown in fig. 2.
The first step is as follows: through the gridding operation of the original model, as shown in fig. 3, the original mesh vertex attribute, the normal attribute in the vertex, the lattice surface map attribute, the lattice surface color attribute and the original triangle set of the geometric model can be extracted and separated;
the second step is that: searching the vertices with the texture sharing property in the original mesh of the model through the triangle set in the first step, as shown in FIG. 4, and marking; searching the vertex with the position sharing attribute in the original mesh of the model through the ordered index list in the second step, as shown in figure 5, and marking;
the third step: establishing a model mesh association triangle array according to the original vertex coordinates through the triangle set containing the marks in the second step; establishing an adjacent triangle array of the model mesh according to the shared vertex or edge through the related triangle array;
the fourth step: the angle sum of each vertex is calculated and the weight is calculated by the adjacent triangle array in the third step. Since the model has 24222 vertices, 19712 triangles, 6 submeshes, vertex _ Weight, angle and Total _ Angle are columns of numbers having a length of 24222; sub _ Vertex _ Weight has a sequence of 6 lengths; side _ Weight and Area are the number series of the length of the number of triangles matched with it:
Vertex_Weight[24222]＝Sub_Vertex_Weight[6]+1
Side_Weight[19712*3]+＝Vertex_Weight[24222]*Area[19712]
Side_Weight[19712*3]+＝Angle[24222]*Side_Length[19712*3]
Side_Weight[19712*3]+＝Total_Angle[24222]*Area[19712]
Side_Weight[19712*3]+＝(New–Old)*Total_Angle[24222]*Area[19712]
the fifth step: calculating the Center Distance of each triangle and calculating the weight by the adjacent triangle arrays in the third step, wherein Normal and Total _ Center _ Distance are related to the Total number of the triangles:
Weight1＝(New–Old)*Normal[19712]
Weight2＝(New–Old)*Total_Center_Distance[19712]
Side_Weight[19712*3]+＝Weight1*Weight2
and a sixth step: judging the Area changes of the map and the triangle before and after folding, and calculating the weight of the relevant side, wherein UV _ Area is also relevant to the total number of the triangle:
Side_Weight[19712*3]+＝Weight+(New–Old)*Area[19712]
Side_Weight[19712*3]+＝Weight+(New–Old)*UV_Area[19712]
the seventh step: adding all the weights in a vector form, finishing the circulation if the whole model calculation is finished, and otherwise, jumping to the fourth step; after the circulation is finished, comparing the importance of the areas according to the height of the weight values, reserving the areas with high importance, and cutting the nonimportant or unimportant areas.
By observing the distance of the model, the model simplification degree can be divided into 4 levels, namely the distance of 4 observation models exists, the complexity of the rendering model is correspondingly reduced along with the increasing distance, generally speaking, the 4 levels are relatively proper values, and finally the obtained effect is shown in figures 6 to 9, so that the simplification operation of the whole complex model is completed.
It will be understood by those skilled in the art that the foregoing is only a preferred embodiment of the present invention, and is not intended to limit the invention, and that any modification, equivalent replacement, or improvement made within the spirit and principle of the present invention should be included in the scope of the present invention.
Claims (8)
1. A threedimensional space geometric virtual model detail level cutting method based on a point line surface is characterized by comprising the following steps:
the first step is as follows: separating the original mesh vertex attribute, vertex normal attribute, lattice surface map attribute and lattice surface color attribute of the geometric model from the original triangle set, establishing a sequencing array for the extracted vertex set, and establishing a sequencing index list;
the second step is that: searching the vertex with the texture sharing attribute in the original mesh of the model through the separated triangle set, and marking; searching a vertex with a position sharing attribute in the original mesh of the model through the ordered index list, and marking;
the third step: establishing a model mesh association triangle array according to the original vertex coordinates through the triangle set containing the marks; establishing an adjacent triangle array of the model mesh according to the shared vertex or edge through the associated triangle array;
the fourth step: calculating the angle sum of each vertex and calculating the weight through the adjacent triangle array;
the fifth step: calculating the center distance of each triangle and calculating the weight through the adjacent triangle arrays in the third step;
and a sixth step: calculating the weight of the related side by judging the area changes of the map and the triangle before and after folding;
the seventh step: and adding all the weights in a vector form, comparing the importance of the regions according to the height of the weights, reserving the regions with high importance, and cutting the regions which are not important or unimportant to finish the simplification operation of the whole model.
2. The method for clipping detail levels of a threedimensional space geometric virtual model based on a point, a line and a surface as claimed in claim 1, wherein the step four includes calculating the sum of angles of each vertex and calculating the weight: using the adjacent triangles, summing all angles to obtain a total number of degrees, and calculating the weight by the following formula:
Vertex_Weight＝Sub_Vertex_Weight+1
Side_Weight+＝Vertex_Weight*Area
Side_Weight+＝Angle*Side_Length
Side_Weight+＝Total_Angle*Area
Side_Weight+＝(New–Old)*Total_Angle*Area
wherein, vertex _ Weight represents the coordinate value Weight, sub _ Vertex _ Weight represents the SubVertex Weight, side _ Weight represents the Side Weight, area represents the Area of the triangle corresponding to the Side, angle represents the Angle of the Vertex on the Side, side _ Length represents the Side Length, total _ Angle represents the Angle sum of the triangle corresponding to the Side, and New and Old represent the triangle change before and after the Side is folded.
3. The method for clipping detail levels of a threedimensional space geometric virtual model based on a point, a line and a surface as claimed in claim 2, wherein the step five is to calculate the center distance of each triangle and calculate the weight as follows: the average center distance of the triangle related to the vertexes is calculated to replace the center distance value of the vertexes, and the weight is calculated through the following formula:
Weight1＝(New–Old)*Normal
Weight2＝(New–Old)*Total_Center_Distance
Side_Weight+＝Weight1*Weight2
wherein Weight1 represents the Normal Weight, normal represents the triangle Normal value, weight2 represents the Center Distance Weight, and Total _ Center _ Distance represents the Center Distance value.
4. The method for clipping the detail level of the threedimensional space geometric virtual model based on the point, line and surface as claimed in claim 3, wherein the calculating the relevant edge weight in the sixth step specifically comprises: obtaining three vertexes of a triangle, reading a mapping array to obtain mapping coordinates of the three vertexes, solving the area of the triangle and the area of the mapping, circularly detecting the change of the area of the triangle and the change of the area of the mapping when the three vertexes are combined in pairs, recording the front area value and the rear area value, and calculating the weight through the following formula:
Side_Weight+＝Weight+(New–Old)*Area
Side_Weight+＝Weight+(New–Old)*UV_Area
where Weight denotes the folding edge original Weight and UV _ Area denotes the tile Area.
5. The method for clipping the detail level of the threedimensional space geometric virtual model based on the point line surface as claimed in claim 1 or 2, wherein the first step is specifically as follows:
the method comprises the steps of obtaining triangular arrays corresponding to different materials by separating vertexes, normals, maps, vertex colors and triangles, combining all the triangular arrays into different subgrid arrays, and in order to enable doublevertex searching to be conducted quickly and effectively, an ordered index list needs to be established, and the ordered vertex index list is finally arranged from small to large according to the priority sequence of x, y and z coordinates by the threedimensional coordinate values of the vertexes.
6. The method for clipping the detail level of the threedimensional space geometric virtual model based on the point line surface as claimed in claim 1 or 2, wherein the second step is specifically as follows:
removing similar vertexes, reserving independent vertexes or important vertexes, if common vertexes in a plurality of subgrids can exist, indicating that the vertexes have multiple material shares and belong to the important vertexes, finding out the important vertexes, and finding out the vertex where the subgrids coexist by traversing each vertex of the triangular array; and (3) introducing vertex coordinates to be searched into the ordered index list for traversal, and finding out the same vertex index, wherein common indexes in the coexisting vertex of the submesh and the ordered list are the vertex of the position sharing attribute and the vertex of the texture sharing attribute.
7. The pointlinesurface based threedimensional space geometric virtual model detail level cutting method according to claim 1 or 2, characterized in that the third step is specifically:
splitting three vertexes of a current triangle, obtaining a triangle group associated with a first vertex, adding the group into an empty adjacent triangle array, then adding the group into a traversed triangle group, setting a unique group number for the adjacent triangle group, obtaining triangle groups associated with a second vertex and a third vertex, discarding the currently obtained triangle if the triangle array has been traversed, adding the group into an adjacent triangle array if the triangle array has not been traversed, adding the group into the traversed triangle group, and setting a unique group number for the adjacent triangle group.
8. The pointlinesurface based threedimensional space geometric virtual model level of detail clipping method according to claim 1 or 2, wherein the seventh step of clipping the model specifically comprises:
firstly, edge folding is carried out, wherein edge folding is to select the edge with the lowest importance degree in a triangle for folding, so that two vertexes are merged, and in order to simplify calculation, the edge folding is finally merged to one vertex instead of recalculating the coordinates of a new vertex;
after the edge folding is completed, a new grid is created again, all attribute data of the new grid are created at the same time, a new vertex array and normal line, chartlet and color data in vertex attributes are created, the new vertex is recorded, the loop traversal is used for judging whether each vertex is folded or not, the vertex array after the folding is completed is added to the vertex array of the new grid, the chartlet coordinate after the folding is completed is added to the chartlet coordinate of the new grid, the vertex color array after the folding is completed is added to the vertex color array of the new grid, and the vertex added into the new grid is recorded;
according to the relation between a triangle and a vertex in an old grid, the triangle is corresponding to a new grid, the triangle of a threedimensional space geometric model grid bears the relation between the vertex and the vertex, each triangle of an old triangle array is extracted, the subscript of a subgrid corresponding to the triangle is changed, whether the three vertices are added into the new grid or not is judged, if the three vertices are true, the triangle is added into the new triangle array, a new group number is set and added into a new triangle group number list, and the last part of the subgrid is filled to form a complete subgrid array;
removing the triangle with the folded area of 0, simplifying the complexity of the grid, simultaneously removing the subscript of the corresponding grid, recording the removed triangle, removing the vertex, the chartlet coordinate and the vertex color data corresponding to the triangle, and updating the vertex index corresponding to the new triangle array;
setting parameters of the values before simplification for small areas in the grids, calculating highlevel weights according to the input values, traversing a new triangle array, solving the area, the total area and the number of triangles of each triangle group, determining the removed maximum area according to the input values, traversing the new triangle array, removing all triangles smaller than the maximum area, and removing subgrid subscripts corresponding to the triangles;
creating a new grid: and uniformly drawing the grids of the new data generated in the previous step, wherein the new vertex array covers the model vertex array, the new normal array covers the model normal array, and the new vertex color array covers the model vertex color array, and the new subgrid subscript array covers the model subgrid subscript array.
Priority Applications (1)
Application Number  Priority Date  Filing Date  Title 

CN201811083741.5A CN109410332B (en)  20180917  20180917  Threedimensional space geometric virtual model detail level cutting method based on point, line and surface 
Applications Claiming Priority (1)
Application Number  Priority Date  Filing Date  Title 

CN201811083741.5A CN109410332B (en)  20180917  20180917  Threedimensional space geometric virtual model detail level cutting method based on point, line and surface 
Publications (2)
Publication Number  Publication Date 

CN109410332A CN109410332A (en)  20190301 
CN109410332B true CN109410332B (en)  20221223 
Family
ID=65465003
Family Applications (1)
Application Number  Title  Priority Date  Filing Date 

CN201811083741.5A Active CN109410332B (en)  20180917  20180917  Threedimensional space geometric virtual model detail level cutting method based on point, line and surface 
Country Status (1)
Country  Link 

CN (1)  CN109410332B (en) 
Families Citing this family (11)
Publication number  Priority date  Publication date  Assignee  Title 

CN109903366B (en) *  20190313  20230714  网易（杭州）网络有限公司  Virtual model rendering method and device, storage medium and electronic equipment 
CN110442925B (en) *  20190716  20200515  中南大学  Threedimensional visualization method and system based on realtime dynamic segmentation reconstruction 
CN110363845A (en) *  20190722  20191022  南京聚润工程科技有限公司  A kind of BIM threedimensional model point subtracts the method and system that face stores and reconstructs 
CN111145329A (en) *  20191225  20200512  北京像素软件科技股份有限公司  Model rendering method and system and electronic device 
CN112419430B (en) *  20200528  20221028  上海哔哩哔哩科技有限公司  Animation playing method and device and computer equipment 
CN111627105B (en) *  20200528  20230428  北京字节跳动网络技术有限公司  Face special effect splitting method, device, medium and equipment 
CN112859745B (en) *  20210107  20211214  广东三姆森科技股份有限公司  Automatic workpiece machining area dividing method for threeaxis laser marking process 
CN112802161B (en) *  20210127  20221115  青岛联合创智科技有限公司  Intelligent covering method for threedimensional virtual character 
CN112967400B (en) *  20210413  20220715  成都四方伟业软件股份有限公司  Unity 3Dbased threedimensional graph dynamic creation method and device 
CN113391598B (en) *  20210628  20220920  哈尔滨工业大学  Virtual assembly simulation method and system 
CN114756555B (en) *  20220614  20220826  浙江华东工程数字技术有限公司  Multisource heterogeneous threedimensional model data processing method and system 
Citations (7)
Publication number  Priority date  Publication date  Assignee  Title 

US6348921B1 (en) *  19960412  20020219  Ze Hong Zhao  System and method for displaying different portions of an object in different levels of detail 
CN102360515A (en) *  20111019  20120222  武汉大学  Progressive mesh data organization method for threedimensional model 
CN102663800A (en) *  20120426  20120912  北京师范大学  City building complex and rendering method considering city image 
CN103221993A (en) *  20100913  20130724  巴里·林恩·詹金斯  Delivering and controlling streaming interactive media comprising rendered geometric, texture and lighting data 
CN103324783A (en) *  20130530  20130925  国家电网公司  LOD model realtime generation method based on side folding 
CN103646415A (en) *  20131224  20140319  秦皇岛数据产业研究院有限公司  Dual constraint based selection calling method of LOD (Level of Detail) model in threedimensional scene 
CN104574501A (en) *  20141219  20150429  浙江大学  Highquality texture mapping method aiming at complicated threedimensional scene 

2018
 20180917 CN CN201811083741.5A patent/CN109410332B/en active Active
Patent Citations (7)
Publication number  Priority date  Publication date  Assignee  Title 

US6348921B1 (en) *  19960412  20020219  Ze Hong Zhao  System and method for displaying different portions of an object in different levels of detail 
CN103221993A (en) *  20100913  20130724  巴里·林恩·詹金斯  Delivering and controlling streaming interactive media comprising rendered geometric, texture and lighting data 
CN102360515A (en) *  20111019  20120222  武汉大学  Progressive mesh data organization method for threedimensional model 
CN102663800A (en) *  20120426  20120912  北京师范大学  City building complex and rendering method considering city image 
CN103324783A (en) *  20130530  20130925  国家电网公司  LOD model realtime generation method based on side folding 
CN103646415A (en) *  20131224  20140319  秦皇岛数据产业研究院有限公司  Dual constraint based selection calling method of LOD (Level of Detail) model in threedimensional scene 
CN104574501A (en) *  20141219  20150429  浙江大学  Highquality texture mapping method aiming at complicated threedimensional scene 
NonPatent Citations (2)
Title 

Android平台的多尺度地理信息三维显示技术;罗安平 等;《测绘科学技术学报》;20140228;第31卷(第1期);第107110页 * 
基于层次细节模型的遮挡裁剪算法;许云杰 等;《中国图象图形学报》;20020930;第7卷(第9期);第962967页 * 
Also Published As
Publication number  Publication date 

CN109410332A (en)  20190301 
Similar Documents
Publication  Publication Date  Title 

CN109410332B (en)  Threedimensional space geometric virtual model detail level cutting method based on point, line and surface  
US8570322B2 (en)  Method, system, and computer program product for efficient ray tracing of micropolygon geometry  
CN105336003B (en)  The method for drawing out threedimensional terrain model with reference to the realtime smoothness of GPU technologies  
US11062501B2 (en)  Vertex processing pipeline for building reduced acceleration structures for ray tracing systems  
CN107025685B (en)  Airborne building roof point cloud modeling method under topology perception  
KR101148613B1 (en)  A system for generating terrain, a method of generating terrain and a program storage device  
CN103679807B (en)  A kind of dispersion point cloud reconstructing method of band boundary constraint  
CN108961411A (en)  A kind of simplified method of the complex threedimensional building model keeping external appearance characteristic  
CN108022273B (en)  Picture number detachable picture making method  
Strugar  Continuous distancedependent level of detail for rendering heightmaps  
CN102509339B (en)  Method for simplifying vertex clustering of threedimensional models with texture constraint  
CN107220372B (en)  A kind of automatic laying method of threedimensional map line feature annotation  
KR20100136604A (en)  Realtime visualization system of 3 dimension terrain image  
CN107918957B (en)  Threedimensional building model simplification method capable of keeping structure and texture characteristics  
CN1936962A (en)  Largelandform generation method based on PC platform in 3D game  
CN108053483A (en)  A kind of Wei Nuotu threedimensional grid reconstructing methods accelerated based on GPU  
CN105261066A (en)  Real time rendering multithread distribution and control method of threedimensional geographical information system  
CN109118588B (en)  Automatic color LOD model generation method based on block decomposition  
CN109636889B (en)  Largescale threedimensional terrain model rendering method based on dynamic sewing belt  
CN112102467A (en)  Parallel octree generation and device based on GPU and electronic equipment  
CN109872390A (en)  A kind of method for organizing of magnanimity threedimensional model  
CN113421338A (en)  Method for threedimensional rendering of twodimensional vector  
Zhang et al.  A geometry and texture coupled flexible generalization of urban building models  
He et al.  All range and heterogeneous multiscale 3D city models  
CN103793935B (en)  A kind of urban dynamic scene generation method based on BRLO Tree mixing tree constructions 
Legal Events
Date  Code  Title  Description 

PB01  Publication  
PB01  Publication  
SE01  Entry into force of request for substantive examination  
SE01  Entry into force of request for substantive examination  
GR01  Patent grant  
GR01  Patent grant 