CN118691728A - A cluster-based IFC model component-level LOD generation and use method - Google Patents
A cluster-based IFC model component-level LOD generation and use method Download PDFInfo
- Publication number
- CN118691728A CN118691728A CN202410595615.7A CN202410595615A CN118691728A CN 118691728 A CN118691728 A CN 118691728A CN 202410595615 A CN202410595615 A CN 202410595615A CN 118691728 A CN118691728 A CN 118691728A
- Authority
- CN
- China
- Prior art keywords
- data
- edge
- cluster
- component
- index
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明公开了一种基于簇的IFC模型构件级LOD生成和使用方法。该方法适用于包含大量三角面的IFC构件模型,在离线过程中以一个固定数量的三角面为一个簇的分割方式,对构件模型进行分组减面,生成多级LOD草模,进而可在实时渲染过程中,根据渲染相机的可见范围,动态调整构件的三角面渲染数量,以避免无效渲染带来的开销。本发明也在对IFC模型进行LOD处理的过程中引入了簇的形式,提高了模型减面的操作细粒度,单体构件得以实现多级LOD的共存,从而保证了相机移动过程中,模型能够在不同LOD层级间平滑过渡;同时,本发明还结合了符合现代GPU硬件运行方式的实例化渲染与剔除算法,极大提高了渲染的帧率表现。
The present invention discloses a method for generating and using component-level LOD of an IFC model based on clusters. The method is applicable to IFC component models containing a large number of triangular faces. In an offline process, the component model is divided into groups and faces are reduced in a way that a fixed number of triangular faces are used as a cluster, and a multi-level LOD rough model is generated. Then, in the real-time rendering process, the number of triangular faces rendered of the component can be dynamically adjusted according to the visible range of the rendering camera to avoid the overhead caused by invalid rendering. The present invention also introduces the form of clusters in the process of LOD processing of the IFC model, improves the fine-grainedness of the model face reduction operation, and enables the coexistence of multiple levels of LOD for a single component, thereby ensuring that the model can smoothly transition between different LOD levels during camera movement; at the same time, the present invention also combines instantiation rendering and culling algorithms that conform to the operation mode of modern GPU hardware, greatly improving the rendering frame rate performance.
Description
技术领域Technical Field
本发明涉及工业类三维模型显示领域,尤其涉及一种基于簇的IFC模型构件级LOD生成和使用方法。The present invention relates to the field of industrial three-dimensional model display, and in particular to a cluster-based IFC model component-level LOD generation and use method.
背景技术Background Art
随着三维计算机辅助设计(CAD)在工程、建筑、制造等领域的广泛应用,对于高效、准确地表达复杂三维模型的需求日益增加。传统的三维CAD模型表达方法存在一些挑战,例如模型复杂度高时,会导致数据量庞大,对计算机硬件和软件的要求也越来越高。因此,为了提高三维CAD系统的性能和效率,降低数据处理和传输的负担,需要一种更加智能和有效的模型表达方法。With the widespread application of 3D computer-aided design (CAD) in engineering, architecture, manufacturing and other fields, the demand for efficient and accurate expression of complex 3D models is increasing. There are some challenges in the traditional 3D CAD model expression method. For example, when the model is complex, it will lead to a large amount of data and the requirements for computer hardware and software are getting higher and higher. Therefore, in order to improve the performance and efficiency of the 3D CAD system and reduce the burden of data processing and transmission, a more intelligent and effective model expression method is needed.
为解决这一问题,近年来,越来越多的关注和研究集中在LOD(Level of Detail)技术上。LOD技术是一种动态调整模型细节级别的方法,它允许在不同的距离或观察角度下,以不同的精细度来呈现三维模型。这一技术最早在计算机图形学领域中应用,用于实时渲染和优化模型显示,而后逐渐在CAD领域得到应用。To solve this problem, in recent years, more and more attention and research have focused on LOD (Level of Detail) technology. LOD technology is a method of dynamically adjusting the level of detail of a model, which allows the three-dimensional model to be presented with different degrees of precision at different distances or viewing angles. This technology was first used in the field of computer graphics for real-time rendering and optimized model display, and then gradually gained application in the field of CAD.
通常,常规LOD技术足以满足动态调整模型精细度来降低渲染开销的需求,但诸如IFC(Industry Foundation Classes)这种BIM(Building Information Modeling)类的CAD模型,往往有着不同于其他领域的交互要求。这一问题在其他领域,例如游戏中,并不是处理核心,因为在一个庞大场景中,使用者的操作单元往往不会细微到一个很小的部分,但在BIM领域则完全相反,满足构件级的操作单位是必要条件,即使是一个极其复杂的给排水模型,也需要确保一个微小构件的可操作性。Normally, conventional LOD technology is sufficient to meet the needs of dynamically adjusting the model's precision to reduce rendering overhead, but CAD models such as IFC (Industry Foundation Classes) and BIM (Building Information Modeling) often have different interaction requirements from other fields. This problem is not the core of processing in other fields, such as games, because in a large scene, the user's operation unit is often not subtle to a very small part, but in the BIM field, it is completely the opposite. Meeting the component-level operation unit is a necessary condition. Even for an extremely complex water supply and drainage model, it is necessary to ensure the operability of a tiny component.
此外,基于树状的生成结构,传统LOD层级的生成较简单,但它通常无法实现单个物体上的多层级LOD共存,因为模型简化便注定伴随高频信息的丢失,不同层级间的模型边缘将难以贴合,强行合并会存在很明显的边缘线问题,从而导致模型不够平滑;而假使单个模型每次仅使用一个层级,那又会导致在浏览过程中,随着观察距离和视角的变换,模型在视觉效果上会存在较明显的突变。In addition, based on the tree-like generation structure, the generation of traditional LOD levels is relatively simple, but it is usually impossible to achieve the coexistence of multiple levels of LOD on a single object, because model simplification is destined to be accompanied by the loss of high-frequency information, and the edges of models between different levels will be difficult to fit. Forced merging will have obvious edge line problems, resulting in an unsmooth model; and if a single model only uses one level at a time, it will lead to obvious mutations in the visual effect of the model during browsing as the viewing distance and viewing angle change.
发明内容Summary of the invention
本发明的目的在于针对现有技术的不足,在传统LOD技术的基础之上,提供一种基于簇形式的LOD生成和使用方法,并将其应用于IFC模型的构件单体上,使得模型在随着使用者观察状态变化而动态切换LOD层级的过程中能平滑过渡,并满足了BIM工业领域中构件级的操作需求。The purpose of the present invention is to address the shortcomings of the prior art and, based on the traditional LOD technology, provide a cluster-based LOD generation and use method, and apply it to the component monomers of the IFC model, so that the model can smoothly transition in the process of dynamically switching the LOD level as the user observes the state changes, and meet the component-level operation requirements in the BIM industry.
本发明的目的是通过以下技术方案来实现的:The objective of the present invention is achieved through the following technical solutions:
一种基于簇的IFC模型构件级LOD生成和使用方法,包括以下步骤:A cluster-based IFC model component-level LOD generation and use method comprises the following steps:
(1)读取IFC模型构件的几何信息,对构件的顶点数据进行去重;并封装更新的三角面数据,遍历该几何数据;对每个构件的三角面数和预设面数阈值进行比较,三角面数不超过阈值的构件视为简易网格构件,走常规渲染管线;三角面数超过阈值的构件视为复杂网格构件,获取该部分构件三角面之间的邻接关系,并记录为数据结构体;(1) Read the geometric information of the IFC model components, deduplicate the vertex data of the components, encapsulate the updated triangular face data, and traverse the geometric data; compare the number of triangular faces of each component with the preset face number threshold, and regard the components whose triangular faces do not exceed the threshold as simple mesh components and use the conventional rendering pipeline; regard the components whose triangular faces exceed the threshold as complex mesh components, obtain the adjacency relationship between the triangular faces of the components, and record them as a data structure;
(2)遍历模型中的建筑构件识别关于三角面邻接关系的数据结构体,并对三角面进行排序,划分为簇群,同时计算簇的邻接关系,利用该部分数据,对簇群划分为簇组,进而获得簇组群数据,并封装为数据结构体;(2) Traverse the building components in the model to identify the data structure of the adjacency relationship of the triangles, sort the triangles, divide them into clusters, and calculate the adjacency relationship of the clusters. Use this data to divide the clusters into cluster groups, and then obtain the cluster group data and encapsulate it into a data structure;
(3)遍历构件识别步骤(2)中簇组群数据,遍历每个组,提取其中所有簇的三角面数据,结合减面算法进行减面,记录该组内所有新生成的三角面数据及其邻接关系数据;(3) traverse the cluster group data in the component identification step (2), traverse each group, extract the triangular surface data of all clusters therein, reduce the surface by combining the surface reduction algorithm, and record all newly generated triangular surface data and their adjacency relationship data in the group;
(4)重复步骤(2)和步骤(3),直至生成指定数量的LOD层级,将新生成的几何数据存储为一个中间文件;(4) Repeat steps (2) and (3) until a specified number of LOD levels are generated, and store the newly generated geometric data as an intermediate file;
(5)读取中间文件中的几何数据,根据该几何数据所属模型中的构件网格、构件簇组、构件簇的可见性依次进行对应部分的剔除,记录可见簇的数据与对应的LOD层级并进行渲染。(5) Read the geometric data in the intermediate file, and remove the corresponding parts in turn according to the visibility of the component mesh, component cluster group, and component cluster in the model to which the geometric data belongs, record the data of the visible cluster and the corresponding LOD level, and render it.
进一步地,所述步骤(1)通过以下子步骤来实现:Furthermore, the step (1) is implemented by the following sub-steps:
(1.1)解析IFC模型的几何数据,获取每个构件的顶点属性和对应的索引标号,遍历所有索引标号对应的顶点,并进行比较,若两个标号指向同一顶点属性,则进行去重,存储更新后的数据;(1.1) Parse the geometric data of the IFC model, obtain the vertex attributes and corresponding index numbers of each component, traverse all vertices corresponding to the index numbers, and compare them. If two numbers point to the same vertex attribute, remove the duplicates and store the updated data;
(1.2)默认每个三角面片的边存在方向,通过步骤(1.1)获得的顶点和索引数据,遍历所有边,当任意两条边顶点相同,方向相反时,则这两条边存在对边关系,记录该关系于数据结构体中;(1.2) It is assumed that the edge of each triangle has a direction. Through the vertex and index data obtained in step (1.1), all edges are traversed. When any two edges have the same vertices but opposite directions, there is a relationship between the two edges. This relationship is recorded in the data structure.
(1.3)识别步骤(1.2)关于对边关系的数据结构体,读取其中的每组对边,通过该边的索引标号计算得到其所在三角面片的索引标号,进而可获得三角面的邻接关系,将其封装为一个数据结构体。(1.3) Identify the data structure of the opposite edge relationship in step (1.2), read each set of opposite edges, calculate the index number of the triangle where the edge is located through the index number of the edge, and then obtain the adjacency relationship of the triangle, which is encapsulated into a data structure.
进一步地,所述步骤(2)通过以下子步骤来实现:Furthermore, the step (2) is implemented by the following sub-steps:
(2.1)识别记录三角面邻接关系的数据结构体,利用三角面片的索引标号大小与邻接关系作为权重,进行索引标号排序,随后以一个固定大小进行分割,按序依次封装为簇,并记录簇的边缘数据信息;(2.1) Identify the data structure that records the adjacency relationship of the triangles, use the index number size and adjacency relationship of the triangles as weights, sort the index numbers, then split them into a fixed size, encapsulate them into clusters in order, and record the edge data information of the clusters;
(2.2)结合半边数据结构算法中,每条无向边可拆分为两条顶点相同,但方向相反的半边的逻辑,可默认每条边存在方向,通过步骤(2.1)获得的簇的边缘数据,遍历所有边,当任意两条边顶点相同,方向相反时,则这两条边存在对边关系,记录该对边关系于数据结构体中;(2.2) Combined with the logic of the half-edge data structure algorithm, each undirected edge can be split into two half-edges with the same vertices but opposite directions. It can be assumed that each edge has a direction. Through the edge data of the cluster obtained in step (2.1), all edges are traversed. When any two edges have the same vertices but opposite directions, there is an opposite edge relationship between the two edges, and the opposite edge relationship is recorded in the data structure.
(2.3)识别包含对边关系的数据结构体,读取其中的每组对边,通过该边的索引标号可映射回其所在簇的索引标号,进而可获得簇的邻接关系,将其封装为一个数据结构体;(2.3) Identify the data structure containing the edge relationship, read each set of edges, and map the index number of the edge back to the index number of the cluster to which it belongs, so as to obtain the adjacency relationship of the cluster and encapsulate it into a data structure;
(2.4)识别步骤(2.3)中簇的邻接关系,其数据利用簇的索引标号大小与邻接关系作为权重,进行索引标号排序,随后以一个固定大小进行分割,按序依次封装为簇组,并记录簇组的边缘数据信息。(2.4) Identify the adjacency relationship of the clusters in step (2.3), use the index number size and adjacency relationship of the cluster as weights, sort the data by index number, and then split it into a fixed size, encapsulate it into cluster groups in order, and record the edge data information of the cluster groups.
进一步地,所述步骤(3)通过以下子步骤来实现:Furthermore, step (3) is implemented by the following sub-steps:
(3.1)识别簇组的几何数据,遍历每个组,获取其中所有簇的三角面片的顶点属性和索引数据,分别存入一个数据结构体中;(3.1) Identify the geometric data of the cluster group, traverse each group, obtain the vertex attributes and index data of the triangles of all clusters in it, and store them in a data structure respectively;
(3.2)读取该组的边缘数据,并识别步骤(3.1)生成的顶点属性和索引数据,将边缘对应的顶点标记为“锁定”,以保证在减面过程中其不会被改动;(3.2) Read the edge data of the group, identify the vertex attributes and index data generated in step (3.1), and mark the vertex corresponding to the edge as "locked" to ensure that it will not be changed during the face reduction process;
(3.3)识别步骤(3.1)生成的顶点属性和索引数据,结合减面算法,依次遍历每一条边所对应的减面累计误差,对于存在步骤(3.2)所设“锁定”顶点的边,则其减面累计误差设一个最大值,随后将该误差存入一个最小堆数据结构;(3.3) Identify the vertex attributes and index data generated in step (3.1), combine with the face reduction algorithm, and traverse the face reduction cumulative error corresponding to each edge in turn. For the edge with the "locked" vertex set in step (3.2), set a maximum value for its face reduction cumulative error, and then store the error in a minimum heap data structure;
(3.4)识别步骤(3.3)最小堆数据结构,依次提取出减面累计误差最小的边,对该边进行坍缩,调整其邻接三角面片的顶点数据,并将减面后生成的新边计算减面累计误差,同时存入最小堆中;(3.4) Identify the minimum heap data structure in step (3.3), extract the edge with the smallest cumulative error of face reduction in turn, collapse the edge, adjust the vertex data of its adjacent triangles, and calculate the cumulative error of face reduction for the new edge generated after face reduction, and store it in the minimum heap at the same time;
(3.5)重复步骤(3.4),直至现有边的数量符合预设的条件,随后对现有的顶点属性和索引标号进行去重,利用去重后获得的新顶点属性与索引标号构建新的三角面几何数据,并将结果封装为数据结构体;(3.5) Repeat step (3.4) until the number of existing edges meets the preset conditions, then deduplicate the existing vertex attributes and index numbers, use the new vertex attributes and index numbers obtained after deduplication to construct new triangle surface geometry data, and encapsulate the result into a data structure;
(3.6)识别步骤(3.5)获得的新的三角面几何数据,遍历所有边,当任意两条边顶点相同,方向相反时,则这两条边存在对边关系,记录所有对边关系于数据结构体,进而利用该数据获得三角面的邻接关系。(3.6) Identify the new triangular face geometry data obtained in step (3.5), traverse all edges, and when any two edges have the same vertices but opposite directions, there is an opposite-edge relationship between the two edges. Record all opposite-edge relationships in the data structure, and then use the data to obtain the adjacency relationship of the triangular face.
进一步地,所述步骤(4)通过以下子步骤来实现:Furthermore, step (4) is implemented by the following sub-steps:
(4.1)根据预设的LOD层级数量,重复步骤(2)和步骤(3);(4.1) Repeat steps (2) and (3) according to the preset number of LOD levels;
(4.2)设定一编码结构,将步骤(4.1)生成的构件LOD几何数据按序排布,并存入一中间文件中。(4.2) Setting a coding structure, arranging the component LOD geometry data generated in step (4.1) in order, and storing them in an intermediate file.
进一步地,所述步骤(5)通过以下子步骤来实现:Furthermore, step (5) is implemented by the following sub-steps:
(5.1)结合步骤(4.2)设定的编码结构,对记录LOD数据的中间文件进行解析,并封装为数据结构体,存入缓冲中供渲染读取,生成缓冲中的构件几何数据;(5.1) In combination with the encoding structure set in step (4.2), the intermediate file recording the LOD data is parsed and encapsulated into a data structure, which is stored in the buffer for rendering and reading, and the component geometry data in the buffer is generated;
(5.2)读取步骤(5.1)生成的缓冲中的构件几何数据,使用包围盒计算该构件模型的可见性,记录可见构件的索引标号;(5.2) Read the component geometry data in the buffer generated in step (5.1), use the bounding box to calculate the visibility of the component model, and record the index number of the visible component;
(5.3)识别步骤(5.2)获得的可见构件的索引标号,利用该索引标号在步骤(5.1)生成的缓冲中读取其对应簇组的几何信息,将其与相机之间的距离以及其在终端界面占据的像素比例作为权重,计算其对应的LOD层级,随后利用该层级筛选对应的簇组索引标号并记录;(5.3) Identify the index number of the visible component obtained in step (5.2), use the index number to read the geometric information of its corresponding cluster group in the buffer generated in step (5.1), use the distance between it and the camera and the pixel ratio it occupies on the terminal interface as weights, calculate its corresponding LOD level, and then use the level to filter the corresponding cluster group index number and record it;
(5.4)识别步骤(5.3)获得的簇组索引标号,在步骤(5.1)生成的缓冲中读取该簇组所包含的簇,并依次遍历比较簇的可见性,随后生成并记录可见簇索引标号的索引缓冲;(5.4) Identify the cluster group index number obtained in step (5.3), read the clusters contained in the cluster group in the buffer generated in step (5.1), and traverse and compare the visibility of the clusters in turn, and then generate and record the index buffer of the visible cluster index number;
(5.5)读取步骤(5.4)生成的索引缓冲中的可见簇索引标号数据,获得对应索引标号,随后根据索引读取步骤(5.1)生成的缓冲中的顶点数据并进行渲染。(5.5) Read the visible cluster index number data in the index buffer generated in step (5.4), obtain the corresponding index number, and then read the vertex data in the buffer generated in step (5.1) according to the index and render it.
本发明的益处效果如下:The benefits of the present invention are as follows:
本发明在LOD生成过程中,引入了簇和簇组的概念,令传统LOD的树状生成结构改变为有向无环图的生成结构,使得在生成结构中,父层级单位的边缘与其对应子层级的边缘不是重合的,从而避免了“为确保不同层级网格合并时边缘贴合,而不得不保留边缘高频信息”的问题,这促使在减面过程中新生成的三角面可以分布更均匀,从而实现了多层级LOD可在同个单体模型上共存且平滑显示的效果;此外,该技术仅应用于构件单体模型上,相较于常规应用于模型整体的LOD技术,它能保护构件单体的可操作性,且每个构件单体独立进行LOD切换,使得三维模型的浏览效果不会产生明显突变。In the LOD generation process, the present invention introduces the concepts of clusters and cluster groups, and changes the tree-like generation structure of the traditional LOD into a generation structure of a directed acyclic graph, so that in the generation structure, the edges of the parent-level units and the edges of their corresponding child levels do not overlap, thereby avoiding the problem of "having to retain high-frequency edge information to ensure edge fit when merging grids of different levels", which enables the newly generated triangular faces to be distributed more evenly during the face reduction process, thereby achieving the effect that multiple levels of LOD can coexist and be displayed smoothly on the same monomer model; in addition, this technology is only applied to the monomer model of the component. Compared with the conventional LOD technology applied to the entire model, it can protect the operability of the monomer component, and each monomer component performs LOD switching independently, so that the browsing effect of the three-dimensional model will not produce obvious mutations.
附图说明BRIEF DESCRIPTION OF THE DRAWINGS
图1是本发明的基于簇的IFC模型构件级LOD生成和使用方法框架图;FIG1 is a framework diagram of a cluster-based IFC model component-level LOD generation and use method of the present invention;
图2是本发明的LOD有向无环图生成结构示意图;FIG2 is a schematic diagram of a LOD directed acyclic graph generation structure of the present invention;
图3是本发明的不同层级簇边缘示意图;FIG3 is a schematic diagram of cluster edges at different levels of the present invention;
图4是本发明的球体模型LOD层级示意图。FIG. 4 is a schematic diagram of the LOD levels of the sphere model of the present invention.
具体实施方式DETAILED DESCRIPTION
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。In order to enable those skilled in the art to better understand the solution of the present invention, the technical solution in the embodiment of the present invention will be clearly and completely described below in conjunction with the drawings in the embodiment of the present invention. Obviously, the described embodiment is only a part of the embodiment of the present invention, not all of the embodiments. Based on the embodiment of the present invention, all other embodiments obtained by ordinary technicians in this field without creative work should fall within the scope of protection of the present invention.
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如:包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。It should be noted that the terms "first", "second", etc. in the specification and claims of the present invention and the above-mentioned drawings are used to distinguish similar objects, and are not necessarily used to describe a specific order or sequence. It should be understood that the data used in this way can be interchanged where appropriate, so that the embodiments of the present invention described herein can be implemented in an order other than those illustrated or described herein. In addition, the terms "including" and "having" and any variations thereof are intended to cover non-exclusive inclusions, for example: a process, method, system, product or device that includes a series of steps or units is not necessarily limited to those steps or units clearly listed, but may include other steps or units that are not clearly listed or inherent to these processes, methods, products or devices.
如图1所示,一种基于簇的IFC模型构件级LOD生成和使用方法,包括以下步骤:As shown in FIG1 , a cluster-based IFC model component-level LOD generation and use method includes the following steps:
步骤一:解析IFC模型,识别并提取出涉及构件的几何属性数据,设定简易构件与复杂构件的划分标准为64个三角面,将IFC模型中的所有构件根据该阈值划分为简易构件模型与复杂构件模型两类所述简易构件模型采用传统渲染方式,所述复杂构件模型进行LOD处理。Step 1: parse the IFC model, identify and extract the geometric property data of the components involved, set the division standard between simple components and complex components to 64 triangular faces, and divide all components in the IFC model into two categories: simple component models and complex component models according to the threshold. The simple component model adopts the traditional rendering method, and the complex component model is LOD processed.
该步骤是本发明的技术基础,以构件为处理单位,从根本上满足了构件级的操作需求;此外区分简易构件和复杂构件的操作环境,以避免对简易构件进行LOD处理的无效优化操作。This step is the technical basis of the present invention. It takes components as processing units and fundamentally meets the component-level operation requirements. In addition, it distinguishes the operating environments of simple components and complex components to avoid invalid optimization operations of LOD processing on simple components.
所述步骤一包括以下子步骤:The step 1 includes the following sub-steps:
(1.1)利用ifc-openshell第三方解析库解析获取IFC模型的几何数据和语义信息,根据构件单位进行封装顶点的坐标、法线、材质、索引、纹理uv几何数据;(1.1) Use the ifc-openshell third-party parsing library to parse and obtain the geometric data and semantic information of the IFC model, and encapsulate the vertex coordinates, normals, materials, indexes, and texture UV geometric data according to the component units;
(1.2)鉴于现有GPU构架通常以32或64个核为一个调度单位,为尽可能充分发挥硬件性能以及确保程序的可移植性,又考虑到避免对过多的简易构件进行LOD处理,预设簇的组成单元为64个三角面,基于此,将64个三角面为简易构件与复杂构件的划分依据,将封装的构件几何数据进行划分;(1.2) In view of the fact that the existing GPU architecture usually uses 32 or 64 cores as a scheduling unit, in order to give full play to the hardware performance and ensure the portability of the program as much as possible, and to avoid LOD processing of too many simple components, the component unit of the preset cluster is 64 triangles. Based on this, the 64 triangles are used as the basis for dividing simple components and complex components, and the encapsulated component geometry data is divided;
(1.3)对于简易构件直接采用传统渲染管线进行渲染,复杂构件的数据进行封装用于进一步处理。(1.3) Simple components are directly rendered using the traditional rendering pipeline, and the data of complex components are encapsulated for further processing.
步骤二:对步骤一中划分出的复杂构件进行逐个构件处理,读取顶点数据,进行去重,随后依据半边数据结构,寻找构件所含三角面的邻接关系,以邻接关系和三角面的索引标号大小为权重,结合METIS第三方分割库,对三角面群进行排序划分,并以每60~64个三角面为一组封装为簇,记录三角面构成的簇边缘,继续采用半边数据结构方式,寻找簇的邻接关系;继续调用METIS库,将簇群排序划分,以每12~16个簇为组,并记录簇构成的组边缘。Step 2: Process the complex components divided in step 1 one by one, read the vertex data, and remove duplicates. Then, based on the half-edge data structure, find the adjacency relationship of the triangles contained in the component. Use the adjacency relationship and the index number size of the triangle as weights. Combined with the METIS third-party segmentation library, sort and divide the triangle group, and encapsulate it into clusters with 60 to 64 triangles as a group. Record the cluster edges formed by the triangles, and continue to use the half-edge data structure to find the adjacency relationship of the cluster; continue to call the METIS library, sort and divide the clusters, with 12 to 16 clusters as groups, and record the group edges formed by the clusters.
步骤二是核心发明部分之一,在传统LOD技术基础上引入了簇和簇组的分组概念,其形式如图2的左、中两图,其包括以下子步骤。Step 2 is one of the core invention parts. It introduces the grouping concept of clusters and cluster groups based on the traditional LOD technology. Its form is shown in the left and middle figures of Figure 2, which includes the following sub-steps.
(2.1)读取步骤一中划分后的复杂构件几何数据,遍历其顶点的索引标号,读取该索引对应顶点的属性数据,利用murmur-32哈希函数计算哈希值,并将其与一预设的哈希函数表进行比较,若该值已存在则将索引标号改为哈希函数表中记录的索引标号,否则将该索引标号存入哈希函数表;(2.1) Read the geometric data of the complex component divided in step 1, traverse the index number of its vertex, read the attribute data of the vertex corresponding to the index, calculate the hash value using the murmur-32 hash function, and compare it with a preset hash function table. If the value already exists, change the index number to the index number recorded in the hash function table, otherwise store the index number in the hash function table;
(2.2)依据半边数据结构理念,设定每条边存在方向,即若某条边的两个顶点分别为A和B,则该边存在AB和BA两条半边;遍历构件中所有边,并将其与一预设的哈希函数表进行比较,若表中记录的边和当前边恰好为反向,则为对边关系,将这对边的索引标号记录于一映射数据结构中;(2.2) Based on the concept of half-edge data structure, set the direction of each edge, that is, if the two vertices of an edge are A and B respectively, then the edge has two half-edges AB and BA; traverse all edges in the component and compare them with a preset hash function table. If the edge recorded in the table is exactly in the opposite direction of the current edge, it is an opposite edge relationship, and the index number of the opposite edge is recorded in a mapping data structure;
(2.3)读取记录对边关系的映射数据结构,由于边存在方向,则对边关系的两条边所处的三角面就存在邻接关系,基于此,将这两条边的索引标号分别除3取整,获得其所在三角面的索引标号,将相邻三角面的索引标号封装为一新的映射数据结构;(2.3) Read the mapping data structure that records the relationship between opposite edges. Since the edges have directions, the triangles where the two edges of the opposite edge relationship are located have an adjacency relationship. Based on this, the index numbers of the two edges are divided by 3 and rounded to the integer to obtain the index numbers of the triangles where they are located. The index numbers of the adjacent triangles are encapsulated into a new mapping data structure.
(2.4)读取三角面的邻接关系与索引标号,将其作为权重,交由METIS分割库进行递归划分,每组划分范围设定为60~64个三角面,以允许一定的误差调整,经过划分后可获得经过排序的三角面索引以及记录每组范围的数组;(2.4) Read the adjacency relationship and index number of the triangles, use them as weights, and submit them to the METIS segmentation library for recursive segmentation. The range of each group of segmentation is set to 60 to 64 triangles to allow a certain error adjustment. After segmentation, the sorted triangle index and the array recording each group range can be obtained;
(2.5)读取记录分组范围的数组,获得每组对应三角面的索引标号,并读取对应的几何信息,将其封装为一个簇数据结构,并计算该簇的包围球;在封装三角面的过程中,依次判断三角面三条边的对边所属的三角面索引是否在另一个分组范围中,若是,则表明该边为簇的边缘,记录该边缘数据;(2.5) Read the array recording the grouping range, obtain the index number of each group of corresponding triangles, read the corresponding geometric information, encapsulate it into a cluster data structure, and calculate the bounding sphere of the cluster; in the process of encapsulating the triangles, determine in turn whether the triangle indexes of the opposite sides of the three sides of the triangle are in another grouping range. If so, it indicates that the edge is the edge of the cluster, and record the edge data;
(2.6)创建一映射结构,记录簇的索引和其边的索引的映射关系,结合所述步骤(2.2)中的对边理念,进一步寻找簇的边的对边关系,并记录于一映射数据结构中;(2.6) Create a mapping structure to record the mapping relationship between the index of the cluster and the index of its edge, and combine the concept of opposite edges in step (2.2) to further find the opposite edge relationship of the edge of the cluster and record it in a mapping data structure;
(2.7)读取记录对边关系的映射数据结构,通过记录簇和簇边映射关系的数据结构,获得簇的邻接关系,并封装为一新的映射数据结构;(2.7) Read the mapping data structure that records the edge relationship, obtain the cluster adjacency relationship through the data structure that records the cluster and cluster edge mapping relationship, and encapsulate it into a new mapping data structure;
(2.8)读取簇的邻接关系与索引标号,将其作为权重,交由METIS分割库进行递归划分,每组划分范围设定为12~16个簇,以允许一定的误差调整,经过划分后可获得经过排序的簇索引以及记录每组范围的数组;(2.8) Read the adjacency relationship and index number of the cluster, use it as the weight, and hand it over to the METIS segmentation library for recursive partitioning. The range of each group of partitions is set to 12 to 16 clusters to allow a certain error adjustment. After the partition, the sorted cluster index and the array recording the range of each group can be obtained;
(2.9)读取记录分组范围的数组,获得每组对应簇的索引标号,并读取对应的几何信息,将其封装为一个簇组数据结构,同时,依次判断簇边的对边所属簇的索引是否在另一个分组范围中,若是,则表明该边为簇组的边缘,记录该边缘数据。(2.9) Read the array that records the grouping range, obtain the index number of each group corresponding to the cluster, and read the corresponding geometric information, encapsulating it into a cluster group data structure. At the same time, determine in turn whether the index of the cluster to which the opposite edge of the cluster edge belongs is in another grouping range. If so, it indicates that the edge is the edge of the cluster group, and the edge data is recorded.
步骤三:读取步骤二中获得的簇组数据,遍历每个簇组,读取其中所有簇的三角面顶点和索引数据,将其整合为几个数组;遍历簇组的边缘信息,将这些边所在顶点标记为“锁定”,再结合QEM(Quadic Error Metrics)减面算法,对簇组内的所有边计算减面累计误差,并将该误差存入一最小堆数据结构中;随后依次取出累计误差最小的边进行坍缩,更新新生成边的减面累计误差并存入上述最小堆中,不断减面直至边数达到预设范围。Step 3: Read the cluster group data obtained in step 2, traverse each cluster group, read the triangle face vertices and index data of all clusters therein, and integrate them into several arrays; traverse the edge information of the cluster group, mark the vertices where these edges are located as "locked", and then combine the QEM (Quadic Error Metrics) face reduction algorithm to calculate the cumulative face reduction error for all edges in the cluster group, and store the error in a minimum heap data structure; then take out the edges with the smallest cumulative error in turn for collapse, update the cumulative face reduction error of the newly generated edges and store them in the above minimum heap, and continue to reduce faces until the number of edges reaches the preset range.
步骤三是核心发明部分之二,在步骤二的基础上完成了减面的部分,其形式如图2的中、右两图。步骤二和步骤三引入了簇和簇组的形式并进行减面,令有向无环图的LOD生成结构取缔了传统LOD树状的生成结构,有向无环图的优势是打破了树状结构中,父单元必须由固定数量的子单元构成的局限性,使得新生成的三角面分布更自由、更均匀;同时,步骤三的簇组锁边操作为同个模型上多层级LOD共存提供了可能,这使得不同LOD层级的边缘也能够贴合,进而也就在LOD层级过渡中,获得了更平滑的视觉效果。Step three is the second part of the core invention. On the basis of step two, the face reduction part is completed, and its form is shown in the middle and right figures of Figure 2. Steps 2 and 3 introduce the form of clusters and cluster groups and reduce faces, so that the LOD generation structure of the directed acyclic graph replaces the traditional LOD tree-like generation structure. The advantage of the directed acyclic graph is that it breaks the limitation that the parent unit must be composed of a fixed number of child units in the tree structure, so that the newly generated triangular faces are distributed more freely and evenly; at the same time, the cluster group locking operation in step three makes it possible for multiple levels of LOD to coexist on the same model, which makes the edges of different LOD levels fit together, and thus obtains a smoother visual effect in the LOD level transition.
所述步骤三包括以下子步骤:The step three includes the following sub-steps:
(3.1)遍历每个簇组,读取其中所有簇的三角面顶点属性和索引数据,并遍历簇组的边缘信息,将这些边所在顶点标记为“锁定”;(3.1) Traverse each cluster group, read the triangle vertex attributes and index data of all clusters, and traverse the edge information of the cluster group, marking the vertices where these edges are located as "locked";
(3.2)结合QEM减面算法优势之一是利用二次型矩阵计算来优化计算二次方程的计算开销,遍历簇组中所有三角面,利用该三角面的三个顶点,计算该三角面所在面的二次型表示方式,并记录于一矩阵中;(3.2) One of the advantages of the QEM face reduction algorithm is that it uses quadratic matrix calculation to optimize the computational overhead of quadratic equations. It traverses all triangular faces in the cluster group, uses the three vertices of the triangular face, calculates the quadratic representation of the face where the triangular face is located, and records it in a matrix;
(3.3)遍历所有边,若该边中任意一点存在“锁定”标记,则其减面累计误差设为一极大值;若无“锁定”标记,则获取该边所含两个顶点周围的所有邻接三角面,利用所述2)中预计算的二次型矩阵计算这些邻接三角面的累计二次型矩阵,利用该矩阵结合QEM减面算法求得新生成的顶点位置;(3.3) Traverse all edges. If there is a "lock" mark at any point on the edge, the cumulative error of face reduction is set to a maximum value; if there is no "lock" mark, obtain all adjacent triangular faces around the two vertices contained in the edge, use the quadratic matrix pre-calculated in 2) to calculate the cumulative quadratic matrix of these adjacent triangular faces, and use this matrix combined with the QEM face reduction algorithm to obtain the newly generated vertex position;
(3.4)判断新生成顶点的合法性,遍历所述步骤(3.3)中获得的所有邻接三角面,先通过原顶点和三角面其他两顶点的向量的叉积计算法线向量n1,再通过新生成顶点和三角面其他两顶点的向量的叉积计算新的法线向量n2,计算法线向量n1和n2的点积,若为负则表示新生成的三角面被翻转,即新顶点不合法,随后为该边累计误差增加100.0,以降低其权重;(3.4) Determine the legality of the newly generated vertex, traverse all adjacent triangles obtained in step (3.3), first calculate the normal vector n1 by the cross product of the vectors of the original vertex and the other two vertices of the triangle, then calculate the new normal vector n2 by the cross product of the vectors of the newly generated vertex and the other two vertices of the triangle, calculate the dot product of the normal vectors n1 and n2, if it is negative, it means that the newly generated triangle is flipped, that is, the new vertex is illegal, then increase the accumulated error of the edge by 100.0 to reduce its weight;
(3.5)记录所有边的索引和其减面累计误差的映射关系,并存入一最小堆数据结构中;(3.5) Record the mapping relationship between the index of all edges and their cumulative error of subtracting faces, and store them in a minimum heap data structure;
(3.6)从最小堆中取出减面累计误差最小的边的索引,去除该边两个顶点在几何数据中的内容,并将该边所有邻接三角面的对应旧顶点改变为QEM算法计算获得的新生成的顶点,并将该顶点数据加入几何数据中,同时计算所有新生成边的减面累计误差,并将该边的索引和误差值的映射关系存入所述步骤(3.5)的最小堆中;(3.6) Take out the index of the edge with the smallest cumulative error of face reduction from the minimum heap, remove the contents of the two vertices of the edge in the geometric data, and change the corresponding old vertices of all adjacent triangles of the edge to newly generated vertices calculated by the QEM algorithm, and add the vertex data to the geometric data, and calculate the cumulative error of face reduction of all newly generated edges, and store the mapping relationship between the index of the edge and the error value in the minimum heap of step (3.5);
(3.7)重复所述步骤(3.6),直至现有边数不超过预设的目标边数,遍历所有顶点的索引,利用哈希函数对顶点进行去重,将更新后的顶点属性和索引数据进行封装。(3.7) Repeat step (3.6) until the current number of edges does not exceed the preset target number of edges, traverse the indexes of all vertices, use the hash function to deduplicate the vertices, and encapsulate the updated vertex attributes and index data.
步骤四:重复所述步骤二和步骤三,不断处理新生成的三角面数据,直至生成4级LOD结构,将该部分几何数据进行组织,先依次记录簇数、簇组数、簇组数据偏移值、下一个构件数据的偏移值,随后依次存储构件网格的包围盒数据、簇的几何数据、簇组的几何数据,最终将所有LOD几何数据封装为一个二进制中间文件。Step 4: Repeat steps 2 and 3, continuously process the newly generated triangular surface data, until a 4-level LOD structure is generated, organize this part of the geometric data, first record the number of clusters, the number of cluster groups, the offset value of the cluster group data, and the offset value of the next component data, then store the bounding box data of the component mesh, the geometric data of the cluster, and the geometric data of the cluster group in sequence, and finally encapsulate all LOD geometric data into a binary intermediate file.
步骤四重复步骤二和步骤三,生成了多层级的LOD结构。步骤二植入的簇和簇组所带来的有向无环图结构使得步骤四生成的各层LOD模型中,上下层级的边缘之间无明显关联,具体如图3所示,这使得在LOD生成过程中,边缘高频信息不会随着层级升高而堆积,最终导致补丁状的突兀视觉情况。此外,步骤四将LOD数据封装为中间文件,当没有进一步的网格调整时,后续可直接调用中间文件数据而避免重复进行计算生成。Step 4 repeats steps 2 and 3 to generate a multi-level LOD structure. The directed acyclic graph structure brought by the clusters and cluster groups implanted in step 2 makes the edges of the upper and lower levels in the LOD models of each layer generated in step 4 have no obvious connection, as shown in Figure 3. This makes it so that in the LOD generation process, the high-frequency edge information will not accumulate as the level increases, eventually leading to a patch-like abrupt visual situation. In addition, step 4 encapsulates the LOD data as an intermediate file. When there is no further mesh adjustment, the intermediate file data can be directly called later to avoid repeated calculation and generation.
所述步骤四包括以下子步骤:The step 4 includes the following sub-steps:
(4.1)读取将新生成三角面的顶点属性和索引标号,循环操作步骤二和步骤三4次,生成4级LOD结构,并封装该部分几何数据;(4.1) Read the vertex attributes and index numbers of the newly generated triangle, loop steps 2 and 3 for 4 times, generate a 4-level LOD structure, and encapsulate the geometric data;
(4.2)创建一个32位无符号整型数组用于进行数据封装,遍历所有复杂构件的LOD数据;(4.2) Create a 32-bit unsigned integer array for data encapsulation and traverse the LOD data of all complex components;
(4.3)依次存入当前构件的簇群数量、簇组数量、簇组数据偏移值与下一个构件数据的偏移值,随后存入当前构件网格的包围盒数据;(4.3) The number of clusters, the number of cluster groups, the offset value of cluster group data and the offset value of the next component data of the current component are stored in sequence, and then the bounding box data of the current component grid is stored;
(4.4)依次存入当前构件的簇群顶点数、顶点属性数据偏移值、三角面数、顶点索引数据偏移值、簇的包围球数据、累计减面误差、所属簇组索引、所处LOD层级等;(4.4) The number of cluster vertices, vertex attribute data offset value, number of triangles, vertex index data offset value, cluster bounding sphere data, cumulative surface reduction error, cluster group index, LOD level, etc. of the current component are stored in sequence;
(4.5)依次存入当前构件的簇组群中簇组所包含的簇数、其相关的簇数据偏移值、簇组中最大累计减面误差、簇组所处LOD层级,以及簇组的包围球信息等;(4.5) The number of clusters contained in the cluster group of the current component, the offset value of the related cluster data, the maximum cumulative surface reduction error in the cluster group, the LOD level of the cluster group, and the bounding sphere information of the cluster group are stored in sequence;
(4.6)依次存入当前构件的簇群顶点属性数据、顶点索引标号数据;(4.6) storing the cluster vertex attribute data and vertex index label data of the current component in sequence;
(4.7)依次存入当前构件的簇组群中簇组所含簇的索引数据;(4.7) storing the index data of the clusters contained in the cluster group of the current component in sequence;
(4.8)将上述数组数据封装为二进制文件。(4.8) Encapsulate the above array data into a binary file.
步骤五:判断是否已有LOD中间文件或是否需要重建LOD中间文件,若已存在,则利用步骤四的编码方式读取该中间文件几何数据,并将其存储于图形接口的缓冲中;使用计算着色器进行视锥剔除,判断构件网格可见性;若可见则进行LOD层级筛选,对于筛选通过的簇组,提取其所包含的簇,进行视锥剔除与遮挡剔除,若均通过,则视为可见,将这些簇的索引标号记录于一缓冲中,随后,使用顶点着色器读取该缓冲获得索引标号,并借此从几何数据缓冲中读取对应顶点属性与顶点索引进行实例化渲染。Step 5: Determine whether there is an LOD intermediate file or whether it needs to be rebuilt. If it already exists, use the encoding method of step 4 to read the geometric data of the intermediate file and store it in the buffer of the graphics interface; use the compute shader to perform frustum culling to determine the visibility of the component mesh; if it is visible, perform LOD level screening, and for the cluster group that passes the screening, extract the clusters it contains, perform frustum culling and occlusion culling. If both pass, it is considered visible, and the index numbers of these clusters are recorded in a buffer. Subsequently, use the vertex shader to read the buffer to obtain the index number, and use it to read the corresponding vertex attributes and vertex indices from the geometric data buffer for instantiated rendering.
步骤五是充分发挥LOD结构优势的主要过程,在实时浏览阶段动态筛选合适的LOD层级并对不可见部分进行剔除,以避免冗余三角面的渲染开销,提高了渲染性能,效果如图4。Step five is the main process of giving full play to the advantages of the LOD structure. In the real-time browsing stage, the appropriate LOD level is dynamically selected and the invisible parts are culled to avoid the rendering overhead of redundant triangles and improve the rendering performance. The effect is shown in Figure 4.
所述步骤五包括以下子步骤:The step five includes the following sub-steps:
(5.1)判断是否已有LOD中间文件或是否需要重建LOD中间文件,若不存在或需要重建LOD结构,则返回步骤一,反之,根据步骤四的编码方式读取该中间文件几何数据,并将其存储于图形接口的缓冲中;(5.1) Determine whether there is an LOD intermediate file or whether the LOD intermediate file needs to be rebuilt. If it does not exist or the LOD structure needs to be rebuilt, return to step 1. Otherwise, read the geometric data of the intermediate file according to the encoding method of step 4 and store it in the buffer of the graphics interface;
(5.2)调用图形接口的计算着色器执行指令,执行任务数量为复杂构件数除以32并向上取整,其中计算着色器中,每个任务处理小组使用32个线程;(5.2) Call the compute shader execution instruction of the graphics interface. The number of tasks to be executed is the number of complex components divided by 32 and rounded up. In the compute shader, each task processing group uses 32 threads.
(5.3)在计算着色器中通过全局的线程索引获得当前构件的索引,通过该索引在缓冲数据中读取该构件的包围盒信息,并进行视锥剔除操作,若通过则视为可见,若未通过则丢弃;(5.3) In the compute shader, the index of the current component is obtained through the global thread index, and the bounding box information of the component is read in the buffer data through the index, and the frustum culling operation is performed. If it passes, it is considered visible, and if it fails, it is discarded;
(5.4)对于可见构件,通过其索引在缓冲数据中读取该构件的簇组包围球数据和减面累计误差数据,随后通过该包围球在相机空间中与相机的距离,观察视角,以及终端界面高度,计算该距离下的目标减面误差,随后与该簇组的减面累计误差进行比较,此时存在两种状况,一种是该簇组和其簇的减面累计误差都大于或小于目标减面误差,另一种是簇组的减面累计误差大于而其部分簇小于,前者可能会导致选择了过高或过低的LOD层级,而后者恰好意味着边界情况,因此当簇组的减面累计误差大于目标减面误差时,遍历该簇组的簇进行误差判断,经过筛选或,将有效簇的索引进行存储;(5.4) For visible components, read the cluster group bounding sphere data and the cumulative face reduction error data of the component in the buffer data through its index, and then calculate the target face reduction error at this distance through the distance between the bounding sphere and the camera in the camera space, the observation angle, and the terminal interface height, and then compare it with the cumulative face reduction error of the cluster group. At this time, there are two situations. One is that the cumulative face reduction error of the cluster group and its clusters is greater than or less than the target face reduction error, and the other is that the cumulative face reduction error of the cluster group is greater than and some of its clusters are less than. The former may lead to the selection of too high or too low LOD levels, and the latter just means the boundary situation. Therefore, when the cumulative face reduction error of the cluster group is greater than the target face reduction error, traverse the clusters of the cluster group to make error judgments, and after screening or, store the indexes of the valid clusters;
(5.5)读取有效簇的索引数据,从缓冲中读取其包围球信息,对其进行视锥剔除和遮挡剔除,若通过,则将其索引记录于一待渲染簇的索引缓冲中;(5.5) Read the index data of the valid cluster, read its bounding sphere information from the buffer, perform frustum culling and occlusion culling on it, and if it passes, record its index in the index buffer of a cluster to be rendered;
(5.6)读取待渲染簇的索引缓冲中索引数量,调用图形接口的实例化渲染指令,顶点数设为64*3,因为在步骤一中预设一个簇包含64个三角面,实例数设为上述读取的索引数量,随后在顶点着色器中读取待渲染簇的索引缓冲中的索引标号,并基于此,从所述步骤(5.1)的缓冲中读取该簇的顶点属性和索引标号,随后进行渲染。(5.6) Read the number of indices in the index buffer of the cluster to be rendered, call the instantiation rendering instruction of the graphics interface, set the number of vertices to 64*3, because in step one it is preset that a cluster contains 64 triangles, and the number of instances is set to the number of indices read above. Then, read the index number in the index buffer of the cluster to be rendered in the vertex shader, and based on this, read the vertex attributes and index numbers of the cluster from the buffer of step (5.1), and then render.
本文中所描述的具体实施例仅仅是对本发明作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。The specific embodiments described herein are merely examples of the present invention. A person skilled in the art may make various modifications or additions to the specific embodiments described or replace them in a similar manner without departing from the spirit of the present invention or exceeding the scope defined by the appended claims.
尽管本文较多地使用了三角面、簇、簇组等术语,但并不排除使用其它术语的可能性。使用这些术语仅仅是为了更方便地描述和解释本发明的本质;把它们解释成任何一种附加的限制都是与本发明精神相违背的。Although the terms such as triangle face, cluster, cluster group etc. are used more frequently in this paper, the possibility of using other terms is not excluded. These terms are used only to more conveniently describe and explain the essence of the present invention; interpreting them as any additional limitation is contrary to the spirit of the present invention.
Claims (6)
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202410595615.7A CN118691728A (en) | 2024-05-14 | 2024-05-14 | A cluster-based IFC model component-level LOD generation and use method |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202410595615.7A CN118691728A (en) | 2024-05-14 | 2024-05-14 | A cluster-based IFC model component-level LOD generation and use method |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| CN118691728A true CN118691728A (en) | 2024-09-24 |
Family
ID=92773194
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202410595615.7A Pending CN118691728A (en) | 2024-05-14 | 2024-05-14 | A cluster-based IFC model component-level LOD generation and use method |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN118691728A (en) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN119991907A (en) * | 2025-04-15 | 2025-05-13 | 北京洛斯达科技发展有限公司 | A new energy station rendering method based on virtual micropolygon geometry technology |
-
2024
- 2024-05-14 CN CN202410595615.7A patent/CN118691728A/en active Pending
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN119991907A (en) * | 2025-04-15 | 2025-05-13 | 北京洛斯达科技发展有限公司 | A new energy station rendering method based on virtual micropolygon geometry technology |
| CN119991907B (en) * | 2025-04-15 | 2025-07-08 | 北京洛斯达科技发展有限公司 | A new energy station rendering method based on virtual micropolygon geometry technology |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN109145366B (en) | Lightweight visualization method of building information model based on Web3D | |
| US8725466B2 (en) | System and method for hybrid solid and surface modeling for computer-aided design environments | |
| US8570322B2 (en) | Method, system, and computer program product for efficient ray tracing of micropolygon geometry | |
| US7561156B2 (en) | Adaptive quadtree-based scalable surface rendering | |
| CN112347546A (en) | BIM rendering method, device and computer-readable storage medium based on lightweight device | |
| CN101281654A (en) | A large-scale complex 3D scene processing method based on octree | |
| Mobley et al. | An object oriented approach to geometry defeaturing for finite element meshing. | |
| CN106447768B (en) | Method suitable for parallel drawing of three-dimensional model in three-dimensional scene | |
| CN116502303B (en) | A BIM model visualization method based on scene-level instance information enhancement | |
| CN112070909A (en) | Engineering three-dimensional model LOD output method based on 3D Tiles | |
| CN113643191B (en) | Smoothing method, device and electronic device for voxel model | |
| CN110378992A (en) | Towards large scene model web terminal dynamic rendering LOD processing method | |
| US8207965B2 (en) | Rewritable compression of triangulated data | |
| CN117036567A (en) | Three-dimensional scene model rendering method | |
| CN118691728A (en) | A cluster-based IFC model component-level LOD generation and use method | |
| CN116912457A (en) | A topology reconstruction method and system based on external memory octree STL model | |
| Leng et al. | Rapid simplification of 3D geometry model of mechanisms in the digital twins-driven manufacturing system design | |
| WO2023061364A1 (en) | Model establishment method and related apparatus | |
| CN111243094A (en) | An accurate voxelization method of 3D model based on lighting method | |
| WO2024037116A9 (en) | Three-dimensional model rendering method and apparatus, electronic device and storage medium | |
| CN116310119A (en) | Self-adaptive distance field construction method based on bounding volume hierarchy | |
| CN116338665A (en) | Ray tracing apparatus and method incorporating directed distance field ray casting | |
| CN114418829A (en) | Static scene occlusion processing method and device, electronic equipment and readable medium | |
| CN113470177A (en) | Three-dimensional model geometric self-adaptive simplification method in GIS system | |
| Xiaodong et al. | Mesh simplification based on super-face and genetic algorithm in reverse engineering |
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 |