CN109410332B - Three-dimensional space geometric virtual model detail level cutting method based on point, line and surface - Google Patents

Three-dimensional space geometric virtual model detail level cutting method based on point, line and surface Download PDF

Info

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
Application number
CN201811083741.5A
Other languages
Chinese (zh)
Other versions
CN109410332A (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.)
Guangxi University
Original Assignee
Guangxi University
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 Guangxi University filed Critical Guangxi University
Priority to CN201811083741.5A priority Critical patent/CN109410332B/en
Publication of CN109410332A publication Critical patent/CN109410332A/en
Application granted granted Critical
Publication of CN109410332B publication Critical patent/CN109410332B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Graphics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Image Generation (AREA)

Abstract

The invention discloses a method for cutting a three-dimensional space geometric virtual model based on a point line surface. Firstly, separating the attribute of a three-dimensional 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 point-line 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

Three-dimensional space geometric virtual model detail level cutting method based on point, line and surface
Technical Field
The invention belongs to the technical field of three-dimensional space modeling, and particularly relates to a three-dimensional space geometric virtual model detail level cutting method based on a point line surface.
Background
Three-dimensional 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 three-dimensional 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 three-dimensional 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 middle-layer 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 above-described 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 three-dimensional 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 three-dimensional 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 high-dimensional 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, cross-platform and easy realization in the rendering of the three-dimensional space model. In order to overcome the defects of the prior art, the invention provides a three-dimensional 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 three-dimensional 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 three-dimensional 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 sub-mesh 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 three-dimensional 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 location-sharing attribute vertices and texture-sharing 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 sub-grids 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 sub-grids 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 co-existing vertex and ordered list of the sub-mesh are here the location-sharing attribute vertex and the texture-sharing 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 Sub-Vertex 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 three-dimensional 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 sub-grids 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 sub-grids is filled to form a complete sub-grid 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 high-level 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 sub-grid 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 sub-grid subscript array covers the model sub-grid subscript array.
Aiming at the rendering characteristics of the three-dimensional space geometric virtual model, the three-dimensional 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 point-line-surface attribute of three-dimensional 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 cross-platform way without modification.
Drawings
FIG. 1 is a flow chart of a three-dimensional space geometric virtual model detail level cutting method based on a point line surface;
FIG. 2 is a three-dimensional virtual model prototype of the present invention;
FIG. 3 is a three-dimensional space geometric virtual model mesh prototype of the present invention;
FIG. 4 is an example of texture sharing tags for a three-dimensional geometric virtual model according to the present invention;
FIG. 5 is an example of a three-dimensional space geometric virtual model position sharing marker of the present invention;
FIG. 6 is a diagram illustrating a first-level clipping effect of a three-dimensional virtual model according to the present invention;
FIG. 7 is a diagram illustrating a second layer clipping effect of the three-dimensional virtual model according to the present invention;
FIG. 8 is a third layer clipping effect diagram of the three-dimensional space geometric virtual model of the present invention;
FIG. 9 is a diagram illustrating a fourth layer clipping effect of the three-dimensional 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 three-dimensional 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 three-dimensional space geometric virtual model is over ten thousand, and the three-dimensional space geometric virtual model simultaneously has a plurality of sub-grids, 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 sub-meshes, 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 non-important 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 three-dimensional 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 three-dimensional 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 Sub-Vertex 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 three-dimensional 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 three-dimensional 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 three-dimensional 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 sub-grid arrays, and in order to enable double-vertex 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 three-dimensional coordinate values of the vertexes.
6. The method for clipping the detail level of the three-dimensional 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 sub-grids 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 sub-grids 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 sub-mesh and the ordered list are the vertex of the position sharing attribute and the vertex of the texture sharing attribute.
7. The point-line-surface based three-dimensional 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 point-line-surface based three-dimensional 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 three-dimensional 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 sub-grid 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 sub-grid is filled to form a complete sub-grid 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 high-level 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 sub-grid 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 sub-grid subscript array covers the model sub-grid subscript array.
CN201811083741.5A 2018-09-17 2018-09-17 Three-dimensional space geometric virtual model detail level cutting method based on point, line and surface Active CN109410332B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811083741.5A CN109410332B (en) 2018-09-17 2018-09-17 Three-dimensional 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) 2018-09-17 2018-09-17 Three-dimensional space geometric virtual model detail level cutting method based on point, line and surface

Publications (2)

Publication Number Publication Date
CN109410332A CN109410332A (en) 2019-03-01
CN109410332B true CN109410332B (en) 2022-12-23

Family

ID=65465003

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811083741.5A Active CN109410332B (en) 2018-09-17 2018-09-17 Three-dimensional 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 (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109903366B (en) * 2019-03-13 2023-07-14 网易(杭州)网络有限公司 Virtual model rendering method and device, storage medium and electronic equipment
CN110442925B (en) * 2019-07-16 2020-05-15 中南大学 Three-dimensional visualization method and system based on real-time dynamic segmentation reconstruction
CN110363845A (en) * 2019-07-22 2019-10-22 南京聚润工程科技有限公司 A kind of BIM threedimensional model point subtracts the method and system that face stores and reconstructs
CN111145329B (en) * 2019-12-25 2024-03-22 北京像素软件科技股份有限公司 Model rendering method, system and electronic device
CN111627105B (en) * 2020-05-28 2023-04-28 北京字节跳动网络技术有限公司 Face special effect splitting method, device, medium and equipment
CN112419430B (en) * 2020-05-28 2022-10-28 上海哔哩哔哩科技有限公司 Animation playing method and device and computer equipment
CN112859745B (en) * 2021-01-07 2021-12-14 广东三姆森科技股份有限公司 Automatic workpiece machining area dividing method for three-axis laser marking process
CN112802161B (en) * 2021-01-27 2022-11-15 青岛联合创智科技有限公司 Intelligent covering method for three-dimensional virtual character
CN112967400B (en) * 2021-04-13 2022-07-15 成都四方伟业软件股份有限公司 Unity 3D-based three-dimensional graph dynamic creation method and device
CN113391598B (en) * 2021-06-28 2022-09-20 哈尔滨工业大学 Virtual assembly simulation method and system
CN113421337A (en) * 2021-07-21 2021-09-21 北京臻观数智科技有限公司 Method for improving model rendering efficiency
CN114756555B (en) * 2022-06-14 2022-08-26 浙江华东工程数字技术有限公司 Multi-source heterogeneous three-dimensional model data processing method and system
CN116402988B (en) * 2023-05-11 2023-12-19 北京冰河起源科技有限公司 Three-dimensional model processing method, device and storage medium
CN117494289B (en) * 2023-12-27 2024-03-19 中建三局集团有限公司 Feature edge geometry generation method and device, and measurement adsorption method and device

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6348921B1 (en) * 1996-04-12 2002-02-19 Ze Hong Zhao System and method for displaying different portions of an object in different levels of detail
CN102360515A (en) * 2011-10-19 2012-02-22 武汉大学 Progressive mesh data organization method for three-dimensional model
CN102663800A (en) * 2012-04-26 2012-09-12 北京师范大学 City building complex and rendering method considering city image
CN103221993A (en) * 2010-09-13 2013-07-24 巴里·林恩·詹金斯 Delivering and controlling streaming interactive media comprising rendered geometric, texture and lighting data
CN103324783A (en) * 2013-05-30 2013-09-25 国家电网公司 LOD model real-time generation method based on side folding
CN103646415A (en) * 2013-12-24 2014-03-19 秦皇岛数据产业研究院有限公司 Dual constraint based selection calling method of LOD (Level of Detail) model in three-dimensional scene
CN104574501A (en) * 2014-12-19 2015-04-29 浙江大学 High-quality texture mapping method aiming at complicated three-dimensional scene

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6348921B1 (en) * 1996-04-12 2002-02-19 Ze Hong Zhao System and method for displaying different portions of an object in different levels of detail
CN103221993A (en) * 2010-09-13 2013-07-24 巴里·林恩·詹金斯 Delivering and controlling streaming interactive media comprising rendered geometric, texture and lighting data
CN102360515A (en) * 2011-10-19 2012-02-22 武汉大学 Progressive mesh data organization method for three-dimensional model
CN102663800A (en) * 2012-04-26 2012-09-12 北京师范大学 City building complex and rendering method considering city image
CN103324783A (en) * 2013-05-30 2013-09-25 国家电网公司 LOD model real-time generation method based on side folding
CN103646415A (en) * 2013-12-24 2014-03-19 秦皇岛数据产业研究院有限公司 Dual constraint based selection calling method of LOD (Level of Detail) model in three-dimensional scene
CN104574501A (en) * 2014-12-19 2015-04-29 浙江大学 High-quality texture mapping method aiming at complicated three-dimensional scene

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Android平台的多尺度地理信息三维显示技术;罗安平 等;《测绘科学技术学报》;20140228;第31卷(第1期);第107-110页 *
基于层次细节模型的遮挡裁剪算法;许云杰 等;《中国图象图形学报》;20020930;第7卷(第9期);第962-967页 *

Also Published As

Publication number Publication date
CN109410332A (en) 2019-03-01

Similar Documents

Publication Publication Date Title
CN109410332B (en) Three-dimensional 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 three-dimensional terrain model with reference to the real-time smoothness of GPU technologies
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
CN108022273B (en) Picture number detachable picture making method
CN108961411A (en) A kind of simplified method of the complex three-dimensional building model keeping external appearance characteristic
CN102509339B (en) Method for simplifying vertex clustering of three-dimensional models with texture constraint
CN109118588B (en) Automatic color LOD model generation method based on block decomposition
KR20100136604A (en) Real-time visualization system of 3 dimension terrain image
Strugar Continuous distance-dependent level of detail for rendering heightmaps
CN107918957B (en) Three-dimensional building model simplification method capable of keeping structure and texture characteristics
KR101136737B1 (en) Method of and appartus for processing graphics
CN107220372B (en) A kind of automatic laying method of three-dimensional map line feature annotation
CN111784840B (en) LOD (line-of-sight) level three-dimensional data singulation method and system based on vector data automatic segmentation
CN108053483A (en) A kind of Wei Nuotu three-dimensional grid reconstructing methods accelerated based on GPU
CN1936962A (en) Large-landform generation method based on PC platform in 3-D game
CN113421338B (en) Method for three-dimensional rendering of two-dimensional vector
CN109636889B (en) Large-scale three-dimensional terrain model rendering method based on dynamic sewing belt
CN109872390A (en) A kind of method for organizing of magnanimity threedimensional model
CN115937461B (en) Multi-source fusion model construction and texture generation method, device, medium and equipment
CN112102467B (en) GPU-based parallel octree generation device and electronic equipment
CN115861566A (en) LiDAR point cloud building integrity enhancement method based on intensity voxel model
Zhang et al. A geometry and texture coupled flexible generalization of urban building models

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