技术领域Technical Field
本发明涉及BIM模型处理技术领域,尤其涉及一种BIM快速轻量化的方法。The present invention relates to the technical field of BIM model processing, and in particular to a BIM fast and lightweight method.
背景技术Background Art
建筑信息模型(BIM)技术在建筑设计、施工和运营管理中发挥着重要作用。然而,BIM模型通常包含大量的详细信息,导致文件体积庞大和处理效率低下。这在移动设备或低配置计算机上使用时尤其明显。因此,开发一种快速轻量化BIM模型的方法,能够在保留必要信息的同时显著降低模型的复杂度和文件大小,是非常必要的。BIM轻量化从技术方案上,可分为传统的ActiveX插件技术和WEBGL技术两种。传统的ActiveX插件技术因技术老旧,存在巨大安全隐患,已经逐渐被淘汰。采用WebGL技术的BIM轻量化代表了最先进的技术和方向,无数据安全隐患、不仅适用于各类WEB浏览器,也适用于移动App应用,是当前BIM轻量化产品的最佳选择。Building Information Modeling (BIM) technology plays an important role in building design, construction, and operation management. However, BIM models usually contain a lot of detailed information, resulting in large file sizes and inefficient processing. This is especially evident when used on mobile devices or low-configuration computers. Therefore, it is very necessary to develop a method for fast and lightweight BIM models that can significantly reduce the complexity and file size of the model while retaining the necessary information. From a technical perspective, BIM lightweighting can be divided into two types: traditional ActiveX plug-in technology and WEBGL technology. Traditional ActiveX plug-in technology has been gradually eliminated due to its outdated technology and huge security risks. BIM lightweighting using WebGL technology represents the most advanced technology and direction. It has no data security risks and is not only suitable for various WEB browsers, but also for mobile App applications. It is the best choice for current BIM lightweight products.
BIM轻量化的传统方法虽然在一定程度上解决了模型文件过大、传输和处理效率低的问题,但也存在一些缺陷,网格简化和数据压缩,往往会导致几何信息和属性信息的丢失或精度降低,可能会导致模型无法完整表达设计和施工信息,影响后续的使用和维护,传统的轻量化算法在处理复杂和大规模的BIM模型时,效率较低,处理时间较长,在实时应用中(如VR/AR)、移动设备或网页端展示时,处理效率低会导致用户体验不佳。不同的轻量化工具和算法可能会产生不同格式的输出文件,这些文件在不同平台和软件之间的兼容性可能存在问题,需要额外的转换步骤和工具来确保兼容性,增加了工作复杂度。目前没有统一的标准来规范BIM轻量化过程中的数据筛选、简化和压缩方法,缺乏标准化可能导致数据的一致性和完整性问题,影响模型的可靠性和可用性。Although the traditional BIM lightweight method has solved the problems of large model files, low transmission and processing efficiency to a certain extent, it also has some defects. Mesh simplification and data compression often lead to the loss or reduction of geometric information and attribute information, which may cause the model to be unable to fully express the design and construction information, affecting subsequent use and maintenance. Traditional lightweight algorithms are inefficient and take a long time to process complex and large-scale BIM models. When displayed in real-time applications (such as VR/AR), mobile devices or web pages, low processing efficiency will lead to poor user experience. Different lightweight tools and algorithms may produce output files in different formats. There may be compatibility issues between these files on different platforms and software, requiring additional conversion steps and tools to ensure compatibility, which increases the complexity of the work. At present, there is no unified standard to regulate the data screening, simplification and compression methods in the BIM lightweight process. The lack of standardization may lead to data consistency and integrity issues, affecting the reliability and availability of the model.
发明内容Summary of the invention
本发明提供了一种BIM快速轻量化的方法,用于解决当前BIM模型在实际应用中由于体积庞大、结构复杂而导致的处理效率低下问题。通过本发明的方法,能够显著减小BIM模型的文件大小,提高其在各种设备上的处理和交互效率,从而提升建筑设计、施工和运营管理过程中的工作效率和用户体验。The present invention provides a method for rapid and lightweight BIM, which is used to solve the problem of low processing efficiency caused by the large size and complex structure of the current BIM model in practical applications. Through the method of the present invention, the file size of the BIM model can be significantly reduced, and its processing and interaction efficiency on various devices can be improved, thereby improving the work efficiency and user experience in the process of building design, construction and operation management.
第一方面,本发明提供了一种BIM快速轻量化的方法,所述BIM快速轻量化的方法包括:In a first aspect, the present invention provides a method for rapid lightweighting of BIM, the method for rapid lightweighting of BIM comprising:
确定轻量化目标,并对BIM模型数据进行分类筛选,得到初始几何数据、初始属性数据和辅助数据;Determine lightweight goals, and classify and screen BIM model data to obtain initial geometry data, initial attribute data, and auxiliary data;
采用Quadric Error Metrics算法对所述初始几何数据进行网格简化处理,得到第一几何数据;Using a Quadric Error Metrics algorithm to perform mesh simplification processing on the initial geometric data to obtain first geometric data;
通过Decimation算法对所述第一几何数据进行多边形边缘删除和重新三角化处理,得到第二几何数据;Deleting polygon edges and re-triangulating the first geometric data by using a Decimation algorithm to obtain second geometric data;
使用Draco工具对所述第二几何数据进行压缩处理,得到轻量化几何数据,并对所述初始属性数据进行JSON格式转换和压缩处理,得到轻量化属性数据;Using the Draco tool to compress the second geometric data to obtain lightweight geometric data, and converting and compressing the initial attribute data into JSON format to obtain lightweight attribute data;
对所述轻量化几何数据和所述轻量化属性数据进行格式转换,得到轻量化BIM模型,并对所述轻量化BIM模型进行分层细节处理,生成多级别细节的轻量化模型;Performing format conversion on the lightweight geometric data and the lightweight attribute data to obtain a lightweight BIM model, and performing hierarchical detail processing on the lightweight BIM model to generate a lightweight model with multiple levels of details;
对所述多级别细节的轻量化模型进行空间分块和优化,得到分块的轻量化模型,并将所述分块的轻量化模型导入渲染引擎中进行实时渲染,得到实时渲染结果。The lightweight model with multiple levels of details is spatially divided and optimized to obtain a divided lightweight model, and the divided lightweight model is imported into a rendering engine for real-time rendering to obtain a real-time rendering result.
第二方面,本发明提供了一种BIM快速轻量化的装置,所述BIM快速轻量化的装置包括:In a second aspect, the present invention provides a BIM fast lightweight device, the BIM fast lightweight device comprising:
分类筛选模块,用于确定轻量化目标,并对BIM模型数据进行分类筛选,得到初始几何数据、初始属性数据和辅助数据;The classification and screening module is used to determine the lightweight target and classify and screen the BIM model data to obtain the initial geometry data, initial attribute data and auxiliary data;
网格简化模块,用于采用Quadric Error Metrics算法对所述初始几何数据进行网格简化处理,得到第一几何数据;A mesh simplification module, used for performing mesh simplification processing on the initial geometric data by using a Quadric Error Metrics algorithm to obtain first geometric data;
处理模块,用于通过Decimation算法对所述第一几何数据进行多边形边缘删除和重新三角化处理,得到第二几何数据;A processing module, configured to perform polygon edge deletion and re-triangulation processing on the first geometric data by using a Decimation algorithm to obtain second geometric data;
压缩模块,用于使用Draco工具对所述第二几何数据进行压缩处理,得到轻量化几何数据,并对所述初始属性数据进行JSON格式转换和压缩处理,得到轻量化属性数据;A compression module, used to compress the second geometric data using a Draco tool to obtain lightweight geometric data, and to convert and compress the initial attribute data into a JSON format to obtain lightweight attribute data;
转换模块,用于对所述轻量化几何数据和所述轻量化属性数据进行格式转换,得到轻量化BIM模型,并对所述轻量化BIM模型进行分层细节处理,生成多级别细节的轻量化模型;A conversion module, used for performing format conversion on the lightweight geometric data and the lightweight attribute data to obtain a lightweight BIM model, and performing hierarchical detail processing on the lightweight BIM model to generate a lightweight model with multiple levels of details;
渲染模块,用于对所述多级别细节的轻量化模型进行空间分块和优化,得到分块的轻量化模型,并将所述分块的轻量化模型导入渲染引擎中进行实时渲染,得到实时渲染结果。The rendering module is used to spatially divide and optimize the lightweight model with multiple levels of details to obtain a divided lightweight model, and import the divided lightweight model into a rendering engine for real-time rendering to obtain a real-time rendering result.
本发明提供的技术方案中,本发明的文件大小显著减小,通过几何简化、数据压缩和格式转换,BIM模型的文件大小大幅度减小。减少的文件大小有助于更高效地进行数据传输和存储,特别是在带宽有限的网络环境中。提高渲染和加载性能,通过网格简化和使用层次细节模型(LOD),显著提升了模型在各种设备(如移动设备、网页浏览器、VR/AR设备)上的渲染和加载性能。用户能够更快速地查看和操作BIM模型,改善了用户体验。保留关键数据,尽管进行了轻量化处理,但关键的几何信息和属性数据得以保留,确保模型在准确性和完整性方面没有重大损失。通过数据筛选和分类,保留了项目所需的核心数据,支持后续的设计、施工和运维工作。提高数据兼容性和互操作性,转换为通用的轻量化数据格式(如glTF、IFC、OBJ等),提高了模型在不同平台和应用程序之间的兼容性和互操作性。轻量化后的模型可以在多种软件环境中使用,减少了数据转换和适配的复杂性。优化的工作流程,通过标准化的轻量化流程和工具集成,简化了BIM模型处理的工作流程。工作流程优化后,团队可以更高效地进行BIM数据管理和应用,减少了手动操作和出错的可能性。支持动态数据和实时应用,通过空间分块和索引机制,支持动态数据和实时应用场景。在智能建筑、智慧城市等应用中,可以高效处理和展示实时变化的数据,提升决策的及时性和准确性。减少硬件资源需求,轻量化后的BIM模型对硬件资源(如存储、内存、处理器)的需求降低,适用于各种计算能力的设备。使得BIM技术能够在更多类型的设备上应用,包括低端计算设备和移动终端。更便捷的协作,轻量化后的模型更容易在团队之间共享和协作,减少了文件传输和加载的时间。支持多团队、多专业之间的高效协作,提升项目整体的工作效率。In the technical solution provided by the present invention, the file size of the present invention is significantly reduced. Through geometric simplification, data compression and format conversion, the file size of the BIM model is greatly reduced. The reduced file size helps to transmit and store data more efficiently, especially in a network environment with limited bandwidth. Improve rendering and loading performance. By simplifying the mesh and using the level of detail model (LOD), the rendering and loading performance of the model on various devices (such as mobile devices, web browsers, VR/AR devices) is significantly improved. Users can view and operate BIM models more quickly, improving user experience. Retain key data. Despite the lightweight processing, key geometric information and attribute data are retained to ensure that the model has no significant loss in accuracy and integrity. Through data screening and classification, the core data required for the project is retained to support subsequent design, construction and operation and maintenance work. Improve data compatibility and interoperability, convert to a common lightweight data format (such as glTF, IFC, OBJ, etc.), and improve the compatibility and interoperability of the model between different platforms and applications. The lightweight model can be used in a variety of software environments, reducing the complexity of data conversion and adaptation. Optimized workflows simplify the workflow of BIM model processing through standardized lightweight processes and tool integration. After the workflow is optimized, the team can manage and apply BIM data more efficiently, reducing the possibility of manual operations and errors. Support dynamic data and real-time applications, through spatial block and indexing mechanisms, support dynamic data and real-time application scenarios. In applications such as smart buildings and smart cities, real-time changing data can be efficiently processed and displayed to improve the timeliness and accuracy of decision-making. Reduce the demand for hardware resources. The lightweight BIM model has lower demand for hardware resources (such as storage, memory, and processors) and is suitable for devices with various computing capabilities. BIM technology can be applied on more types of devices, including low-end computing devices and mobile terminals. More convenient collaboration. The lightweight model is easier to share and collaborate between teams, reducing the time for file transfer and loading. Support efficient collaboration between multiple teams and multiple disciplines to improve the overall work efficiency of the project.
附图说明BRIEF DESCRIPTION OF THE DRAWINGS
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以基于这些附图获得其他的附图。In order to more clearly illustrate the technical solutions of the embodiments of the present invention, the accompanying drawings required for use in the description of the embodiments will be briefly introduced below. Obviously, the accompanying drawings described below are some embodiments of the present invention. For ordinary technicians in this field, other accompanying drawings can be obtained based on these accompanying drawings without paying creative work.
图1为本发明实施例中BIM快速轻量化的方法的一个实施例示意图;FIG1 is a schematic diagram of an embodiment of a method for rapid lightweighting of BIM in an embodiment of the present invention;
图2为本发明实施例中BIM快速轻量化的装置的一个实施例示意图。FIG. 2 is a schematic diagram of an embodiment of a device for rapid lightweighting of BIM in an embodiment of the present invention.
具体实施方式DETAILED DESCRIPTION
本发明实施例提供了一种BIM快速轻量化的方法。本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”或“具有”及其任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。An embodiment of the present invention provides a method for fast lightweighting of BIM. The terms "first", "second", "third", "fourth", etc. (if any) 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 described here can be implemented in an order other than that illustrated or described here. In addition, the terms "including" or "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 that are clearly listed, but may include other steps or units that are not clearly listed or inherent to these processes, methods, products or devices.
为便于理解,下面对本发明实施例的具体流程进行描述,请参阅图1,本发明实施例中BIM快速轻量化的方法的一个实施例包括:For ease of understanding, the specific process of an embodiment of the present invention is described below. Please refer to FIG1 . An embodiment of a method for rapid lightweighting of BIM in an embodiment of the present invention includes:
步骤S101、确定轻量化目标,并对BIM模型数据进行分类筛选,得到初始几何数据、初始属性数据和辅助数据;Step S101, determine the lightweight target, and classify and screen the BIM model data to obtain initial geometry data, initial attribute data and auxiliary data;
可以理解的是,本发明的执行主体可以为BIM快速轻量化的装置,还可以是终端或者服务器,具体此处不做限定。本发明实施例以服务器为执行主体为例进行说明。It is understandable that the execution subject of the present invention may be a BIM fast and lightweight device, or a terminal or a server, which is not limited here. The embodiment of the present invention is described by taking a server as the execution subject as an example.
具体的,明确轻量化目标,并根据轻量化目标对BIM模型数据进行数据结构分析,获取模型的拓扑结构和元素关系图。通过分析模型的几何形状、组件之间的连接关系和空间配置,了解模型的整体结构和各部分的相对重要性。根据已确定的元素关系图,对模型中的各个元素进行重要性评分,生成元素重要性排序列表。评分过程通常依赖于多个因素,如元素的功能、位置、使用频率以及对整体结构的影响等。基于元素重要性排序列表,设定第一保留阈值,对评分低于该阈值的模型元素进行标记,得到目标元素集合。对目标元素集合中的几何数据进行边界提取,得到一个完整的边界曲线集。对边界曲线集进行点集分析,通过设定容差值并迭代计算每个点到线段的垂直距离,描绘出目标边界轮廓。基于该目标边界轮廓,对原始几何面进行重构,生成一个更为简化的目标面片集合。在此基础上,为了优化模型的显示效果和减少数据量,对目标面片集合进行法向量分析,计算相邻面片之间的法向量夹角。如果发现夹角小于预设的阈值,则合并这些相邻面片,获得初始几何数据。同时,对BIM模型中的属性数据进行数据冗余分析。通过计算各个属性字段的使用频率和信息熵,生成一个属性重要性评分表。基于该评分表,设定一个第二保留阈值,筛选出那些评分高于该阈值的属性字段,得到初始属性数据。对模型中的材质、纹理和光照信息进行分辨率和复杂度分析。根据预设的目标比例,对这些数据将进行降采样和合并处理,生成辅助数据,从而简化模型的材质和纹理信息,并减少计算和渲染的负担,提升模型的轻量化程度。Specifically, the lightweight target is clearly defined, and the data structure of the BIM model data is analyzed according to the lightweight target to obtain the topological structure and element relationship diagram of the model. By analyzing the geometric shape of the model, the connection relationship between components and the spatial configuration, the overall structure of the model and the relative importance of each part are understood. According to the determined element relationship diagram, the importance of each element in the model is scored to generate an element importance ranking list. The scoring process usually depends on multiple factors, such as the function, location, frequency of use and impact on the overall structure of the element. Based on the element importance ranking list, the first retention threshold is set, and the model elements with scores below the threshold are marked to obtain the target element set. The boundary of the geometric data in the target element set is extracted to obtain a complete boundary curve set. The boundary curve set is analyzed by point set, and the target boundary contour is depicted by setting the tolerance value and iteratively calculating the vertical distance from each point to the line segment. Based on the target boundary contour, the original geometric surface is reconstructed to generate a more simplified target face set. On this basis, in order to optimize the display effect of the model and reduce the amount of data, the target face set is analyzed by normal vector, and the normal vector angle between adjacent faces is calculated. If the angle is found to be less than the preset threshold, these adjacent facets are merged to obtain the initial geometric data. At the same time, data redundancy analysis is performed on the attribute data in the BIM model. By calculating the usage frequency and information entropy of each attribute field, an attribute importance score table is generated. Based on the score table, a second retention threshold is set to filter out those attribute fields with scores higher than the threshold to obtain the initial attribute data. Resolution and complexity analysis is performed on the material, texture and lighting information in the model. According to the preset target ratio, these data will be downsampled and merged to generate auxiliary data, thereby simplifying the material and texture information of the model, reducing the burden of calculation and rendering, and improving the lightweight degree of the model.
步骤S102、采用Quadric Error Metrics算法对初始几何数据进行网格简化处理,得到第一几何数据;Step S102, using the Quadric Error Metrics algorithm to perform mesh simplification processing on the initial geometric data to obtain first geometric data;
具体的,对初始几何数据中的每个顶点进行分析和计算。对于每个顶点vi,计算其对应的平面方程集合Pi,描述所有与vi关联的平面。vi表示第i个顶点的三维坐标(xi,yi,zi),而Pi则由这些顶点的法向量分量a,b,c和常数项d组成,其中平面方程的一般形式为ax+by+cz+d=0。a,b,c是法向量的分量,满足单位法向量条件,即a2+b2+c2=1,而d则表示平面到原点的有符号距离。对每个顶点vi,根据其关联平面集Pi计算对应的二次误差矩阵Qi。矩阵Qi通过将所有平面方程系数向量[a,b,c,d]T进行外积得到,其中ai为平面方程系数向量。Qi=Σ(ai*aiT),ai代表的是平面方程系数向量[a,b,c,d]T,而Qi是一个4x4的对称矩阵,用来描述顶点vi到其关联平面的距离平方和。矩阵的转置操作在这里表示为T。在得到顶点的二次误差矩阵后,针对网格中的每一条边e(v1,v2),计算一个最优收缩点v'。这个最优收缩点的求解通过方程(Q1+Q2)v'=0进行,其中Q1和Q2分别是边e两个端点v1和v2的二次误差矩阵。如果方程无解,则从v1、v2和边的中点中选择一个使误差最小的点作为最优收缩点v'。通过这种方法,确定在边收缩过程中,几何误差最小化的顶点位置。计算每条边e的收缩代价Δ(v1,v2),这个收缩代价表示将边e收缩到最优收缩点v'时所引入的几何误差。将所有边的收缩代价整理成一个边收缩代价列表后,构建一个第一待删除边优先队列。该优先队列中的边按照收缩代价Δ(v1,v2)从小到大排序,使得最小代价的边能够优先进行处理。在这一过程中,从优先队列中提取收缩代价最小的边并执行边收缩操作,从而逐步简化网格的几何结构,减少顶点和面的数量。对简化后的局部网格结构进行拓扑一致性检查,修复非流形边和顶点,确保简化后的网格结构依然符合几何拓扑的基本要求,得到第一几何数据。Specifically, each vertex in the initial geometric data is analyzed and calculated. For each vertex vi, the corresponding plane equation set Pi is calculated to describe all planes associated with vi. vi represents the three-dimensional coordinates (xi, yi, zi) of the i-th vertex, and Pi consists of the normal vector components a, b, c and the constant term d of these vertices, where the general form of the plane equation is ax+by+cz+d=0. a, b, c are the components of the normal vector, satisfying the unit normal vector condition, that is, a2+b2+c2=1, and d represents the signed distance from the plane to the origin. For each vertex vi, the corresponding quadratic error matrix Qi is calculated according to its associated plane set Pi. The matrix Qi is obtained by taking the outer product of all plane equation coefficient vectors [a, b, c, d]T, where ai is the plane equation coefficient vector. Qi=Σ(ai*aiT), ai represents the plane equation coefficient vector [a, b, c, d]T , and Qi is a 4x4 symmetric matrix used to describe the sum of the squares of the distances from vertex vi to its associated plane. The transpose operation of the matrix is represented as T here. After obtaining the quadratic error matrix of the vertex, an optimal contraction point v' is calculated for each edge e (v1, v2) in the mesh. The solution to this optimal contraction point is performed by the equation (Q1+Q2)v'=0, where Q1 and Q2 are the quadratic error matrices of the two endpoints v1 and v2 of edge e, respectively. If the equation has no solution, a point with the smallest error is selected from v1, v2 and the midpoint of the edge as the optimal contraction point v'. In this way, the vertex position at which the geometric error is minimized during the edge contraction process is determined. The contraction cost Δ(v1, v2) of each edge e is calculated. This contraction cost represents the geometric error introduced when contracting the edge e to the optimal contraction point v'. After sorting the contraction costs of all edges into an edge contraction cost list, a first priority queue of edges to be deleted is constructed. The edges in the priority queue are sorted from small to large according to the contraction cost Δ(v1, v2), so that the edges with the smallest cost can be processed first. In this process, the edge with the smallest shrinkage cost is extracted from the priority queue and the edge shrinkage operation is performed, thereby gradually simplifying the geometric structure of the mesh and reducing the number of vertices and faces. The simplified local mesh structure is checked for topological consistency, and non-manifold edges and vertices are repaired to ensure that the simplified mesh structure still meets the basic requirements of geometric topology, and the first geometric data is obtained.
步骤S103、通过Decimation算法对第一几何数据进行多边形边缘删除和重新三角化处理,得到第二几何数据;Step S103, deleting polygon edges and re-triangulating the first geometric data by using a Decimation algorithm to obtain second geometric data;
具体的,对第一几何数据中的每个顶点进行顶点曲率计算,评估每个顶点在其邻域内的几何形态,生成顶点曲率集合。顶点曲率是描述顶点局部表面弯曲程度的重要指标,可以帮助识别在几何简化过程中哪些顶点可以被优先处理。根据顶点曲率集合,对网格中的每个边进行边重要度计算。边重要度通常由其两端顶点的曲率差异以及该边在整体几何形状中的作用来确定。通过计算这些边的重要度,生成边重要度列表,反映在网格简化过程中,各条边对保留整体几何形态的重要程度。基于边重要度列表构建最小堆。最小堆是一个数据结构,能够快速找到和移除最小元素,最小堆能够高效地按边重要度从小到大排序,形成一个第二待删除边优先队列。该队列中,最不重要的边排在最前面,优先进行处理。从第二待删除边优先队列中提取重要度最小的边时,判断删除该边是否会导致拓扑结构的变化。如果判断不会导致拓扑变化,则可以安全地将该边标记为待删除边,得到候选删除边。执行边坍缩操作,包括移除边和相应的顶点,从而简化网格结构。在每次边坍缩操作后,更新局部网格结构的状态,并重新计算每个顶点周围的顶点曲率和相关边的重要度。更新这些数据后,再次更新最小堆,得到一个新的待删除边优先队列。这个过程反复进行,直到达到预设的简化目标。在网格简化基本完成后,基于更新后的待删除边优先队列生成简化后的网格。由于简化过程可能会导致部分区域的网格不再满足拓扑要求,对简化后的网格进行局部重新三角化,以确保网格的拓扑结构保持一致性。在这一过程中,通过调整三角形的连接方式,优化网格的几何质量。对拓扑优化的网格执行边翻转操作,调整三角形的连接方式,以最小化表面误差和保持模型的细节,得到第二几何数据。Specifically, vertex curvature is calculated for each vertex in the first geometric data, the geometric form of each vertex in its neighborhood is evaluated, and a vertex curvature set is generated. Vertex curvature is an important indicator that describes the curvature degree of the local surface of the vertex, which can help identify which vertices can be processed first in the geometric simplification process. According to the vertex curvature set, edge importance is calculated for each edge in the mesh. The edge importance is usually determined by the curvature difference between its two end vertices and the role of the edge in the overall geometric shape. By calculating the importance of these edges, an edge importance list is generated, which reflects the importance of each edge in preserving the overall geometric form during the mesh simplification process. A minimum heap is constructed based on the edge importance list. The minimum heap is a data structure that can quickly find and remove the minimum element. The minimum heap can efficiently sort the edge importance from small to large to form a second priority queue of edges to be deleted. In the queue, the least important edge is at the front and is processed first. When extracting the edge with the smallest importance from the second priority queue of edges to be deleted, it is determined whether deleting the edge will cause a change in the topological structure. If it is determined that it will not cause a topological change, the edge can be safely marked as an edge to be deleted to obtain a candidate edge for deletion. Perform edge collapse operations, including removing edges and corresponding vertices, to simplify the mesh structure. After each edge collapse operation, update the state of the local mesh structure, and recalculate the vertex curvature around each vertex and the importance of the related edges. After updating these data, update the minimum heap again to obtain a new priority queue of edges to be deleted. This process is repeated until the preset simplification goal is reached. After the mesh simplification is basically completed, generate a simplified mesh based on the updated priority queue of edges to be deleted. Since the simplification process may cause the mesh in some areas to no longer meet the topological requirements, the simplified mesh is locally re-triangulated to ensure that the topological structure of the mesh remains consistent. In this process, the geometric quality of the mesh is optimized by adjusting the connection method of the triangles. Perform an edge flip operation on the topologically optimized mesh to adjust the connection method of the triangles to minimize the surface error and maintain the details of the model to obtain the second geometric data.
步骤S104、使用Draco工具对第二几何数据进行压缩处理,得到轻量化几何数据,并对初始属性数据进行JSON格式转换和压缩处理,得到轻量化属性数据;Step S104: Use the Draco tool to compress the second geometry data to obtain lightweight geometry data, and convert and compress the initial attribute data into JSON format to obtain lightweight attribute data;
具体的,对第二几何数据中的顶点坐标进行量化处理,将浮点数坐标转换为整数值,以降低数据精度但保持整体几何形态,生成量化后的顶点数据。对量化后的顶点数据进行预测编码,预测编码通过使用临近顶点信息预测当前顶点的值,并记录实际值与预测值之间的差异,产生顶点残差数据。对顶点残差数据进行熵编码,熵编码通过将常见的残差值编码为较短的比特串,而不常见的残差值编码为较长的比特串,实现数据压缩。编码模型根据残差分布特征进行动态调整,以提高压缩效率,生成压缩后的顶点流。同时,对第二几何数据中的拓扑信息进行编码,编码后的拓扑数据被进一步压缩,通过熵编码生成压缩后的拓扑流。这两个流,即压缩后的顶点流和压缩后的拓扑流,被合并在一起,并添加Draco文件头信息,轻量化几何数据,文件头信息包含描述压缩数据格式和解码所需的元数据。在处理初始属性数据时,进行结构分析,识别出数据中的键值对和数组结构。将这些结构转换为JSON格式,得到初始JSON数据。为了优化数据体积,对初始JSON数据进行键名压缩,将较长的键名替换为简短的标识符,生成压缩键名的JSON数据。对压缩键名的JSON数据进行数值精度优化,将浮点数精度降低,以减少数据量而不显著影响属性信息的准确性,生成精度优化的JSON数据。对精度优化的JSON数据进行压缩处理,包括使用标准的压缩算法如Gzip或Zstandard,以进一步减小数据体积,生成轻量化属性数据。Specifically, the vertex coordinates in the second geometric data are quantized, and the floating-point coordinates are converted into integer values to reduce the data precision but maintain the overall geometric form, thereby generating quantized vertex data. The quantized vertex data are predictively encoded, and the predictive encoding predicts the value of the current vertex by using the adjacent vertex information, and records the difference between the actual value and the predicted value to generate vertex residual data. The vertex residual data are entropy encoded, and the entropy encoding achieves data compression by encoding common residual values into shorter bit strings and uncommon residual values into longer bit strings. The encoding model is dynamically adjusted according to the residual distribution characteristics to improve the compression efficiency and generate a compressed vertex stream. At the same time, the topological information in the second geometric data is encoded, and the encoded topological data is further compressed, and a compressed topological stream is generated by entropy encoding. The two streams, namely the compressed vertex stream and the compressed topological stream, are merged together, and Draco file header information is added to lightweight geometric data, and the file header information contains metadata required for describing the compressed data format and decoding. When processing the initial attribute data, structural analysis is performed to identify the key-value pairs and array structures in the data. Convert these structures into JSON format to obtain initial JSON data. To optimize the data volume, compress the initial JSON data by key name, replace the longer key names with short identifiers, and generate JSON data with compressed key names. Optimize the numerical precision of the JSON data with compressed key names, reduce the precision of floating point numbers to reduce the amount of data without significantly affecting the accuracy of attribute information, and generate JSON data with optimized precision. Compress the JSON data with optimized precision, including using standard compression algorithms such as Gzip or Zstandard, to further reduce the data volume and generate lightweight attribute data.
步骤S105、对轻量化几何数据和轻量化属性数据进行格式转换,得到轻量化BIM模型,并对轻量化BIM模型进行分层细节处理,生成多级别细节的轻量化模型;Step S105: convert the format of the lightweight geometric data and the lightweight attribute data to obtain a lightweight BIM model, and perform hierarchical detail processing on the lightweight BIM model to generate a lightweight model with multiple levels of details;
具体的,对轻量化几何数据进行解压缩处理,恢复出原始网格结构。解压缩过程涉及解码顶点和拓扑信息,重新构建模型的几何形状。同时,对轻量化属性数据进行解压缩,并通过JSON解析获取结构化的属性数据,这些数据可能包括材质、颜色、纹理和其他与模型相关的详细信息。将原始网格结构和所述结构化属性数据合并,并构建符合glTF2.0规范的场景图结构。glTF2.0是一种开放标准,用于高效传输和加载3D模型。通过遵循该规范,确保轻量化BIM模型在不同平台和设备上的兼容性和表现一致性。合并后的数据生成轻量化BIM模型,该模型包含几何信息,以及丰富的属性和材质信息。对轻量化BIM模型进行包围体积层次结构计算。通过分析模型的几何特征,计算每个部分的包围体积。选择最长轴进行划分,递归地构建二叉树结构,形成一个空间索引结构。空间索引结构有助于快速定位和渲染模型的特定部分,从而提高渲染效率。基于空间索引结构,对轻量化BIM模型进行LOD(Levelof Detail)层级划分。LOD技术允许根据视距和细节需求动态调整模型的细节层次,以优化渲染性能。通过分析各个节点的几何复杂度和视距影响,生成一个节点重要度列表。根据该列表,对每个LOD层级进行网格简化处理,生成多级简化网格。网格简化的过程包括减少顶点和面片数量,同时尽量保持原始模型的外观和重要特征。对于每个LOD层级的多级简化网格,生成线贴图和法线贴图。法线贴图是通过纹理映射技术在模型表面上添加细节的有效方式,即使在几何简化的情况下也能保持高质量的视觉效果。生成带有法线贴图的LOD模型后,对模型的纹理进行压缩,以减少数据体积,提高传输和加载效率。构建LOD切换策略,该策略决定了在不同的视距和场景条件下如何动态地在不同LOD层级之间进行切换。将压缩纹理的LOD模型、空间索引结构和LOD切换策略打包,得到多级别细节的轻量化BIM模型。Specifically, the lightweight geometric data is decompressed to restore the original mesh structure. The decompression process involves decoding vertex and topology information and reconstructing the geometry of the model. At the same time, the lightweight attribute data is decompressed, and structured attribute data is obtained through JSON parsing, which may include material, color, texture and other detailed information related to the model. The original mesh structure and the structured attribute data are merged, and a scene graph structure that complies with the glTF2.0 specification is constructed. glTF2.0 is an open standard for efficient transmission and loading of 3D models. By following this specification, the compatibility and consistency of the lightweight BIM model on different platforms and devices are ensured. The merged data generates a lightweight BIM model, which contains geometric information, as well as rich attribute and material information. The bounding volume hierarchy of the lightweight BIM model is calculated. By analyzing the geometric features of the model, the bounding volume of each part is calculated. The longest axis is selected for division, and a binary tree structure is recursively constructed to form a spatial index structure. The spatial index structure helps to quickly locate and render specific parts of the model, thereby improving rendering efficiency. Based on the spatial index structure, the lightweight BIM model is divided into LOD (Level of Detail) levels. LOD technology allows the model's level of detail to be dynamically adjusted according to the viewing distance and detail requirements to optimize rendering performance. A node importance list is generated by analyzing the geometric complexity and viewing distance of each node. According to the list, the mesh is simplified for each LOD level to generate a multi-level simplified mesh. The mesh simplification process involves reducing the number of vertices and patches while trying to maintain the appearance and important features of the original model. For each LOD level of the multi-level simplified mesh, a line map and a normal map are generated. Normal maps are an effective way to add details to the model surface through texture mapping technology, maintaining high-quality visual effects even in the case of geometric simplification. After generating the LOD model with a normal map, the model's texture is compressed to reduce the data volume and improve transmission and loading efficiency. A LOD switching strategy is constructed, which determines how to dynamically switch between different LOD levels under different viewing distances and scene conditions. The LOD model of compressed textures, spatial index structure and LOD switching strategy are packaged to obtain a lightweight BIM model with multiple levels of details.
步骤S106、对多级别细节的轻量化模型进行空间分块和优化,得到分块的轻量化模型,并将分块的轻量化模型导入渲染引擎中进行实时渲染,得到实时渲染结果。Step S106: spatially divide and optimize the lightweight model with multiple levels of details to obtain a divided lightweight model, and import the divided lightweight model into a rendering engine for real-time rendering to obtain a real-time rendering result.
具体的,对多级别细节的轻量化模型进行八叉树空间划分,将整个模型的三维空间递归地划分为更小的立方体区域,得到初始空间划分结构。对于每一个初始空间划分结构中的叶节点,进行几何复杂度指标计算,包括评估每个叶节点中包含的几何体的数量、顶点数量以及面片数量等,得到节点复杂度列表。根据得到的节点复杂度列表,对于几何复杂度指标超过预设几何复杂度阈值的叶节点,进行再划分,将过于复杂的节点进一步细分,以降低每个子节点的几何复杂度,得到优化后的空间划分结构。从优化后的空间划分结构中的每个叶节点提取出包含的几何和属性数据,构建独立的子模型。为每个子模型计算其包围球半径和中心点,这些参数有助于判断子模型的可见性和遮挡剔除,得到分块的轻量化模型,每个子模型都是独立的分块单元,便于管理和优化。对分块的轻量化模型中的每个子模型进行视锥体剔除优化。视锥体剔除是指根据相机视角剔除那些位于视锥体外的子模型,以避免渲染不在视野范围内的对象,从而提高渲染效率。经过视锥体剔除后,得到可见分块列表。对可见分块列表进行遮挡剔除,剔除被其他几何体遮挡的分块。遮挡剔除是通过深度测试和包围球的计算来判断哪些对象是被完全遮挡的,只有那些完全暴露在视野中的对象才会被保留在最终的渲染集中。对无遮挡分块集合进行选择,形成最终的渲染分块集。这些分块将被组织成渲染批次,其中将具有相同材质的分块合并在一起。合并操作有助于减少渲染时的材质切换,从而优化渲染管线的性能。优化后的渲染数据结构被加载到渲染引擎中,进行实时渲染。Specifically, the octree space partition is performed on the lightweight model with multiple levels of details, and the three-dimensional space of the entire model is recursively divided into smaller cubic areas to obtain the initial space partition structure. For each leaf node in the initial space partition structure, the geometric complexity index is calculated, including evaluating the number of geometric bodies, the number of vertices, and the number of facets contained in each leaf node, and a node complexity list is obtained. According to the obtained node complexity list, for the leaf nodes whose geometric complexity index exceeds the preset geometric complexity threshold, the leaf nodes are re-divided, and the overly complex nodes are further subdivided to reduce the geometric complexity of each child node, and the optimized space partition structure is obtained. The contained geometry and attribute data are extracted from each leaf node in the optimized space partition structure to construct an independent sub-model. The bounding sphere radius and center point of each sub-model are calculated. These parameters help to determine the visibility and occlusion culling of the sub-model, and a block lightweight model is obtained. Each sub-model is an independent block unit, which is easy to manage and optimize. The view cone culling optimization is performed on each sub-model in the block lightweight model. Frustum culling refers to the removal of sub-models outside the frustum according to the camera's perspective to avoid rendering objects that are not within the field of view, thereby improving rendering efficiency. After frustum culling, a list of visible blocks is obtained. Occlusion culling is performed on the visible block list to remove blocks that are blocked by other geometric bodies. Occlusion culling determines which objects are completely blocked by depth testing and bounding sphere calculations. Only those objects that are completely exposed to the field of view will be retained in the final rendering set. The unobstructed block set is selected to form the final rendering block set. These blocks will be organized into rendering batches, in which blocks with the same material are merged together. The merge operation helps reduce material switching during rendering, thereby optimizing the performance of the rendering pipeline. The optimized rendering data structure is loaded into the rendering engine for real-time rendering.
对优化后的空间划分结构进行深度优先遍历,得到叶节点集合。对叶节点集合中每个叶节点的几何数据进行边界分析,通过计算每个叶节点几何数据中所有顶点的坐标极值,得到轴对齐包围盒。轴对齐包围盒的计算通过确定顶点在每个轴上的最小值和最大值,从而定义出一个最小的包围矩形。基于轴对齐包围盒的对角线长度,对每个叶节点的几何数据进行网格重采样,降低几何数据的复杂度,同时保持主要的形状和特征。通过重采样,减少顶点和面片的数量,进而减小数据量,提高后续处理的效率。将重采样后的几何数据与每个叶节点中的属性数据进行关联匹配,生成子模型数据集。对子模型数据集进行分析,构建子模型的局部坐标系,标准化每个子模型的数据表示。在局部坐标系的基础上,对子模型数据集中的数据点进行坐标变换,计算出子模型的中心点和包围球半径。中心点是包围球的几何中心,而包围球半径则是中心点到数据集中最远点的距离,这两个参数共同定义了子模型的空间占用范围。根据子模型数据集、包围球半径和中心点生成对应的分块轻量化模型。分块轻量化模型不仅保留了原始BIM模型的主要几何和属性信息,并通过空间分块和数据压缩显著减少了数据量。The optimized space partitioning structure is traversed in depth first to obtain a set of leaf nodes. The geometric data of each leaf node in the set of leaf nodes is subjected to boundary analysis, and the axis-aligned bounding box is obtained by calculating the coordinate extreme values of all vertices in the geometric data of each leaf node. The calculation of the axis-aligned bounding box defines a minimum bounding rectangle by determining the minimum and maximum values of the vertex on each axis. Based on the diagonal length of the axis-aligned bounding box, the geometric data of each leaf node is meshed and resampled to reduce the complexity of the geometric data while maintaining the main shape and features. Through resampling, the number of vertices and facets is reduced, thereby reducing the amount of data and improving the efficiency of subsequent processing. The resampled geometric data is associated and matched with the attribute data in each leaf node to generate a sub-model data set. The sub-model data set is analyzed, the local coordinate system of the sub-model is constructed, and the data representation of each sub-model is standardized. Based on the local coordinate system, the data points in the sub-model data set are transformed to calculate the center point and the radius of the bounding sphere of the sub-model. The center point is the geometric center of the bounding sphere, and the radius of the bounding sphere is the distance from the center point to the farthest point in the data set. These two parameters together define the spatial occupancy range of the sub-model. The corresponding block lightweight model is generated according to the sub-model data set, the bounding sphere radius and the center point. The block lightweight model not only retains the main geometry and attribute information of the original BIM model, but also significantly reduces the amount of data through spatial block and data compression.
对可见分块列表中的每个分块进行深度排序。根据每个分块距离视点的距离进行排序,得到一个排序后的分块列表。排序后的分块列表有助于后续的遮挡剔除和可视性分析,确保从视点出发先处理较近的分块。构建层次化Z-buffer结构,该结构是通过将视锥体划分为m×m个网格来实现的,每个网格对应一个最大深度值,形成初始Z-buffer结构。m是一个正整数,通常根据视图分辨率和精度需求进行选择。该结构用于存储每个网格中的最远可见深度信息,从而帮助进行遮挡剔除。对排序后的分块列表进行遍历,对每个分块的包围球进行视锥体裁剪和遮挡剔除。在视锥体裁剪阶段,如果包围球完全在视锥体外部,则该分块可以直接剔除。在遮挡剔除阶段,通过比较分块的深度信息与Z-buffer中的深度值,如果分块被前面的分块完全遮挡,也可以剔除该分块。经过这些步骤后,得到无遮挡分块集合。将无遮挡分块集合中的每个分块进行2D投影,得到其在屏幕上的投影多边形。通过计算2D投影多边形与初始Z-buffer结构中对应网格的重叠度,确定每个分块对视图的覆盖情况,得到重叠网格集。对重叠网格集中的分块进行重要性评分。评分标准可以包括分块的几何复杂度、材质重要性以及对整体视觉效果的贡献等因素。根据预设的最大渲染三角形数,对评分后的分块集合中的分块按评分从高到低进行选择。选择过程中,累加选中分块的几何复杂度,直至达到最大渲染三角形数的限制,确保在渲染资源有限的情况下,优先显示最重要的分块,优化整体的视觉效果。得到渲染分块集。Sort each tile in the visible tile list by depth. Sort each tile by its distance from the viewpoint to get a sorted tile list. The sorted tile list helps with subsequent occlusion culling and visibility analysis, ensuring that closer tiles are processed first from the viewpoint. Build a hierarchical Z-buffer structure, which is implemented by dividing the view frustum into m×m grids, each corresponding to a maximum depth value, to form an initial Z-buffer structure. m is a positive integer, usually selected based on the view resolution and accuracy requirements. This structure is used to store the farthest visible depth information in each grid to help with occlusion culling. Iterate over the sorted tile list and perform frustum culling and occlusion culling on the bounding sphere of each tile. In the frustum culling stage, if the bounding sphere is completely outside the view frustum, the tile can be directly culled. In the occlusion culling stage, by comparing the tile's depth information with the depth value in the Z-buffer, the tile can also be culled if it is completely occluded by the previous tile. After these steps, an unobstructed block set is obtained. Each block in the unobstructed block set is projected in 2D to obtain its projection polygon on the screen. By calculating the overlap between the 2D projection polygon and the corresponding grid in the initial Z-buffer structure, the coverage of each block on the view is determined to obtain an overlapping grid set. The importance of the blocks in the overlapping grid set is scored. The scoring criteria may include factors such as the geometric complexity of the block, the importance of the material, and the contribution to the overall visual effect. According to the preset maximum number of rendering triangles, the blocks in the scored block set are selected from high to low according to the score. During the selection process, the geometric complexity of the selected blocks is accumulated until the maximum number of rendering triangles is reached, ensuring that when rendering resources are limited, the most important blocks are displayed first to optimize the overall visual effect. A rendering block set is obtained.
本发明实施例中,本发明通过几何简化、数据压缩和格式转换,BIM模型的文件大小显著减小。这种减小不仅使文件更容易传输和存储,也特别有利于在带宽有限的网络环境中进行数据交换。文件大小的减少意味着更高效的数据处理和更快的访问速度,从而提升了整体工作效率。其次,使用网格简化和层次细节模型(LOD)显著提升了模型在各种设备上的渲染和加载性能。无论是在移动设备、网页浏览器,还是在VR/AR设备上,用户都能够更快速地查看和操作BIM模型,从而改善了用户体验。这种提升使得复杂模型可以在更多平台上流畅运行,扩大了BIM技术的应用范围。尽管进行了轻量化处理,模型的关键几何信息和属性数据得以保留。这确保了模型在准确性和完整性方面没有重大损失。通过数据筛选和分类,保留了项目所需的核心数据,支持后续的设计、施工和运维工作。关键数据的保留是确保模型实用性的关键,避免了信息丢失带来的潜在风险。此外,将BIM模型转换为通用的轻量化数据格式(如glTF、IFC、OBJ等),提高了模型在不同平台和应用程序之间的兼容性和互操作性。轻量化后的模型可以在多种软件环境中使用,减少了数据转换和适配的复杂性。高兼容性使得不同项目团队和工具之间的数据交换更加顺畅,提升了协作效率。通过标准化的轻量化流程和工具集成,简化了BIM模型处理的工作流程。优化后的工作流程使团队可以更高效地进行BIM数据管理和应用,减少了手动操作和出错的可能性。标准化流程不仅提高了工作效率,还确保了数据处理的一致性和可靠性。支持动态数据和实时应用也是轻量化方案的重要效果之一。通过空间分块和索引机制,轻量化模型能够支持动态数据和实时应用场景。在智能建筑、智慧城市等应用中,可以高效处理和展示实时变化的数据,提升决策的及时性和准确性。这种实时处理能力对于现代化管理和运营至关重要。轻量化后的BIM模型对硬件资源(如存储、内存、处理器)的需求降低,适用于各种计算能力的设备。这使得BIM技术能够在更多类型的设备上应用,包括低端计算设备和移动终端。资源需求的降低不仅节省了硬件成本,还扩大了技术的普及范围。In the embodiment of the present invention, the file size of the BIM model is significantly reduced by geometric simplification, data compression and format conversion. This reduction not only makes the file easier to transmit and store, but is also particularly conducive to data exchange in a network environment with limited bandwidth. The reduction in file size means more efficient data processing and faster access speed, thereby improving overall work efficiency. Secondly, the use of mesh simplification and level of detail model (LOD) significantly improves the rendering and loading performance of the model on various devices. Whether on mobile devices, web browsers, or VR/AR devices, users can view and operate BIM models more quickly, thereby improving the user experience. This improvement allows complex models to run smoothly on more platforms and expands the application scope of BIM technology. Despite the lightweight processing, the key geometric information and attribute data of the model are retained. This ensures that there is no significant loss in the accuracy and integrity of the model. Through data screening and classification, the core data required for the project is retained to support subsequent design, construction and operation and maintenance work. The retention of key data is the key to ensuring the practicality of the model and avoiding the potential risks caused by information loss. In addition, converting BIM models into common lightweight data formats (such as glTF, IFC, OBJ, etc.) improves the compatibility and interoperability of models between different platforms and applications. Lightweight models can be used in a variety of software environments, reducing the complexity of data conversion and adaptation. High compatibility makes data exchange between different project teams and tools smoother and improves collaboration efficiency. The workflow of BIM model processing is simplified through standardized lightweight processes and tool integration. The optimized workflow enables the team to manage and apply BIM data more efficiently, reducing the possibility of manual operations and errors. Standardized processes not only improve work efficiency, but also ensure the consistency and reliability of data processing. Supporting dynamic data and real-time applications is also one of the important effects of lightweight solutions. Through spatial blocking and indexing mechanisms, lightweight models can support dynamic data and real-time application scenarios. In applications such as smart buildings and smart cities, real-time changing data can be efficiently processed and displayed to improve the timeliness and accuracy of decision-making. This real-time processing capability is essential for modern management and operations. The lightweight BIM model has a lower demand for hardware resources (such as storage, memory, and processors) and is suitable for devices with various computing capabilities. This enables BIM technology to be applied on more types of devices, including low-end computing devices and mobile terminals. The reduction in resource requirements not only saves hardware costs, but also expands the popularity of technology.
在一具体实施例中,执行步骤S101的过程可以具体包括如下步骤:In a specific embodiment, the process of executing step S101 may specifically include the following steps:
(1)确定轻量化目标,并根据轻量化目标对BIM模型数据进行数据结构分析,得到模型拓扑结构和元素关系图;(1) Determine the lightweight target and analyze the data structure of the BIM model data based on the lightweight target to obtain the model topology and element relationship diagram;
(2)根据元素关系图,对BIM模型数据的模型元素进行重要性评分,得到元素重要性排序列表,并基于元素重要性排序列表,设定第一保留阈值,对元素重要性评分低于第一保留阈值的模型元素进行标记,得到目标元素集合;(2) According to the element relationship diagram, the model elements of the BIM model data are scored by importance to obtain an element importance ranking list, and based on the element importance ranking list, a first retention threshold is set, and model elements with element importance scores lower than the first retention threshold are marked to obtain a target element set;
(3)对目标元素集合中的几何数据进行边界提取,得到边界曲线集,并对边界曲线集进行点集分析,设定容差,迭代计算点到线段的垂直距离,得到目标边界轮廓;(3) Extract the boundaries of the geometric data in the target element set to obtain a boundary curve set, perform point set analysis on the boundary curve set, set the tolerance, iteratively calculate the vertical distance from the point to the line segment, and obtain the target boundary contour;
(4)基于目标边界轮廓,对BIM模型数据的原始几何面进行重构,得到目标面片集合,并对目标面片集合进行法向量分析,计算相邻面片的法向量夹角,若法向量夹角小于预设夹角阈值,则合并相邻面片,得到初始几何数据;(4) Based on the target boundary contour, the original geometric surface of the BIM model data is reconstructed to obtain a target face set, and the target face set is subjected to normal vector analysis to calculate the normal vector angle between adjacent faces. If the normal vector angle is less than the preset angle threshold, the adjacent faces are merged to obtain the initial geometric data.
(5)对BIM模型数据的属性数据进行数据冗余分析,计算各属性字段的使用频率和信息熵,得到属性重要性评分表,并根据属性重要性评分表,设定第二保留阈值,筛选属性重要性评分高于第二保留阈值的属性字段,得到初始属性数据;(5) Perform data redundancy analysis on the attribute data of the BIM model data, calculate the usage frequency and information entropy of each attribute field, obtain the attribute importance score table, and set the second retention threshold based on the attribute importance score table, filter the attribute fields with attribute importance scores higher than the second retention threshold, and obtain the initial attribute data;
(6)对BIM模型数据中的材质、纹理和光照信息进行分辨率和复杂度分析,根据预设的目标比例进行降采样和合并处理,得到辅助数据。(6) Perform resolution and complexity analysis on the material, texture, and lighting information in the BIM model data, and perform downsampling and merging processing according to the preset target ratio to obtain auxiliary data.
具体的,确定轻量化目标的具体标准,例如减少模型的文件大小、提高渲染性能或减少数据传输时间。根据这些目标,对BIM模型数据进行数据结构分析,提取模型的拓扑结构和元素关系图。模型拓扑结构描述了各构件之间的空间关系,而元素关系图则揭示了模型中各元素之间的关联性和依赖性。根据元素关系图,对BIM模型数据的模型元素进行重要性评分。评分过程可以基于多个因素,如元素在结构中的位置、对模型完整性的贡献、使用频率等。例如,定义一个重要性评分公式:Specifically, determine the specific criteria for lightweight goals, such as reducing the file size of the model, improving rendering performance, or reducing data transmission time. Based on these goals, perform data structure analysis on the BIM model data to extract the model's topology and element relationship diagram. The model topology describes the spatial relationship between the components, while the element relationship diagram reveals the associations and dependencies between the elements in the model. Based on the element relationship diagram, the model elements of the BIM model data are scored for importance. The scoring process can be based on multiple factors, such as the element's position in the structure, its contribution to the model's integrity, its frequency of use, etc. For example, define an importance scoring formula:
; ;
其中,是元素的重要性评分,是该元素的功能重要性,表示该元素在结构中的关键程度;是元素的复杂性,如几何形状的复杂度或属性数据的详细程度;是元素的位置重要性,表示该元素在视图中的显著性。权重根据具体应用的需求进行调整。根据重要性评分生成元素重要性排序列表。为了优化数据,对元素重要性评分设定一个第一保留阈值,将评分低于该阈值的模型元素标记出来,形成目标元素集合。集合中的元素是模型中相对不重要的部分,可以优先考虑简化或移除。对目标元素集合中的几何数据进行边界提取。通过计算每个元素的外边界,得到边界曲线集。对边界曲线集进行点集分析,设定容差后,迭代计算每个点到最近线段的垂直距离。公式如下:in, Is an element The importance rating of is the functional importance of the element, indicating how critical the element is in the structure; is the complexity of the element, such as the complexity of the geometry or the level of detail of the attribute data; is the position importance of the element, indicating the prominence of the element in the view. Adjust according to the needs of specific applications. Generate a ranked list of element importance based on importance scores. In order to optimize the data, set a first retention threshold for element importance scores. , mark the model elements with scores below the threshold to form a target element set. The elements in the set are relatively unimportant parts of the model and can be simplified or removed first. Perform boundary extraction on the geometric data in the target element set. By calculating the outer boundary of each element, a boundary curve set is obtained. Perform point set analysis on the boundary curve set and set the tolerance Then, iteratively calculate the vertical distance from each point to the nearest line segment. The formula is as follows:
; ;
其中是点到线段的垂直距离,是点到线段起点的向量,是线段的方向向量。通过迭代计算和调整,描绘出目标边界轮廓。基于目标边界轮廓,对BIM模型数据的原始几何面进行重构,得到一个更简化的目标面片集合。在此基础上,对这些面片进行法向量分析,计算相邻面片的法向量夹角。假设法向量为和,夹角公式为:in is the perpendicular distance from the point to the line segment, is the vector from the point to the starting point of the line segment, is the direction vector of the line segment. Through iterative calculation and adjustment, the target boundary outline is drawn. Based on the target boundary outline, the original geometric surface of the BIM model data is reconstructed to obtain a more simplified target face set. On this basis, the normal vectors of these faces are analyzed to calculate the normal vector angles of adjacent faces. Assume that the normal vector is and , the angle formula is:
; ;
如果夹角小于预设的阈值,则合并这些面片,以减少面片数量,得到初始几何数据。同时,对BIM模型数据的属性数据进行数据冗余分析。通过计算各属性字段的使用频率和信息熵,生成属性重要性评分表。信息熵的计算公式为:If the angle Less than the preset threshold , then merge these patches to reduce the number of patches and obtain the initial geometric data. At the same time, perform data redundancy analysis on the attribute data of the BIM model data. By calculating the usage frequency and information entropy of each attribute field, generate an attribute importance score table. Information entropy The calculation formula is:
; ;
其中是属性值出现的概率。根据评分表,设定一个第二保留阈值,筛选出评分高于该阈值的属性字段,形成初始属性数据。对BIM模型数据中的材质、纹理和光照信息进行分辨率和复杂度分析。通过对材质贴图和纹理的细节级别进行降采样处理,并合并相似的材质信息,得到辅助数据。通过在一定比例下(如50%)降低材质的分辨率和复杂度,从而显著减少文件大小和渲染时间。in is the probability of the attribute value appearing. According to the scoring table, a second retention threshold is set , filter out attribute fields with scores higher than the threshold to form initial attribute data. Perform resolution and complexity analysis on the material, texture, and lighting information in the BIM model data. Auxiliary data is obtained by downsampling the detail level of material maps and textures and merging similar material information. By reducing the resolution and complexity of materials by a certain ratio (such as 50%), file size and rendering time can be significantly reduced.
在一具体实施例中,执行步骤S102的过程可以具体包括如下步骤:In a specific embodiment, the process of executing step S102 may specifically include the following steps:
(1)对初始几何数据中的每个顶点vi计算平面方程集合Pi,得到顶点关联平面集,其中,vi表示第i个顶点的三维坐标(xi,yi,zi),Pi表示与vi对应的所有平面方程ax+by+cz+d=0的集合,x、y、z是平面上任意点的坐标变量,a、b、c是平面的法向量分量,表示平面的朝向,满足a2+b2+c2=1,d是平面方程的常数项,表示平面到原点的有符号距离;(1) For each vertex vi in the initial geometric data, calculate the plane equation set Pi to obtain the vertex associated plane set, where vi represents the three-dimensional coordinates (xi, yi, zi) of the i-th vertex, Pi represents the set of all plane equations ax+by+cz+d=0 corresponding to vi, x, y, z are the coordinate variables of any point on the plane, a, b, c are the normal vector components of the plane, indicating the orientation of the plane, satisfying a2 +b2 +c2 =1, and d is the constant term of the plane equation, indicating the signed distance from the plane to the origin;
(2)根据顶点关联平面集,对每个顶点vi计算对应的二次误差矩阵Qi,其中Qi=(aiaiT),ai为平面方程系数向量[a,b,c,d]T,Qi为4x4的对称矩阵,表示顶点vi到其对应平面的距离平方和,T表示矩阵的转置操作;(2) According to the vertex associated plane set, calculate the corresponding quadratic error matrix Qi for each vertex vi, where Qi=(aiaiT ), ai is the plane equation coefficient vector [a, b, c, d]T , Qi is a 4x4 symmetric matrix representing the sum of the squares of the distances from vertex vi to its corresponding plane, and T represents the transpose operation of the matrix;
(3)对网格中的每条边e(v1,v2)计算最优收缩点v',通过求解方程(Q1+Q2)v'=0得到最优收缩点v',若方程无解,则在v1、v2和边的中点中选择使误差最小的点作为最优收缩点v',其中v1和v2为边e的两个端点,Q1为v1的二次误差矩阵,Q2为v2的二次误差矩阵;(3) Calculate the optimal contraction point v' for each edge e (v1, v2) in the grid. The optimal contraction point v' is obtained by solving the equation (Q1+Q2) v'=0. If the equation has no solution, then select the point with the smallest error among v1, v2 and the midpoint of the edge as the optimal contraction point v', where v1 and v2 are the two endpoints of the edge e, Q1 is the quadratic error matrix of v1, and Q2 is the quadratic error matrix of v2.
(4)计算每条边e的收缩代价Δ(v1,v2),得到边收缩代价列表,Δ(v1,v2)表示将边e收缩到最优收缩点v'时的几何误差;(4) Calculate the contraction cost Δ(v1, v2) of each edge e and obtain a list of edge contraction costs. Δ(v1, v2) represents the geometric error when contracting edge e to the optimal contraction point v'.
(5)根据边收缩代价列表,构建第一待删除边优先队列,将边按收缩代价Δ(v1,v2)从小到大排序,从第一待删除边优先队列中提取收缩代价最小的边并执行边收缩操作,得到简化后的局部网格结构;(5) According to the edge shrinkage cost list, a first priority queue of edges to be deleted is constructed, and the edges are sorted in ascending order according to the shrinkage cost Δ(v1, v2). The edge with the smallest shrinkage cost is extracted from the first priority queue of edges to be deleted and the edge shrinkage operation is performed to obtain a simplified local grid structure.
(6)对简化后的局部网格结构进行拓扑一致性检查并修复非流形边和顶点,得到第一几何数据。(6) Perform a topological consistency check on the simplified local mesh structure and repair non-manifold edges and vertices to obtain the first geometric data.
具体的,对初始几何数据中的每个顶点计算其关联的平面方程集合,每个顶点由三维坐标表示。平面方程的形式为,其中是平面上任意点的坐标变量,是平面的法向量分量,表示平面的朝向,并满足。常数项表示平面到原点的有符号距离。通过这些参数,将与顶点相关的所有平面方程表示为集合。使用这些平面方程,对每个顶点计算对应的二次误差矩阵。二次误差矩阵的计算公式为:Specifically, for each vertex in the initial geometric data Compute the associated set of plane equations , each vertex By three-dimensional coordinates The plane equation is in the form of ,in is the coordinate variable of any point on the plane, is the normal vector component of the plane, indicating the orientation of the plane and satisfying . Constant term Represents the signed distance from the plane to the origin. With these parameters, the vertex All relevant plane equations are expressed as the set Using these plane equations, for each vertex Calculate the corresponding quadratic error matrix The quadratic error matrix The calculation formula is:
; ;
其中是第个平面的系数向量,表示平面的法向量和偏移量。该向量用于计算顶点到其对应平面的距离平方和。矩阵是一个4x4的对称矩阵,表示顶点到其所有关联平面的距离误差累积。T表示矩阵的转置操作。对网格中的每条边计算最优收缩点。求解方程,其中和分别是边的两个端点和的二次误差矩阵。如果方程有解,则该解就是最优收缩点。如果方程无解,则需要在和边的中点中选择误差最小的点作为最优收缩点。这个过程保证了边的收缩会带来最小的几何误差。根据最优收缩点,计算每条边的收缩代价,即边被收缩到最优收缩点时的几何误差。通过计算边的两个端点到的距离来实现,并将这些距离平方和最小化。将所有边的收缩代价整理成一个列表,构建第一待删除边优先队列。在这个队列中,边按收缩代价从小到大排序,确保误差最小的边优先被处理。从第一待删除边优先队列中提取收缩代价最小的边,并执行边收缩操作。这一操作会更新网格的拓扑结构,移除不必要的顶点和面片,进而简化网格的几何形状。对简化后的局部网格结构进行拓扑一致性检查,确保网格的拓扑结构保持一致,避免出现非流形边和顶点的问题。非流形边和顶点会导致几何模型的错误显示和渲染问题。通过这些步骤,得到第一几何数据,即简化后的网格结构。in It is The coefficient vector of the plane , represents the normal vector and offset of the plane. This vector is used to calculate the vertex The sum of the squares of the distances to its corresponding plane. Is a 4x4 symmetric matrix, representing the vertex The distance error to all its associated planes is accumulated. T represents the transpose operation of the matrix. For each edge in the grid Calculate the optimal shrinkage point Solve the equation ,in and The edges The two endpoints and The quadratic error matrix. If the equation has a solution, then the solution is the optimal contraction point If the equation has no solution, then you need to Select the point with the smallest error among the midpoints of the edges as the optimal contraction point This process ensures that the contraction of the edge will bring the smallest geometric error. According to the optimal contraction point , calculate each edge The cost of shrinkage , that is, edge Shrink to the optimal shrinkage point By calculating the geometric error of the two endpoints of the edge distance, and minimize the sum of squares of these distances. The shrinkage costs of all edges are sorted into a list to build a first priority queue for edges to be deleted. In this queue, the edges are sorted from small to large according to the shrinkage cost to ensure that the edges with the smallest error are processed first. The edges with the smallest shrinkage cost are extracted from the first priority queue for edges to be deleted, and the edge shrinkage operation is performed. This operation updates the topological structure of the mesh, removes unnecessary vertices and faces, and simplifies the geometry of the mesh. A topological consistency check is performed on the simplified local mesh structure to ensure that the topological structure of the mesh remains consistent and to avoid problems with non-manifold edges and vertices. Non-manifold edges and vertices can cause incorrect display and rendering problems of geometric models. Through these steps, the first geometric data, that is, the simplified mesh structure, is obtained.
在一具体实施例中,执行步骤S103的过程可以具体包括如下步骤:In a specific embodiment, the process of executing step S103 may specifically include the following steps:
(1)对第一几何数据中的每个顶点进行顶点曲率计算,得到顶点曲率集合,并根据顶点曲率集合,对网格中的每个边进行边重要度计算,得到边重要度列表;(1) Calculating the vertex curvature of each vertex in the first geometric data to obtain a vertex curvature set, and calculating the edge importance of each edge in the mesh based on the vertex curvature set to obtain an edge importance list;
(2)基于边重要度列表构建最小堆,并将边按重要度从小到大排序,得到第二待删除边优先队列;(2) Build a minimum heap based on the edge importance list and sort the edges in ascending order of importance to obtain the second priority queue of edges to be deleted;
(3)从第二待删除边优先队列中提取重要度最小的边,判断重要度最小的边删除是否会导致拓扑变化,若不会,则将重要度最小的边标记为待删除边,得到候选删除边;(3) Extract the edge with the smallest importance from the second priority queue of edges to be deleted, and determine whether deleting the edge with the smallest importance will lead to topological changes. If not, mark the edge with the smallest importance as an edge to be deleted, and obtain a candidate deletion edge;
(4)对候选删除边执行边坍缩操作,得到更新后的局部网格结构,重新计算每个顶点周围顶点的曲率和相关边的重要度,更新最小堆,得到更新后的待删除边优先队列;(4) Perform edge collapse operation on the candidate deletion edges to obtain the updated local grid structure, recalculate the curvature of the vertices around each vertex and the importance of the related edges, update the minimum heap, and obtain the updated priority queue of the edges to be deleted;
(5)根据更新后的待删除边优先队列生成简化后的网格,对简化后的网格进行局部重新三角化,得到拓扑优化的网格,并对拓扑优化的网格执行边翻转操作,得到第二几何数据。(5) Generate a simplified mesh according to the updated priority queue of edges to be deleted, locally retriangulate the simplified mesh to obtain a topologically optimized mesh, and perform an edge flipping operation on the topologically optimized mesh to obtain second geometric data.
具体的,对第一几何数据中的每个顶点进行顶点曲率计算,曲率是衡量顶点局部表面弯曲程度的一个重要指标,可以通过计算每个顶点与其邻近顶点之间的法向量差异来估计。对于每个顶点,曲率可以表示为周围面片法向量的变化总和。假设顶点连接的每个面片的法向量为,那么曲率可以近似为:Specifically, the vertex curvature is calculated for each vertex in the first geometric data. Curvature is an important indicator for measuring the degree of curvature of the local surface of the vertex, which can be estimated by calculating the difference in normal vectors between each vertex and its neighboring vertices. , curvature It can be expressed as the sum of the changes in the normal vectors of the surrounding patches. Assume that the vertex The normal vector of each connected face is , then the curvature can be approximated as:
; ;
其中,是顶点所连接的所有面片法向量的平均值。公式中的表示顶点的曲率,表示第个面片的法向量,而则是所有法向量的平均法向量。得到顶点曲率集合后,对网格中的每条边进行边重要度计算。边重要度反映了该边在保持网格形状和特征方面的重要性。通常,边的重要度可以通过边两端顶点的曲率来估算,公式为in, is the vertex The average value of all connected face normal vectors. Represents a vertex The curvature of Indicates The normal vector of each face, and is the average normal vector of all normal vectors. After obtaining the vertex curvature set, the edge importance is calculated for each edge in the mesh. The edge importance reflects the importance of the edge in maintaining the shape and characteristics of the mesh. Usually, the importance of the edge can be estimated by the curvature of the vertices at both ends of the edge, and the formula is
; ;
其中,是边的重要度,和分别是边两端顶点的曲率值。该公式表明,曲率较高的顶点连接的边在网格中的重要度更高,因为它们通常代表了更多的细节或特征。根据边重要度列表构建最小堆。最小堆是一种数据结构,使得在任意时刻都可以快速访问和移除最小元素。最小堆用于快速找到并处理重要度最低的边,从而逐步简化网格结构。将边按重要度从小到大排序后,得到第二待删除边优先队列。从该优先队列中提取重要度最小的边后,判断删除这条边是否会导致网格拓扑结构的变化。这种判断包括检查边删除是否会引起非流形情况的出现,例如产生孤立点或洞。若删除该边不会导致拓扑结构的显著变化,则将其标记为待删除边,得到候选删除边集合。对候选删除边执行边坍缩操作。在边坍缩操作中,将一条边的两个顶点合并为一个顶点,移除多余的面片,从而简化网格的几何结构。例如,如果一个建筑物模型中有一条边连接着两个不重要的小窗户,这条边的坍缩可以有效减少面片数量而不显著影响整体外观。执行边坍缩后,得到更新后的局部网格结构。重新计算每个顶点周围顶点的曲率和相关边的重要度,以更新最小堆。更新后的待删除边优先队列将包含新的重要度最低的边,继续简化过程。根据更新后的待删除边优先队列生成简化后的网格。网格中的某些区域可能由于多次边坍缩而变得不规则或产生扭曲,需要进行局部重新三角化。重新三角化的过程通过重新划分这些区域的三角形面片,恢复网格的规则性和美观性。对拓扑优化的网格执行边翻转操作,优化三角形的形状,以确保每个三角形的形状接近正三角形,提高渲染质量和模型的稳定性。in, It is the edge The importance of and are the curvature values of the vertices at both ends of the edge, respectively. The formula shows that the edges connected by vertices with higher curvature are more important in the mesh because they usually represent more details or features. A minimum heap is constructed based on the edge importance list. A minimum heap is a data structure that allows the minimum element to be quickly accessed and removed at any time. The minimum heap is used to quickly find and process the edge with the lowest importance, thereby gradually simplifying the mesh structure. After sorting the edges from small to large importance, a second priority queue of edges to be deleted is obtained. After extracting the edge with the lowest importance from the priority queue, it is determined whether deleting this edge will cause a change in the mesh topology. This determination includes checking whether deleting the edge will cause the appearance of non-manifold situations, such as isolated points or holes. If deleting the edge does not cause a significant change in the topology, it is marked as an edge to be deleted, and a set of candidate deletion edges is obtained. An edge collapse operation is performed on the candidate deletion edges. In the edge collapse operation, two vertices of an edge are merged into one vertex, and redundant facets are removed, thereby simplifying the geometric structure of the mesh. For example, if there is an edge connecting two unimportant small windows in a building model, collapsing this edge can effectively reduce the number of facets without significantly affecting the overall appearance. After performing edge collapse, the updated local mesh structure is obtained. The curvature of the vertices around each vertex and the importance of the related edges are recalculated to update the minimum heap. The updated priority queue of edges to be deleted will contain the new edges with the lowest importance, and the simplification process will continue. The simplified mesh is generated based on the updated priority queue of edges to be deleted. Some areas in the mesh may become irregular or distorted due to multiple edge collapses and require local retriangulation. The retriangulation process restores the regularity and aesthetics of the mesh by re-dividing the triangular facets in these areas. Perform edge flipping operations on the topology optimized mesh to optimize the shape of the triangles to ensure that the shape of each triangle is close to a regular triangle, improving the rendering quality and model stability.
在一具体实施例中,执行步骤S104的过程可以具体包括如下步骤:In a specific embodiment, the process of executing step S104 may specifically include the following steps:
(1)对第二几何数据中的顶点坐标进行量化处理,得到量化后的顶点数据,并对量化后的顶点数据进行预测编码,得到顶点残差数据;(1) quantizing the vertex coordinates in the second geometric data to obtain quantized vertex data, and predictively encoding the quantized vertex data to obtain vertex residual data;
(2)对顶点残差数据进行熵编码,并根据残差分布特征动态调整编码模型,得到压缩后的顶点流;(2) Perform entropy coding on vertex residual data and dynamically adjust the coding model according to the residual distribution characteristics to obtain a compressed vertex stream;
(3)对第二几何数据中的拓扑信息进行编码,得到拓扑编码数据,并对拓扑编码数据进行熵编码,得到压缩后的拓扑流;(3) Encoding the topological information in the second geometric data to obtain topologically encoded data, and performing entropy encoding on the topologically encoded data to obtain a compressed topological stream;
(4)将压缩后的顶点流和压缩后的拓扑流合并,并添加Draco文件头信息,得到轻量化几何数据;(4) Merge the compressed vertex stream and the compressed topology stream, and add the Draco file header information to obtain lightweight geometry data;
(5)对初始属性数据进行结构分析,得到键值对和数组结构,并将键值对和数组结构转换为JSON格式,得到初始JSON数据;(5) Perform structural analysis on the initial attribute data to obtain key-value pairs and array structures, and convert the key-value pairs and array structures into JSON format to obtain initial JSON data;
(6)对初始JSON数据进行键名压缩,得到压缩键名的JSON数据,并对压缩键名的JSON数据进行数值精度优化,得到精度优化的JSON数据;(6) compressing the key name of the initial JSON data to obtain JSON data with compressed key names, and optimizing the numerical precision of the JSON data with compressed key names to obtain JSON data with optimized precision;
(7)对精度优化的JSON数据进行压缩处理,得到轻量化属性数据。(7) Compress the precision-optimized JSON data to obtain lightweight attribute data.
具体的,确定量化步长,量化步长决定了坐标值的精度。假设顶点坐标在某一轴上的原始范围是,将该范围划分为个离散值,其中是所需的位数。量化公式可以表示为:Specifically, determine the quantization step size, which determines the accuracy of the coordinate value. Assume that the original range of the vertex coordinates on a certain axis is , dividing the range into discrete values, where is the number of bits required. The quantization formula can be expressed as:
; ;
其中,是原始坐标值,是量化后的坐标值。量化处理通过将浮点坐标转换为整数值,减少数据的精度但保留整体的几何形态。对量化后的顶点数据进行预测编码。预测编码是一种数据压缩技术,通过预测当前数据点的值并记录预测值与实际值的差异(即残差)来实现压缩。对顶点数据,通常选择之前的顶点位置作为预测值。假设第个顶点的预测值为,实际值为,那么顶点残差数据可以表示为:in, is the original coordinate value, is the quantized coordinate value. Quantization reduces the precision of the data but retains the overall geometric shape by converting floating-point coordinates into integer values. Predictive coding is performed on the quantized vertex data. Predictive coding is a data compression technique that achieves compression by predicting the value of the current data point and recording the difference between the predicted value and the actual value (i.e., the residual). For vertex data, the previous vertex position is usually selected as the predicted value. Assume that The predicted value of the vertex is , the actual value is , then the vertex residual data It can be expressed as:
; ;
其中,表示残差数据,是实际顶点坐标,是预测值。通过这种方式,将顶点位置的变化表示为较小的残差值,便于进一步压缩。对顶点残差数据进行熵编码。熵编码是一种无损数据压缩方法,根据数据的概率分布分配不同长度的编码。常用的熵编码方法包括霍夫曼编码和算术编码。通过计算每个残差值出现的概率分布,动态调整编码模型,以最小化编码长度,得到压缩后的顶点流。对第二几何数据中的拓扑信息进行编码。拓扑信息通常包括顶点连接关系,这些信息可以编码为一系列的三角形或多边形。对这些拓扑数据,先进行索引化处理,将顶点的连接关系转化为索引列表,然后对索引列表进行熵编码,得到压缩后的拓扑流。将压缩后的顶点流和拓扑流合并,并添加Draco文件头信息,这些信息包括数据格式版本、顶点和面片的数量、量化参数等。得到的轻量化几何数据包含了模型的所有必要信息,同时显著减少了数据体积,适合传输和存储。对初始属性数据进行结构分析,识别出其中的键值对和数组结构。这些结构通常用于描述模型的材质、颜色、纹理等属性。将这些键值对和数组结构转换为JSON格式,得到初始JSON数据。JSON是一种轻量级的数据交换格式,适合于网络传输。对初始JSON数据进行键名压缩。通过将较长的键名替换为简短的标识符,减少数据量。然后对压缩键名的JSON数据进行数值精度优化,将数值数据的精度降低,减少数据大小。对精度优化的JSON数据进行压缩处理。常用的压缩算法包括Gzip和Zlib,这些算法能够显著减少文本数据的大小,最终得到轻量化属性数据。in, represents the residual data, are the actual vertex coordinates, is the predicted value. In this way, the change of vertex position is represented as a smaller residual value, which is convenient for further compression. The vertex residual data is entropy encoded. Entropy coding is a lossless data compression method that assigns codes of different lengths according to the probability distribution of data. Common entropy coding methods include Huffman coding and arithmetic coding. By calculating the probability distribution of each residual value, the coding model is dynamically adjusted to minimize the coding length and obtain the compressed vertex stream. The topological information in the second geometric data is encoded. Topological information usually includes vertex connection relationships, which can be encoded as a series of triangles or polygons. For these topological data, indexing is first performed to convert the connection relationship of the vertices into an index list, and then the index list is entropy encoded to obtain a compressed topological stream. The compressed vertex stream and the topological stream are merged, and the Draco file header information is added, which includes the data format version, the number of vertices and faces, quantization parameters, etc. The obtained lightweight geometric data contains all the necessary information of the model, while significantly reducing the data volume, which is suitable for transmission and storage. The initial attribute data is structurally analyzed to identify the key-value pairs and array structures therein. These structures are usually used to describe the material, color, texture and other properties of the model. Convert these key-value pairs and array structures into JSON format to obtain the initial JSON data. JSON is a lightweight data exchange format suitable for network transmission. Perform key name compression on the initial JSON data. Reduce the amount of data by replacing longer key names with short identifiers. Then optimize the numerical precision of the JSON data with compressed key names, reduce the precision of the numerical data, and reduce the data size. Compress the precision-optimized JSON data. Common compression algorithms include Gzip and Zlib, which can significantly reduce the size of text data and ultimately obtain lightweight attribute data.
在一具体实施例中,执行步骤S105的过程可以具体包括如下步骤:In a specific embodiment, the process of executing step S105 may specifically include the following steps:
(1)对轻量化几何数据进行解压缩,得到原始网格结构,并对轻量化属性数据进行解压缩和JSON解析,得到结构化属性数据;(1) Decompress the lightweight geometry data to obtain the original mesh structure, and decompress and parse the lightweight attribute data into JSON to obtain structured attribute data;
(2)将原始网格结构和结构化属性数据合并,并构建符合glTF2.0规范的场景图结构,得到轻量化BIM模型;(2) The original mesh structure and structured attribute data are merged, and a scene graph structure that complies with the glTF2.0 specification is constructed to obtain a lightweight BIM model;
(3)对轻量化BIM模型进行包围体积层次结构计算,并选择最长轴进行划分,递归构建二叉树,得到空间索引结构;(3) Calculate the bounding volume hierarchy of the lightweight BIM model, select the longest axis for division, recursively construct a binary tree, and obtain the spatial index structure;
(4)基于空间索引结构,对轻量化BIM模型进行LOD层级划分,得到节点重要度列表,并根据节点重要度列表,对每个LOD层级进行网格简化,得到多级简化网格;(4) Based on the spatial index structure, the lightweight BIM model is divided into LOD levels to obtain a node importance list. According to the node importance list, the mesh of each LOD level is simplified to obtain a multi-level simplified mesh.
(5)对多级简化网格的每个LOD层级进行线贴图生成,得到带有法线贴图的LOD模型,并对带有法线贴图的LOD模型进行纹理压缩,得到压缩纹理的LOD模型;(5) Generate a line map for each LOD level of the multi-level simplified mesh to obtain an LOD model with a normal map, and perform texture compression on the LOD model with the normal map to obtain an LOD model with a compressed texture;
(6)构建LOD切换策略,并将压缩纹理的LOD模型、空间索引结构和LOD切换策略打包,得到多级别细节轻量化BIM模型。(6) Construct an LOD switching strategy and package the LOD model of compressed texture, spatial index structure and LOD switching strategy to obtain a multi-level detail lightweight BIM model.
具体的,使用相应的解码算法将压缩的数据恢复成原始的网格结构。轻量化几何数据通常经过了量化、预测编码和熵编码处理,因此解压缩过程需要逐步逆转这些过程。对压缩的顶点流进行熵解码,恢复原始的顶点残差数据。根据存储的量化信息,反量化这些顶点数据以恢复原始的浮点坐标。将量化后的整数值转换回原始的浮点坐标范围,公式为:Specifically, the corresponding decoding algorithm is used to restore the compressed data to the original mesh structure. Lightweight geometric data is usually processed by quantization, predictive coding and entropy coding, so the decompression process needs to gradually reverse these processes. Entropy decoding is performed on the compressed vertex stream to restore the original vertex residual data. According to the stored quantization information, these vertex data are dequantized to restore the original floating-point coordinates. The quantized integer value is converted back to the original floating-point coordinate range. The formula is:
; ;
其中,是解量化后的坐标,和分别是坐标范围的最小值和最大值,是量化后的整数值,是量化的比特数。同时,对轻量化属性数据进行解压缩,通常包括解码JSON数据的键值对和数组结构。JSON解析通过读取压缩后的ISON数据并将其恢复到原始的结构化形式。得到的结构化属性数据包含了BM模型的各种信息,如材质、颜色、纹理等细节。解压缩和解析完成后,将原始网格结构和结构化属性数据合并。为了构建符合glTF2.0规范的场景图结构,将几何数据和属性数据按照glTF的标准格式进行组织。glTF2.0是一种高效的3D模型传输格式,支持各种复杂的场景描述,包括节点、网格、材质和动画等。通过将解压缩得到的网格和属性数据导入glTF结构,得到一个轻量化的BIM模型。为了优化渲染效率,对轻量化BIM模型进行包围体积层次结构计算。这一计算涉及确定每个模型部分的包围盒,并选择最长轴进行划分,从而递归地构建二叉树结构,形成空间索引结构。通过将模型空间划分为若干层次的包围体积,提高视锥体剔除和遮挡剔除的效率,从而优化渲染性能。基于空间索引结构,对轻量化BIM模型进行LOD层级划分。LOD技术允许在不同的距离和视角下使用不同的细节级别,从而平衡渲染质量和性能。根据空间索引结构,对BIM模型中的各个节点进行重要度评分,形成节点重要度列表。重要度评分可以基于多个因素,如视角相关性、模型细节和材质特性等。公式可以表示为:in, is the dequantized coordinate, and are the minimum and maximum values of the coordinate range, is the quantized integer value, is the number of quantized bits. At the same time, the lightweight attribute data is decompressed, which usually includes decoding the key-value pairs and array structures of the JSON data. JSON parsing reads the compressed ISON data and restores it to its original structured form. The obtained structured attribute data contains various information of the BM model, such as material, color, texture and other details. After decompression and parsing, the original mesh structure and structured attribute data are merged. In order to construct a scene graph structure that complies with the glTF2.0 specification, the geometric data and attribute data are organized in the standard format of glTF. glTF2.0 is an efficient 3D model transmission format that supports various complex scene descriptions, including nodes, meshes, materials and animations. By importing the decompressed mesh and attribute data into the glTF structure, a lightweight BIM model is obtained. In order to optimize rendering efficiency, the bounding volume hierarchy is calculated for the lightweight BIM model. This calculation involves determining the bounding box of each model part and selecting the longest axis for division, thereby recursively constructing a binary tree structure to form a spatial index structure. By dividing the model space into several levels of bounding volumes, the efficiency of frustum culling and occlusion culling is improved, thereby optimizing rendering performance. Based on the spatial index structure, the lightweight BIM model is divided into LOD levels. LOD technology allows different levels of detail to be used at different distances and viewing angles, thereby balancing rendering quality and performance. According to the spatial index structure, each node in the BIM model is scored for importance to form a node importance list. The importance score can be based on multiple factors, such as perspective relevance, model details, and material properties. The formula can be expressed as:
; ;
其中,是节点的重要度评分,是节点的可见性得分,是节点的复杂性得分,和是权重因子。根据节点重要度列表,对每个LOD层级进行网格简化,减少网格的顶点和面片数量,同时保留尽可能多的视觉特征,形成多级简化网格。对于每个LOD层级,生成线贴图来增强视觉细节。线贴图通过在模型表面添加细线和法线信息,使得即使在较低的几何细节下,模型仍然能够表现出丰富的细节。完成线贴图生成后,对带有法线贴图的LOD模型进行纹理压缩。压缩纹理的目的是减少数据量,同时保持较高的纹理质量。常用的纹理压缩算法包括JPEG、PNG或专门的3D纹理压缩技术如S3TC等。构建LOD切换策略,决定在不同的距离和视角下如何在不同的LOD层级之间切换,从而优化渲染性能。LOD切换策略可以基于节点的屏幕占有面积或距离等因素来决定何时切换到较低或较高的LOD层级。将压缩纹理的LOD模型、空间索引结构和LOD切换策略打包,得到多级别细节轻量化BIM模型。例如,在一个建筑场景中,远景使用低细节级别的模型,节省计算资源;而近景则使用高细节级别的模型,确保视觉效果的精细度。in, Is a node The importance rating of is the visibility score of the node, is the complexity score of the node, and is a weight factor. According to the node importance list, mesh simplification is performed for each LOD level to reduce the number of vertices and faces of the mesh while retaining as many visual features as possible to form a multi-level simplified mesh. For each LOD level, a line map is generated to enhance the visual details. Line maps add fine lines and normal information to the surface of the model, so that the model can still show rich details even with low geometric details. After the line map is generated, the LOD model with normal map is texture compressed. The purpose of compressing textures is to reduce the amount of data while maintaining high texture quality. Common texture compression algorithms include JPEG, PNG, or specialized 3D texture compression technologies such as S3TC. Construct an LOD switching strategy to decide how to switch between different LOD levels at different distances and viewing angles, thereby optimizing rendering performance. The LOD switching strategy can decide when to switch to a lower or higher LOD level based on factors such as the screen area or distance of the node. The LOD model of compressed textures, the spatial index structure, and the LOD switching strategy are packaged to obtain a multi-level detail lightweight BIM model. For example, in an architectural scene, low-detail models are used for distant views to save computing resources, while high-detail models are used for close views to ensure the refinement of visual effects.
在一具体实施例中,执行步骤S106的过程可以具体包括如下步骤:In a specific embodiment, the process of executing step S106 may specifically include the following steps:
(1)对多级别细节的轻量化模型进行八叉树空间划分,得到初始空间划分结构,并对初始空间划分结构中的每个叶节点进行几何复杂度指标计算,得到节点复杂度列表;(1) Perform octree space partitioning on the lightweight model with multiple levels of detail to obtain the initial space partitioning structure, and calculate the geometric complexity index of each leaf node in the initial space partitioning structure to obtain a node complexity list;
(2)根据节点复杂度列表,对几何复杂度指标超过几何复杂度阈值的叶节点进行再划分,得到优化后的空间划分结构;(2) According to the node complexity list, the leaf nodes whose geometric complexity index exceeds the geometric complexity threshold are redivided to obtain the optimized space division structure;
(3)对优化后的空间划分结构中的每个叶节点提取包含的几何和属性数据,构建独立的子模型,并计算子模型的包围球半径和中心点,得到分块的轻量化模型;(3) Extract the geometric and attribute data contained in each leaf node in the optimized space partition structure, build an independent sub-model, and calculate the bounding sphere radius and center point of the sub-model to obtain a block-based lightweight model;
(4)对分块的轻量化模型中的每个子模型进行视锥体剔除优化,得到可见分块列表;(4) Perform frustum culling optimization on each sub-model in the block lightweight model to obtain a list of visible blocks;
(5)对可见分块列表进行遮挡剔除,得到无遮挡分块集合,并对无遮挡分块集合进行选择,得到渲染分块集;(5) Perform occlusion culling on the visible block list to obtain a set of unoccluded blocks, and select the set of unoccluded blocks to obtain a rendering block set;
(6)将渲染分块集组织为渲染批次,对具有相同材质的分块进行合并,生成优化的渲染数据结构,并将优化的渲染数据结构加载到渲染引擎中进行实时渲染,得到实时渲染结果。(6) Organizing the rendering block sets into rendering batches, merging blocks with the same material, generating an optimized rendering data structure, and loading the optimized rendering data structure into the rendering engine for real-time rendering to obtain real-time rendering results.
具体的,对多级别细节的轻量化模型进行八叉树空间划分。八叉树是一种用于三维空间分区的数据结构,将空间递归地划分为八个子空间(称为八分之一空间)。定义整个场景的轴对齐边界框,然后根据场景的三维中心点将其划分为八个子空间。对于每个子空间,如果包含的几何复杂度超过预定的阈值,则进一步递归划分,直到满足复杂度限制或达到最小划分单元的大小。对初始的空间划分结构中的每个叶节点进行几何复杂度指标计算。几何复杂度通常由节点中的顶点和面片数量决定。定义几何复杂度指标为:Specifically, the lightweight model with multiple levels of detail is partitioned using an octree space. An octree is a data structure used for partitioning three-dimensional space, which recursively divides the space into eight subspaces (called eighth spaces). An axis-aligned bounding box is defined for the entire scene, and then it is divided into eight subspaces based on the three-dimensional center point of the scene. For each subspace, if the contained geometric complexity exceeds a predetermined threshold, further recursive partitioning is performed until the complexity limit is met or the size of the minimum partitioning unit is reached. A geometric complexity index is calculated for each leaf node in the initial spatial partitioning structure. Geometric complexity is usually determined by the number of vertices and facets in the node. Define geometric complexity index for:
; ;
其中,表示第个节点中的顶点数量,表示面片数量,是一个权重因子,用于平衡顶点和面片在复杂度中的贡献。根据该公式,计算出每个叶节点的复杂度指标,生成节点复杂度列表。根据节点复杂度列表,识别出哪些节点的几何复杂度超过了预设的阈值。对于这些节点,进行再划分,以进一步细化空间划分结构。这种再划分继续递归应用八叉树分割,直到所有节点的复杂度都在阈值以下。在优化后的空间划分结构中,对每个叶节点提取其包含的几何和属性数据,构建独立的子模型。对于每个子模型,计算其包围球半径和中心点。包围球是一个球形区域,可以包围子模型的所有几何元素。其半径和中心点可以通过以下公式计算:in, Indicates The number of vertices in a node, Indicates the number of patches, Is a weight factor used to balance the contribution of vertices and faces in complexity. According to the formula, the complexity index of each leaf node is calculated and a node complexity list is generated. According to the node complexity list, identify which nodes have a geometric complexity that exceeds a preset threshold. For these nodes, redivision is performed to further refine the spatial division structure. This redivision continues to recursively apply octree partitioning until the complexity of all nodes is below the threshold. In the optimized spatial division structure, the geometry and attribute data contained in each leaf node are extracted to construct an independent sub-model. For each sub-model, its bounding sphere radius and center point are calculated. The bounding sphere is a spherical area that can enclose all geometric elements of the sub-model. Its radius and center point It can be calculated by the following formula:
; ;
其中,是子模型中第个顶点的坐标,是顶点的总数,表示顶点到中心点的欧几里得距离。包围球的计算有助于后续的视锥体剔除和遮挡剔除优化。对分块的轻量化模型中的每个子模型进行视锥体剔除优化。视锥体剔除是指在渲染过程中,根据摄像机视角剔除不在视野中的部分,从而减少渲染计算量。通过计算每个子模型的包围球是否与视锥体相交,决定是否剔除该子模型,得到的可见分块列表只包含视锥体内的部分。在可见分块列表的基础上,进行遮挡剔除。通过检测某些分块是否被其他分块完全遮挡,剔除那些不可见的分块。遮挡剔除通常利用深度缓冲区(Z-buffer)技术,通过记录场景中每个像素的最远深度,确定哪些分块被前面的几何体遮挡,得到的无遮挡分块集合中只包含那些没有被其他对象遮挡的部分。从无遮挡分块集合中进行选择,得到最终的渲染分块集。根据场景的需要和性能限制,选择最重要或最详细的部分进行渲染。将渲染分块集组织为渲染批次,对具有相同材质的分块进行合并,以减少渲染时的状态切换。生成优化的渲染数据结构,包括合并后的几何数据、材质和纹理信息。将优化的渲染数据结构加载到渲染引擎中进行实时渲染。实时渲染的结果展示了经过优化的轻量化模型,具有高效的渲染性能和丰富的视觉细节。in, It is the first The coordinates of the vertices, is the total number of vertices, Represents the Euclidean distance from the vertex to the center point. The calculation of the bounding sphere helps with subsequent frustum culling and occlusion culling optimization. Perform frustum culling optimization on each sub-model in the block lightweight model. Frustum culling refers to the culling of parts that are not in the field of view according to the camera perspective during the rendering process, thereby reducing the amount of rendering calculations. By calculating whether the bounding sphere of each sub-model intersects with the frustum, it is decided whether to cull the sub-model. The resulting visible block list only contains the parts within the frustum. Based on the visible block list, occlusion culling is performed. By detecting whether some blocks are completely occluded by other blocks, those invisible blocks are culled. Occlusion culling usually uses the depth buffer (Z-buffer) technology to record the farthest depth of each pixel in the scene to determine which blocks are occluded by the front geometry. The resulting unoccluded block set only contains those parts that are not occluded by other objects. Select from the unoccluded block set to obtain the final rendering block set. According to the needs of the scene and performance constraints, the most important or detailed parts are selected for rendering. Organize rendering tile sets into rendering batches, and merge tiles with the same material to reduce state switching during rendering. Generate an optimized rendering data structure, including merged geometry data, material, and texture information. Load the optimized rendering data structure into the rendering engine for real-time rendering. The real-time rendering results show an optimized lightweight model with efficient rendering performance and rich visual details.
在一具体实施例中,执行步骤对优化后的空间划分结构中的每个叶节点提取包含的几何和属性数据,构建独立的子模型,并计算子模型的包围球半径和中心点,得到分块的轻量化模型的过程可以具体包括如下步骤:In a specific embodiment, the execution step extracts the geometry and attribute data contained in each leaf node in the optimized space partition structure, constructs an independent sub-model, and calculates the bounding sphere radius and center point of the sub-model to obtain a block-based lightweight model, which may specifically include the following steps:
(1)对优化后的空间划分结构进行深度优先遍历,得到叶节点集合;(1) Perform a depth-first traversal on the optimized space partition structure to obtain a set of leaf nodes;
(2)对叶节点集合中每个叶节点的几何数据进行边界分析,并通过计算每个叶节点的几何数据中所有顶点的坐标极值,得到轴对齐包围盒;(2) Perform boundary analysis on the geometric data of each leaf node in the leaf node set, and obtain an axis-aligned bounding box by calculating the coordinate extreme values of all vertices in the geometric data of each leaf node;
(3)根据轴对齐包围盒的对角线长度,对每个叶节点的几何数据进行网格重采样,得到重采样后的几何数据;(3) According to the diagonal length of the axis-aligned bounding box, the geometric data of each leaf node is grid-resampled to obtain the resampled geometric data;
(4)对重采样后的几何数据和每个叶节点中的属性数据进行关联匹配,得到子模型数据集,并对子模型数据集进行分析,构建子模型的局部坐标系;(4) Associating and matching the resampled geometric data with the attribute data in each leaf node to obtain the sub-model data set, and analyzing the sub-model data set to construct the local coordinate system of the sub-model;
(5)基于局部坐标系,对子模型数据集中的数据点进行坐标变换,得到子模型的中心点和包围球半径;(5) Based on the local coordinate system, the data points in the sub-model data set are transformed to obtain the center point and bounding sphere radius of the sub-model;
(6)根据子模型数据集、包围球半径和中心点生成对应的分块的轻量化模型。(6) Generate a corresponding block lightweight model based on the sub-model data set, bounding sphere radius and center point.
具体的,在八叉树的深度优先遍历过程中,系统从根节点开始,依次访问每个子节点直到最深的叶节点,然后回溯到上一个未完全访问的节点继续遍历。通过这种方式,得到整个空间划分的所有叶节点集合。这个过程确保系统对模型中的每一个子区域都有完整的处理,不会遗漏任何细节。对叶节点集合中每个叶节点的几何数据进行边界分析,确定每个子模型的空间范围和边界情况。边界分析的核心是计算每个叶节点中所有顶点的坐标极值,即找到所有顶点在每个坐标轴上的最小值和最大值。这些极值用于构建轴对齐包围盒(AABB),其定义了模型的最小外包矩形。AABB的计算公式为:Specifically, in the depth-first traversal of the octree, the system starts from the root node, visits each child node in turn until the deepest leaf node, and then backtracks to the last node that was not fully visited to continue traversing. In this way, a set of all leaf nodes for the entire space division is obtained. This process ensures that the system has complete processing of every sub-area in the model without missing any details. The geometric data of each leaf node in the leaf node set is subjected to boundary analysis to determine the spatial range and boundary conditions of each sub-model. The core of the boundary analysis is to calculate the coordinate extreme values of all vertices in each leaf node, that is, to find the minimum and maximum values of all vertices on each coordinate axis. These extreme values are used to construct an axis-aligned bounding box (AABB), which defines the minimum enclosing rectangle of the model. The calculation formula of AABB is:
; ;
; ;
其中,分别表示顶点的三个坐标轴。根据AABB的对角线长度,对每个叶节点的几何数据进行网格重采样,保持模型主要特征的同时,减少顶点和面片的数量。重采样过程可能涉及简化曲面、减少顶点密度等技术,以便降低数据复杂度。对角线长度的计算公式为:in, Represents the three coordinate axes of the vertex. According to the diagonal length of the AABB, the geometric data of each leaf node is meshed and resampled to reduce the number of vertices and faces while maintaining the main features of the model. The resampling process may involve techniques such as simplifying the surface and reducing vertex density to reduce data complexity. The formula for calculating the diagonal length is:
; ;
其中,表示AABB的对角线长度。根据这一长度,确定重采样的精度和范围。在重采样完成后,将重采样后的几何数据与每个叶节点中的属性数据进行关联匹配,确保几何和属性数据的完整性和一致性,得到子模型数据集。属性数据包括材质、颜色、纹理等,需要与几何数据精确对应,以确保模型的视觉效果。对子模型数据集进行分析,构建子模型的局部坐标系。局部坐标系的建立有助于标准化和简化后续处理,包括模型的变换、显示和存储。局部坐标系的原点通常选择在子模型的几何中心,方向轴根据模型的主要几何特征决定。在局部坐标系的基础上,对子模型数据集中的数据点进行坐标变换。通过变换,得到子模型的中心点和包围球半径。中心点由所有顶点的平均值计算得到:in, Represents the diagonal length of the AABB. Based on this length, determine the accuracy and range of the resampling. After the resampling is completed, the resampled geometric data is associated and matched with the attribute data in each leaf node to ensure the integrity and consistency of the geometric and attribute data, and obtain the sub-model data set. Attribute data includes material, color, texture, etc., which need to correspond accurately to the geometric data to ensure the visual effect of the model. Analyze the sub-model data set and construct the local coordinate system of the sub-model. The establishment of a local coordinate system helps to standardize and simplify subsequent processing, including model transformation, display and storage. The origin of the local coordinate system is usually selected at the geometric center of the sub-model, and the direction axis is determined according to the main geometric features of the model. Based on the local coordinate system, the data points in the sub-model data set are transformed. Through the transformation, the center point and the radius of the enclosing sphere of the sub-model are obtained. Center point Calculated from the average value of all vertices:
; ;
其中,是第个顶点的位置,是顶点的总数。包围球半径则是所有顶点到中心点的最大距离:in, It is The position of the vertices, is the total number of vertices. The radius of the bounding sphere is the maximum distance from all vertices to the center point:
; ;
这些参数定义了子模型的空间范围和位置,有助于进一步的空间管理和显示优化。根据子模型数据集、包围球半径和中心点生成对应的分块的轻量化模型。分块模型在保存了模型的主要几何和视觉特征的同时,降低了数据量和复杂度。例如,在一个复杂的建筑场景中,某些部分如墙壁或地板可能包含大量的重复结构或细节,通过重采样和局部坐标系的变换,这些部分可以被有效地简化,而不显著影响整体视觉效果。These parameters define the spatial range and position of the sub-model, which helps further space management and display optimization. Generate the corresponding block lightweight model according to the sub-model data set, bounding sphere radius and center point. The block model reduces the data volume and complexity while preserving the main geometric and visual features of the model. For example, in a complex architectural scene, some parts such as walls or floors may contain a large number of repeated structures or details. Through resampling and transformation of the local coordinate system, these parts can be effectively simplified without significantly affecting the overall visual effect.
在一具体实施例中,执行步骤对可见分块列表进行遮挡剔除,得到无遮挡分块集合,并对无遮挡分块集合进行选择,得到渲染分块集的过程可以具体包括如下步骤:In a specific embodiment, the execution step performs occlusion culling on the visible block list to obtain a set of unoccluded blocks, and the process of selecting the set of unoccluded blocks to obtain a rendering block set may specifically include the following steps:
(1)对可见分块列表中的每个分块进行深度排序,得到排序后的分块列表;(1) Depth-sort each block in the visible block list to obtain a sorted block list;
(2)构建层次化Z-buffer结构,将视锥体划分为m×m个网格,每个网格对应一个最大深度值,得到初始Z-buffer结构,m为正整数;(2) Construct a hierarchical Z-buffer structure, divide the view cone into m×m grids, each grid corresponds to a maximum depth value, and obtain the initial Z-buffer structure, where m is a positive integer;
(3)对排序后的分块列表进行遍历,对每个分块的包围球进行视锥体裁剪和遮挡剔除,得到无遮挡分块集合;(3) Traverse the sorted block list, perform frustum clipping and occlusion culling on the bounding sphere of each block, and obtain a set of unobstructed blocks;
(4)将无遮挡分块集合中每个分块的2D投影多边形与初始Z-buffer结构中对应的网格进行重叠度计算,得到重叠网格集;(4) Calculate the overlap between the 2D projection polygon of each block in the unobstructed block set and the corresponding grid in the initial Z-buffer structure to obtain an overlapping grid set;
(5)对重叠网格集中的分块进行重要性评分,得到评分后的分块集合,并根据预设的最大渲染三角形数,对评分后的分块集合中的分块按评分从高到低进行选择,累加选中分块的几何复杂度直至达到最大渲染三角形数,得到渲染分块集。(5) The importance of the blocks in the overlapping mesh set is scored to obtain a scored block set. Based on the preset maximum number of rendering triangles, the blocks in the scored block set are selected from high to low according to the scores, and the geometric complexity of the selected blocks is accumulated until the maximum number of rendering triangles is reached to obtain a rendering block set.
具体的,对可见分块列表中的每个分块进行深度排序。深度通常指从摄像机到物体的距离。通过计算分块中某个代表性点(如分块的包围球中心点)到摄像机的距离来确定分块的深度。公式为:Specifically, each block in the visible block list is sorted by depth. Depth usually refers to the distance from the camera to the object. The depth of the block is determined by calculating the distance from a representative point in the block (such as the center point of the bounding sphere of the block) to the camera. The formula is:
; ;
其中,表示深度值,是分块中心点的坐标,是摄像机的位置。根据该公式,计算出每个分块的深度,并按深度值从远到近排序,得到排序后的分块列表,确保在后续的遮挡剔除过程中,远离摄像机的分块先处理,从而在需要时能够被更接近摄像机的分块遮挡。构建层次化Z-buffer结构,将视锥体划分为个网格,每个网格对应一个最大深度值,得到初始Z-buffer结构。在这个过程中,Z-buffer用于记录每个像素的最远深度值,确保在渲染时正确处理遮挡关系。其中,是正整数,表示网格的分辨率,分辨率越高,遮挡剔除的精度也越高。对排序后的分块列表进行遍历,对每个分块的包围球进行视锥体裁剪和遮挡剔除。视锥体裁剪是指检查分块的包围球是否与摄像机的视锥体相交。如果包围球完全位于视锥体外部,则该分块可以被剔除。遮挡剔除则是通过比较分块的深度值和Z-buffer中的深度值来决定是否被遮挡。如果某个分块的深度大于当前Z-buffer中对应位置的深度,则它可能被前面的分块完全遮挡,因此可以剔除。通过这些步骤,得到无遮挡分块集合。将无遮挡分块集合中每个分块的2D投影多边形与初始Z-buffer结构中对应的网格进行重叠度计算,以确定这些分块在屏幕空间中的覆盖情况。将每个分块的3D几何体投影到2D平面上,并计算这些投影与Z-buffer网格的重叠程度。重叠度的计算可以通过面积覆盖或像素占用比例来衡量,得到重叠网格集。对重叠网格集中的分块进行重要性评分。评分标准可以包括分块的几何复杂度、材质特性、用户兴趣点等。公式可以表示为:in, Indicates the depth value, are the coordinates of the block center point, is the position of the camera. According to this formula, the depth of each block is calculated and sorted from far to near by depth value to obtain a sorted block list, ensuring that in the subsequent occlusion culling process, the blocks far away from the camera are processed first, so that they can be occluded by the blocks closer to the camera when necessary. Construct a hierarchical Z-buffer structure and divide the view cone into grids, each grid corresponds to a maximum depth value, and the initial Z-buffer structure is obtained. In this process, the Z-buffer is used to record the farthest depth value of each pixel to ensure that the occlusion relationship is correctly handled during rendering. is a positive integer, which indicates the resolution of the grid. The higher the resolution, the higher the accuracy of occlusion culling. The sorted list of blocks is traversed, and the bounding sphere of each block is subjected to frustum clipping and occlusion culling. Frustum clipping refers to checking whether the bounding sphere of the block intersects with the camera's frustum. If the bounding sphere is completely outside the frustum, the block can be culled. Occlusion culling determines whether it is occluded by comparing the depth value of the block with the depth value in the Z-buffer. If the depth of a block is greater than the depth of the corresponding position in the current Z-buffer, it may be completely occluded by the previous block, so it can be culled. Through these steps, a set of unoccluded blocks is obtained. The overlap between the 2D projection polygon of each block in the set of unoccluded blocks and the corresponding grid in the initial Z-buffer structure is calculated to determine the coverage of these blocks in screen space. The 3D geometry of each block is projected onto a 2D plane, and the overlap between these projections and the Z-buffer grid is calculated. The overlap can be calculated by measuring the area coverage or pixel occupancy ratio to obtain an overlapping grid set. The importance of the blocks in the overlapping grid set is scored. The scoring criteria can include the geometric complexity of the blocks, material properties, user interest points, etc. The formula can be expressed as:
; ;
其中,是分块的重要性评分,是分块的几何复杂度,例如顶点或面片数量;是材质特性评分,例如材质的复杂性或反射率;是用户兴趣评分,例如用户特别关注的模型部分;是相应的权重因子。这些评分指标的组合确保了重要的分块得到优先渲染。根据预设的最大渲染三角形数,对评分后的分块集合中的分块按评分从高到低进行选择。累加选中分块的几何复杂度,直到达到最大渲染三角形数。确保在资源有限的情况下,最重要的分块优先得到渲染,优化视觉效果和渲染效率。通过以上步骤,最终得到的渲染分块集包含了所有需要渲染的分块。in, It is block The importance rating of is the geometric complexity of the tile, such as the number of vertices or faces; is a material property score, such as the complexity or reflectivity of the material; is the user interest score, i.e., the part of the model that the user is particularly interested in; is the corresponding weight factor. The combination of these scoring indicators ensures that important tiles are rendered first. According to the preset maximum number of rendered triangles, the tiles in the scored tile set are selected from high to low according to the score. The geometric complexity of the selected tiles is accumulated until the maximum number of rendered triangles is reached. Ensure that the most important tiles are rendered first when resources are limited, optimize visual effects and rendering efficiency. Through the above steps, the final rendering tile set contains all the tiles that need to be rendered.
上面对本发明实施例中BIM快速轻量化的方法进行了描述,下面对本发明实施例中BIM快速轻量化的装置进行描述,请参阅图2,本发明实施例中BIM快速轻量化的装置一个实施例包括:The method for BIM rapid lightweighting in the embodiment of the present invention is described above. The device for BIM rapid lightweighting in the embodiment of the present invention is described below. Please refer to FIG. 2. An embodiment of the device for BIM rapid lightweighting in the embodiment of the present invention includes:
分类筛选模块201,用于确定轻量化目标,并对BIM模型数据进行分类筛选,得到初始几何数据、初始属性数据和辅助数据;The classification and screening module 201 is used to determine the lightweight target and classify and screen the BIM model data to obtain initial geometry data, initial attribute data and auxiliary data;
网格简化模块202,用于采用Quadric Error Metrics算法对初始几何数据进行网格简化处理,得到第一几何数据;A mesh simplification module 202 is used to perform mesh simplification processing on the initial geometric data using a Quadric Error Metrics algorithm to obtain first geometric data;
处理模块203,用于通过Decimation算法对第一几何数据进行多边形边缘删除和重新三角化处理,得到第二几何数据;The processing module 203 is used to perform polygon edge deletion and re-triangulation processing on the first geometric data by using a Decimation algorithm to obtain second geometric data;
压缩模块204,用于使用Draco工具对第二几何数据进行压缩处理,得到轻量化几何数据,并对初始属性数据进行JSON格式转换和压缩处理,得到轻量化属性数据;The compression module 204 is used to compress the second geometry data using the Draco tool to obtain lightweight geometry data, and to convert and compress the initial attribute data into JSON format to obtain lightweight attribute data;
转换模块205,用于对轻量化几何数据和轻量化属性数据进行格式转换,得到轻量化BIM模型,并对轻量化BIM模型进行分层细节处理,生成多级别细节的轻量化模型;The conversion module 205 is used to convert the format of the lightweight geometric data and the lightweight attribute data to obtain a lightweight BIM model, and perform layered detail processing on the lightweight BIM model to generate a lightweight model with multiple levels of details;
渲染模块206,用于对多级别细节的轻量化模型进行空间分块和优化,得到分块的轻量化模型,并将分块的轻量化模型导入渲染引擎中进行实时渲染,得到实时渲染结果。The rendering module 206 is used to spatially divide and optimize the lightweight model with multiple levels of details to obtain a divided lightweight model, and import the divided lightweight model into a rendering engine for real-time rendering to obtain a real-time rendering result.
通过上述各个组成部分的协同合作,本发明的文件大小显著减小,通过几何简化、数据压缩和格式转换,BIM模型的文件大小大幅度减小。减少的文件大小有助于更高效地进行数据传输和存储,特别是在带宽有限的网络环境中。提高渲染和加载性能,通过网格简化和使用层次细节模型(LOD),显著提升了模型在各种设备(如移动设备、网页浏览器、VR/AR设备)上的渲染和加载性能。用户能够更快速地查看和操作BIM模型,改善了用户体验。保留关键数据,尽管进行了轻量化处理,但关键的几何信息和属性数据得以保留,确保模型在准确性和完整性方面没有重大损失。通过数据筛选和分类,保留了项目所需的核心数据,支持后续的设计、施工和运维工作。提高数据兼容性和互操作性,转换为通用的轻量化数据格式(如glTF、IFC、OBJ等),提高了模型在不同平台和应用程序之间的兼容性和互操作性。轻量化后的模型可以在多种软件环境中使用,减少了数据转换和适配的复杂性。优化的工作流程,通过标准化的轻量化流程和工具集成,简化了BIM模型处理的工作流程。工作流程优化后,团队可以更高效地进行BIM数据管理和应用,减少了手动操作和出错的可能性。支持动态数据和实时应用,通过空间分块和索引机制,支持动态数据和实时应用场景。在智能建筑、智慧城市等应用中,可以高效处理和展示实时变化的数据,提升决策的及时性和准确性。减少硬件资源需求,轻量化后的BIM模型对硬件资源(如存储、内存、处理器)的需求降低,适用于各种计算能力的设备。使得BIM技术能够在更多类型的设备上应用,包括低端计算设备和移动终端。更便捷的协作,轻量化后的模型更容易在团队之间共享和协作,减少了文件传输和加载的时间。支持多团队、多专业之间的高效协作,提升项目整体的工作效率。Through the synergy of the above-mentioned components, the file size of the present invention is significantly reduced. Through geometric simplification, data compression and format conversion, the file size of the BIM model is greatly reduced. The reduced file size helps to transfer and store data more efficiently, especially in a network environment with limited bandwidth. Improve rendering and loading performance. Through mesh simplification and the use of level of detail models (LOD), the rendering and loading performance of the model on various devices (such as mobile devices, web browsers, VR/AR devices) is significantly improved. Users can view and operate BIM models more quickly, improving the user experience. Retain key data. Despite the lightweight processing, key geometric information and attribute data are retained to ensure that the model has no significant loss in accuracy and integrity. Through data screening and classification, the core data required for the project is retained to support subsequent design, construction and operation and maintenance work. Improve data compatibility and interoperability, convert to a common lightweight data format (such as glTF, IFC, OBJ, etc.), and improve the compatibility and interoperability of the model between different platforms and applications. The lightweight model can be used in a variety of software environments, reducing the complexity of data conversion and adaptation. Optimized workflows simplify the workflow of BIM model processing through standardized lightweight processes and tool integration. After the workflow is optimized, the team can manage and apply BIM data more efficiently, reducing the possibility of manual operations and errors. Support dynamic data and real-time applications, through spatial block and indexing mechanisms, support dynamic data and real-time application scenarios. In applications such as smart buildings and smart cities, real-time changing data can be efficiently processed and displayed to improve the timeliness and accuracy of decision-making. Reduce the demand for hardware resources. The lightweight BIM model has lower demand for hardware resources (such as storage, memory, and processors) and is suitable for devices with various computing capabilities. BIM technology can be applied on more types of devices, including low-end computing devices and mobile terminals. More convenient collaboration. The lightweight model is easier to share and collaborate between teams, reducing the time for file transfer and loading. Support efficient collaboration between multiple teams and multiple disciplines to improve the overall work efficiency of the project.
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,系统和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。Those skilled in the art can clearly understand that, for the convenience and brevity of description, the specific working processes of the above-described systems, systems and units can refer to the corresponding processes in the aforementioned method embodiments and will not be repeated here.
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。If the integrated unit is implemented in the form of a software functional unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the present invention is essentially or the part that contributes to the prior art or the whole or part of the technical solution can be embodied in the form of a software product. The computer software product is stored in a storage medium, including several instructions to enable a computer device (which can be a personal computer, server, or network device, etc.) to perform all or part of the steps of the method described in each embodiment of the present invention. The aforementioned storage medium includes: U disk, mobile hard disk, read-only memory (ROM), random access memory (RAM), disk or optical disk and other media that can store program code.
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。As described above, the above embodiments are only used to illustrate the technical solutions of the present invention, rather than to limit the same. Although the present invention has been described in detail with reference to the aforementioned embodiments, those skilled in the art should understand that the technical solutions described in the aforementioned embodiments may still be modified, or some of the technical features thereof may be replaced by equivalents. However, these modifications or replacements do not deviate the essence of the corresponding technical solutions from the spirit and scope of the technical solutions of the embodiments of the present invention.
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202411281736.0ACN118799529B (en) | 2024-09-13 | 2024-09-13 | A fast and lightweight method for BIM |
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202411281736.0ACN118799529B (en) | 2024-09-13 | 2024-09-13 | A fast and lightweight method for BIM |
| Publication Number | Publication Date |
|---|---|
| CN118799529Atrue CN118799529A (en) | 2024-10-18 |
| CN118799529B CN118799529B (en) | 2025-04-04 |
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202411281736.0AActiveCN118799529B (en) | 2024-09-13 | 2024-09-13 | A fast and lightweight method for BIM |
| Country | Link |
|---|---|
| CN (1) | CN118799529B (en) |
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN119271640A (en)* | 2024-12-10 | 2025-01-07 | 浙江中控信息产业股份有限公司 | Model data processing method and model data processing device |
| CN119475864A (en)* | 2024-10-23 | 2025-02-18 | 长沙眸瑞网络科技有限公司 | A fast and lightweight method for BIM models based on GPU high-performance computing |
| CN119579751A (en)* | 2025-02-06 | 2025-03-07 | 广州凡拓数字创意科技股份有限公司 | A model display control method, device and medium based on digital twin system |
| CN119942005A (en)* | 2025-04-09 | 2025-05-06 | 中国人民解放军陆军航空兵学院 | A model lightweight method for MR head-mounted display equipment |
| CN119962056A (en)* | 2025-02-24 | 2025-05-09 | 湖南经研电力设计有限公司 | Lightweight processing method and system for substation GIM model |
| CN120032065A (en)* | 2025-04-21 | 2025-05-23 | 之江实验室 | Continuous detail layering representation and dynamic reconstruction method for large-scale triangular meshes |
| CN120147580A (en)* | 2025-05-16 | 2025-06-13 | 沈阳锐取科技有限公司 | Industrial 3D model data processing method and equipment |
| CN120219519A (en)* | 2025-05-30 | 2025-06-27 | 浙江华东工程数字技术有限公司 | A method, device, medium and equipment for encoding BIM model based on mapping rules |
| CN120449610A (en)* | 2025-07-10 | 2025-08-08 | 浙江远算科技有限公司 | Model quality assessment optimization method, device and server for industrial simulation applications |
| CN120562158A (en)* | 2025-07-31 | 2025-08-29 | 浙江华东工程数字技术有限公司 | Grid model and entity model fusion method, computer equipment and storage medium |
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20040252889A1 (en)* | 2003-06-13 | 2004-12-16 | Microsoft Corporation | System and process for generating representations of objects using a directional histogram model and matrix descriptor |
| CN101231761A (en)* | 2008-01-29 | 2008-07-30 | 南京大学 | A Mesh Model Simplification Method Preserving Appearance Features |
| KR101465481B1 (en)* | 2013-12-23 | 2014-12-10 | 한국건설기술연구원 | Bim data processing system for converting bim data format |
| CN114283231A (en)* | 2021-12-27 | 2022-04-05 | 奥格科技股份有限公司 | LOD-based BIM model lightweight construction and display method |
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20040252889A1 (en)* | 2003-06-13 | 2004-12-16 | Microsoft Corporation | System and process for generating representations of objects using a directional histogram model and matrix descriptor |
| CN101231761A (en)* | 2008-01-29 | 2008-07-30 | 南京大学 | A Mesh Model Simplification Method Preserving Appearance Features |
| KR101465481B1 (en)* | 2013-12-23 | 2014-12-10 | 한국건설기술연구원 | Bim data processing system for converting bim data format |
| CN114283231A (en)* | 2021-12-27 | 2022-04-05 | 奥格科技股份有限公司 | LOD-based BIM model lightweight construction and display method |
| Title |
|---|
| 王道臣 等: "基于限制性四叉树LOD大规模地形预处理算法", 计算机工程与应用, vol. 43, no. 24, 21 August 2007 (2007-08-21), pages 107 - 109* |
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN119475864A (en)* | 2024-10-23 | 2025-02-18 | 长沙眸瑞网络科技有限公司 | A fast and lightweight method for BIM models based on GPU high-performance computing |
| CN119271640A (en)* | 2024-12-10 | 2025-01-07 | 浙江中控信息产业股份有限公司 | Model data processing method and model data processing device |
| CN119579751B (en)* | 2025-02-06 | 2025-05-30 | 广州凡拓数字创意科技股份有限公司 | A model display control method, device and medium based on digital twin system |
| CN119579751A (en)* | 2025-02-06 | 2025-03-07 | 广州凡拓数字创意科技股份有限公司 | A model display control method, device and medium based on digital twin system |
| CN119962056A (en)* | 2025-02-24 | 2025-05-09 | 湖南经研电力设计有限公司 | Lightweight processing method and system for substation GIM model |
| CN119962056B (en)* | 2025-02-24 | 2025-08-19 | 湖南经研电力设计有限公司 | Lightweight processing method and system for substation GIM model |
| CN119942005A (en)* | 2025-04-09 | 2025-05-06 | 中国人民解放军陆军航空兵学院 | A model lightweight method for MR head-mounted display equipment |
| CN120032065B (en)* | 2025-04-21 | 2025-07-08 | 之江实验室 | Continuous detail layering representation and dynamic reconstruction method for large-scale triangular meshes |
| CN120032065A (en)* | 2025-04-21 | 2025-05-23 | 之江实验室 | Continuous detail layering representation and dynamic reconstruction method for large-scale triangular meshes |
| CN120147580A (en)* | 2025-05-16 | 2025-06-13 | 沈阳锐取科技有限公司 | Industrial 3D model data processing method and equipment |
| CN120219519A (en)* | 2025-05-30 | 2025-06-27 | 浙江华东工程数字技术有限公司 | A method, device, medium and equipment for encoding BIM model based on mapping rules |
| CN120449610A (en)* | 2025-07-10 | 2025-08-08 | 浙江远算科技有限公司 | Model quality assessment optimization method, device and server for industrial simulation applications |
| CN120449610B (en)* | 2025-07-10 | 2025-09-09 | 浙江远算科技有限公司 | Model quality assessment optimization method, device and server for industrial simulation applications |
| CN120562158A (en)* | 2025-07-31 | 2025-08-29 | 浙江华东工程数字技术有限公司 | Grid model and entity model fusion method, computer equipment and storage medium |
| Publication number | Publication date |
|---|---|
| CN118799529B (en) | 2025-04-04 |
| Publication | Publication Date | Title |
|---|---|---|
| CN118799529B (en) | A fast and lightweight method for BIM | |
| CN113158288B (en) | Information model geometric lightweight method based on component reuse and reassembly | |
| CN109145366B (en) | Lightweight visualization method of building information model based on Web3D | |
| EP2446419B1 (en) | Compression of 3d meshes with repeated patterns | |
| US7098907B2 (en) | Method for converting explicitly represented geometric surfaces into accurate level sets | |
| WO2020206669A1 (en) | Self-adaptive point cloud stripe division method | |
| WO2019050519A1 (en) | Systems and methods for lightweight precise 3d visual format | |
| CN112989482B (en) | BIM model data generation method and device and building method and device | |
| CN116258804B (en) | BIM model light weight method based on digital-analog separation and compression optimization | |
| US8207965B2 (en) | Rewritable compression of triangulated data | |
| CN115393240A (en) | Method, device, electronic equipment and readable storage medium for GIS and BIM integration | |
| CN113724401A (en) | Three-dimensional model cutting method and device, computer equipment and storage medium | |
| CN114186318A (en) | A Revit model lightweight rendering method and device | |
| CN117609524A (en) | Visual analysis method, device and equipment based on three-dimensional R-tree spatial index | |
| CN115222879A (en) | A model surface reduction processing method, device, electronic device and storage medium | |
| CN119579751B (en) | A model display control method, device and medium based on digital twin system | |
| CN117078828A (en) | Texture model simplification method and device | |
| CN102763139A (en) | Image display device | |
| CN114937126B (en) | Flattening editing method, device, equipment and storage medium for quantifying grid topography | |
| CN119648515A (en) | Point cloud data processing method and device, storage medium and electronic device | |
| WO2022120542A1 (en) | Point cloud encoding method and apparatus, point cloud decoding method and apparatus, and computer-readable storage medium | |
| CN117911659A (en) | A method and system for constructing a visible association scene graph for industrial metaverse | |
| Ganovelli et al. | OCME: out-of-core mesh editing made practical | |
| CN119991907B (en) | A new energy station rendering method based on virtual micropolygon geometry technology | |
| CN119313750B (en) | Data compression method, device, equipment and storage medium for oblique photography model |
| 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 |