A Fast Scheduling and Rendering Method for the BIM Model Front End Based on WebGPU Acceleration

Through WebGPU technology, digital-analog separation and multi-threaded rendering of BIM models is solved, which solves the problem of poor performance of WebGL in rendering complex BIM models, realizes efficient rendering and retaining attribute information, and improves the rendering performance and effect of BIM models.

CN120014138BActive Publication Date: 2025-07-22POWERCHINA BEIJING ENG CORP
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202510101783.0
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2025-01-22
Publication Date
2025-07-22
Estimated Expiration
2045-01-22

AI Technical Summary

Technical Problem

Existing three-dimensional rendering engines such as WebGL have poor performance when rendering BIM models with complex geometric structures, making it difficult to meet the needs of efficient rendering and attribute information retention.

Method used

Using WebGPU technology, we use digital-analog separation and preprocessing of the BIM model, build a model tile group, and use the browser-side split-screen concurrent request mechanism and WebGPU shared memory technology to realize multi-threaded rendering and material texture map sharing, improving rendering efficiency.

Benefits of technology

It realizes efficient rendering visualization of BIM models in the browser, retains the management attribute information of the model, and improves rendering performance and effect.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120014138B_ABST
    Figure CN120014138B_ABST
Patent Text Reader

Abstract

The present invention provides a method for fast scheduling and rendering of the BIM model front end based on WebGPU acceleration, including: performing digital-analog separation preprocessing on the BIM model; configuring classification transmission services and query services; initially loading the BIM model by the front-end browser; screen partitioning and allocation of the geometric contours of model tiles; concurrent requests for the Bbox of the geometric contours of model tiles and sharing of material texture maps of model tiles; and implementing multi-threaded rendering by WebGPU. The present invention realizes the fast scheduling and rendering of the BIM model and its components through the browser-side split-screen concurrent request mechanism and the WebGPU shared memory technology. The present invention can achieve efficient rendering and visualization of the BIM model in the browser, while comprehensively retaining the management attributes of the BIM model, and is mainly applied to the rendering visualization and simulation analysis of BIM three-dimensional models in industries such as engineering digital twins and smart cities.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention belongs to the technical field of computer graphics, and particularly relates to a method for fast scheduling and rendering of the BIM model front end accelerated by WebGPU. Background Technique

[0002] The BIM model (i.e., Building Information Model) represents a building and its related information in a digital way. Compared with ordinary 3D models that only focus on showing geometric shape structures and appearance texture maps, the BIM model not only contains geometric structure information but also rich non-geometric structure information, such as material information, cost information, time information, etc. Specifically, the BIM model contains indoor and outdoor multi-level geometric structures, multi-scale geometric structures from a large range to local small models, and various complex functional attribute information. Among them, the geometric structure information includes three-dimensional geometric shapes and spatial relationships; the functional attribute information includes material attributes, structural attributes, and functional attributes; the time information includes construction progress and life cycle information; the cost information includes budget costs, economic analysis, and other related drawings, regulations, etc. The BIM model has characteristics such as dense geometric structures and complex file structures, and is generally used for building structure analysis, progress management, construction simulation, etc. The rendering and use of the BIM model should pay more attention to the retention of its attribute information while taking into account the geometric form. Only by retaining the component grouping and component attribute information of the BIM model is the core of the application of the BIM model. To achieve high-performance rendering applications of the BIM model, specific scheduling methods and rendering mechanisms need to be adopted.

[0003] Currently, the main 3D rendering engines are mainly technologies such as WebGL and UE. For example, Cesium, threejs, etc. all use the WebGL technology to perform visual rendering of 3D scenes in the form of triangular face data, focusing on the visual application of GIS data, and are suitable for the rendering of GIS oblique photography models (which are triangular face data structures themselves), but the rendering performance for the BIM model with dense geometric structures is not good. Therefore, how to improve the rendering performance of the BIM model with complex geometric characteristics is a difficult problem that needs to be solved currently. Summary of the Invention

[0004] Aiming at the defects existing in the prior art, the present invention provides a method for fast scheduling and rendering of the BIM model front end accelerated by WebGPU, which can effectively solve the above problems.

[0005] The technical solution adopted by the present invention is as follows:

[0006] The present invention provides a method for fast scheduling and rendering of the BIM model front end accelerated by WebGPU, including the following steps:

[0007] Step S1, perform digital model separation preprocessing on the BIM model:

[0008] Perform digital-analog separation preprocessing on the BIM model to obtain BIM model attribute information and the BIM model geometric structure; perform multi-region and multi-level division on the BIM model geometric structure to construct a model tile group; the model tile group includes multiple model tiles with a hierarchical relationship; each model tile includes a model tile geometric profile Bbox and a model tile material texture map;

[0009] Establish a logical association between each model tile geometric profile Bbox and the corresponding model tile attribute in the BIM model attribute information according to the coding value;

[0010] Store the model tile material texture map separately through a database; and write material texture map index information in each model tile geometric profile Bbox;

[0011] Step S2, configure the classification transmission service and the model tile attribute query service:

[0012] Configure the model tile geometric profile transmission service and the model tile material texture map transmission service; configure the query service for querying the BIM model attribute information according to the coding value to obtain the model tile attribute;

[0013] Step S3, the front-end browser initially loads the BIM model:

[0014] When the front-end browser initially requests to load the BIM model, the front-end browser obtains the model tile geometric profile Bbox_0 of the root node through the model tile geometric profile transmission service; the front-end browser obtains the geographical coordinates of the model tile geometric profile Bbox_0 of the root node according to the query service of the model tile attribute; then, the front-end browser renders the model tile geometric profile Bbox_0 of the root node at the position corresponding to the geographical coordinates on the screen;

[0015] Step S4, screen partitioning and allocation of model tile geometric profiles:

[0016] Divide the screen into multiple screen partitions according to the screen rendering range; determine several model tile geometric profiles Bbox required for the current rendering according to the distance and relative viewing angle relationship between the 3D scene rendering camera and the model tile geometric profile Bbox_0 of the root node; and further adopt an optimal strategy to allocate each model tile geometric profile Bbox to be requested to each screen partition;

[0017] Step S5, concurrent requests for model tile geometric profiles Bbox and sharing of model tile material texture maps:

[0018] Each screen partition, in its corresponding thread, concurrently synchronously requests the corresponding model tile geometric contour Bbox through the model tile geometric contour transmission service, so as to obtain the requested model tile geometric contour Bbox;

[0019] Then, in the thread of each screen partition, the obtained model tile geometric contour Bbox is parsed to obtain the material texture map index information; then, it is judged whether there is a corresponding model tile material texture map in the shared memory area. If so, step S6 is executed; if not, the corresponding model tile material texture map is obtained through the model tile material texture map transmission service and written into the shared memory area, and then step S6 is executed;

[0020] Step S6, WebGPU realizes multi-threaded rendering:

[0021] Each screen partition, in its respective corresponding thread, renders the corresponding model tile geometric contour Bbox, then obtains the corresponding model tile material texture map from the shared memory area, and renders it to the corresponding position of the model tile geometric contour Bbox, realizing the rendering of the model tile with the material texture effect.

[0022] Preferably, the BIM model geometric structure is divided into multiple regions and multiple levels to construct a model tile group, specifically:

[0023] Determine the contour of the BIM model geometric structure, establish the minimum bounding volume of the BIM model geometric structure, which is the model tile of the 0th level, that is, the model tile of the root node;

[0024] The model tile of the 0th level is divided into 8 sub-tiles of the same size. If a certain sub-tile does not contain any patches of the BIM model, then this sub-tile is removed; the remaining sub-tiles are the sub-tiles of the model tile of the 0th level and at the same time the model tiles of the 1st level;

[0025] For each model tile of the 1st level, if the size of the BIM model it contains is less than the size threshold, or if the number of patches of the BIM model it contains is less than the patch number threshold, then stop dividing it into the next level; otherwise, continue to divide it into 8 sub-tiles of the same size, and so on, thereby establishing the model tile group with the octree optimized structure of the BIM model.

[0026] Preferably, for the model tiles of each level, the model tile geometric contour Bbox it includes is the geometric contour of the outermost BIM model geometric structure contained in the model tile;

[0027] For each level of model tile, the model tile material texture map it includes is the surface material texture map of the outermost BIM model geometric structure contained in the model tile.

[0028] Preferably, establish a logical association between each model tile geometric profile Bbox and the corresponding model tile attribute in the BIM model attribute information according to the coding value, specifically:

[0029] Split the BIM model attribute information into the model attribute information of each BIM sub-component, and use the BIM sub-component ID as the unique coding value to store the model attribute information of each corresponding BIM sub-component;

[0030] Each model tile geometric profile Bbox also uses the corresponding BIM sub-component ID as the unique coding value;

[0031] Thus, a logical association is realized between each model tile geometric profile Bbox and the corresponding model tile attribute in the BIM model attribute information through the coding value.

[0032] Preferably, divide the screen into 4 screen partitions according to the screen rendering range, namely: the upper left screen partition, the lower left screen partition, the upper right screen partition, and the lower right screen partition.

[0033] Preferably, adopt an optimal strategy to allocate each model tile geometric profile Bbox to be requested to each screen partition, specifically:

[0034] Under the current three-dimensional scene rendering camera view, calculate the position coordinates of each model tile geometric profile Bbox; then, determine the projection area of each model tile geometric profile Bbox projected onto the screen; calculate the overlapping area between the projection area and each screen partition respectively, and determine the screen partition with the largest overlapping area, so as to allocate the model tile geometric profile Bbox to the screen partition with the largest overlapping area.

[0035] Preferably, when performing multi-threaded rendering by WebGPU, simultaneously according to business needs, obtain the model tile attributes of the corresponding model tile geometric profile Bbox through the query service of the model tile attributes.

[0036] Preferably, according to business needs, obtain the model tile attributes of the corresponding model tile geometric profile Bbox through the query service of the model tile attributes, specifically including two methods:

[0037] a. Request model tile attributes by coding value:

[0038] The encoded value uses the BIM sub-component ID. The corresponding BIM sub-component ID is directly obtained through the Bbox of the geometric contour of the model tile. Using the BIM sub-component ID as the search term, the corresponding model tile attributes are obtained through the query service of the model tile attributes;

[0039] b. Request the model tile attributes by spatial coordinates:

[0040] Determine the coordinate values (X0, Y0, Z0) to be queried;

[0041] Perform an intersection calculation between the coordinate values (X0, Y0, Z0) and the Bbox of the geometric contour of the model tile loaded in the current view, determine the intersecting Bbox of the geometric contour of the model tile, and obtain the corresponding model tile attributes through the BIM sub-component ID recorded in the intersecting Bbox of the geometric contour of the model tile and the query service of the model tile attributes.

[0042] Preferably, it further includes:

[0043] Step S7, when the three-dimensional view is zoomed or panned, update the distance and relative viewing angle relationship between the three-dimensional scene rendering camera and the Bbox_0 of the geometric contour of the model tile of the root node, repeat steps S4 to S6, improve the transmission efficiency of the Bbox of the geometric contour of the model tile through concurrent requests, and realize the fast scheduling and rendering of the BIM model at the front end based on the shared memory of WebGPU and the multi-threaded rendering mechanism.

[0044] A method for fast scheduling and rendering of a BIM model front end based on WebGPU acceleration provided by the present invention has the following advantages:

[0045] The present invention provides a method for fast scheduling and rendering of a BIM model front end based on WebGPU acceleration. Through the browser-side split-screen concurrent request mechanism and WebGPU shared memory technology, the fast scheduling and rendering of the BIM model and its components are realized. The present invention can achieve efficient rendering and visualization of the BIM model in the browser, while comprehensively retaining the BIM model management attributes, and is mainly applied to the rendering visualization and simulation analysis of BIM three-dimensional models in industries such as engineering digital twins and smart cities. Description of the Drawings

[0046] Figure 1 It is a flowchart of a method for fast scheduling and rendering of a BIM model front end based on WebGPU acceleration provided by the present invention;

[0047] Figure 2 It is a schematic diagram of the digital-analog separation preprocessing of the BIM model provided by the present invention. Detailed Embodiments

[0048] In order to make the technical problems, technical solutions and beneficial effects solved by the present invention clearer and more understandable, the present invention will be further described in detail below with reference to the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are only used to explain the present invention and are not used to limit the present invention.

[0049] The present invention provides a method for rapid scheduling and rendering of the BIM model front end based on WebGPU acceleration, which relates to the scheduling and rendering of BIM three-dimensional models such as digital twin visualization rendering engines, engineering BIM model visualization, and engineering simulation analysis. In particular, it relates to a method for rapidly scheduling and rendering BIM models and their components by using a split-screen concurrent request mechanism and WebGPU shared memory technology on the browser side, and is mainly applied to the rendering visualization and simulation analysis of BIM three-dimensional models in industries such as engineering digital twins and smart cities.

[0050] A method for rapid scheduling and rendering of the BIM model front end based on WebGPU acceleration provided by the present invention is a set of methods and means for rapidly scheduling and efficiently rendering engineering BIM models on the browser based on WebGPU technology. The main idea is as follows:

[0051] First, the BIM model is deconstructed and preprocessed to achieve the physical separation and logical association of the geometric profile of the BIM model and the attribute information of the BIM model, while satisfying the rendering of the model geometric profile, and at the same time, the attribute data such as the grouping and management information of the BIM model and its components can be completely retained; then, independent requests are made for the geometric profile and material texture map resources of the BIM model, and at the same time, according to the three-dimensional rendering range, the data requests are divided into multiple threads for concurrent requests to improve the data request efficiency; finally, the shared memory mechanism of WebGPU technology is used to achieve cross-thread sharing of the model geometric profile and material texture map resources, so as to achieve rapid visualization rendering of the BIM model in the browser. Through this method, the BIM model can be rapidly scheduled, supporting efficient rendering and visualization of the BIM model in the browser, and at the same time, comprehensively retaining the BIM model management attributes.

[0052] Refer to Figure 1 , the present invention provides a method for rapid scheduling and rendering of the BIM model front end based on WebGPU acceleration, including the following steps:

[0053] Step S1, perform digital model separation preprocessing on the BIM model:

[0054] Refer to Figure 2 , perform digital model separation preprocessing on the BIM model to obtain the BIM model attribute information and the BIM model geometric structure; among them, the BIM model attribute information includes material attributes, functional attributes, time attributes, etc.

[0055] Step S1.1, perform multi-region and multi-level partitioning on the geometric structure of the BIM model to construct a model tile group; the model tile group includes multiple model tiles with a hierarchical relationship; each model tile includes a model tile geometric contour Bbox and a model tile material texture map;

[0056] As a specific implementation, performing multi-region and multi-level partitioning on the geometric structure of the BIM model to construct a model tile group is specifically as follows:

[0057] Determine the contour of the geometric structure of the BIM model, establish the minimum bounding volume of the geometric structure of the BIM model, which is the model tile at the 0th level, that is, the model tile of the root node;

[0058] Divide the model tile at the 0th level into 8 sub-tiles of the same size. If a certain sub-tile does not contain any patches of the BIM model, remove this sub-tile; the remaining sub-tiles are the sub-tiles of the model tile at the 0th level and at the same time the model tiles at the 1st level;

[0059] For each model tile at the 1st level, if the size of the BIM model it contains is less than the size threshold, or if the number of patches of the BIM model it contains is less than the patch number threshold, stop the next-level partitioning for it; otherwise, continue to divide it into 8 sub-tiles of the same size, and so on, thus establishing the model tile group of the octree-optimized structure of the BIM model.

[0060] In this step, for each model tile at each level, the model tile geometric contour Bbox it includes is the geometric contour of the outermost BIM model geometric structure contained in the model tile; for each model tile at each level, the model tile material texture map it includes is the surface material texture map of the outermost BIM model geometric structure contained in the model tile.

[0061] Step S1.2, establish a logical association between each model tile geometric contour Bbox and the corresponding model tile attribute in the BIM model attribute information according to the coding value;

[0062] As a specific implementation, establishing a logical association between each model tile geometric contour Bbox and the corresponding model tile attribute in the BIM model attribute information according to the coding value is specifically as follows:

[0063] Split the BIM model attribute information into the model attribute information of each BIM sub-component, and use the BIM sub-component ID as the unique coding value to store the model attribute information of each corresponding BIM sub-component;

[0064] Each of the model tile geometric profile Bboxes also uses the corresponding BIM sub-component ID as the unique coding value;

[0065] Thus, a logical association between each of the model tile geometric profile Bboxes and the corresponding model tile attributes in the BIM model attribute information is established through the coding value.

[0066] Step S1.3: Store the model tile material texture maps separately in the database; and write the material texture map index information in each of the model tile geometric profile Bboxes;

[0067] Step S2: Configure the classification transmission service and the model tile attribute query service:

[0068] Configure the model tile geometric profile transmission service and the model tile material texture map transmission service; configure the query service for obtaining the model tile attributes by querying the BIM model attribute information according to the coding value;

[0069] Specifically, the present invention provides two types of data transmission services, namely, the model tile geometric profile transmission service and the model tile material texture map transmission service, to realize the discrete transmission of model tile data; reduce the tile data transmission volume through the classification transmission service; and at the same time provide a query service for retrieving the BIM model attribute information according to the unique coding value.

[0070] Step S3: The front-end browser initially loads the BIM model:

[0071] When the front-end browser initially requests to load the BIM model, the front-end browser obtains the model tile geometric profile Bbox_0 of the root node through the model tile geometric profile transmission service; the front-end browser obtains the geographical coordinates of the model tile geometric profile Bbox_0 of the root node according to the query service of the model tile attributes; then, the front-end browser renders the model tile geometric profile Bbox_0 of the root node at the position corresponding to the geographical coordinates on the screen;

[0072] In specific implementation, the longitude and latitude geographical coordinates of the model tile geometric profile Bbox_0 of the root node are obtained; the correct screen coordinates of the model tile geometric profile Bbox_0 of the root node are obtained through spatial operation, and the front-end browser renders the model tile geometric profile Bbox_0 of the root node at the corresponding position on the screen.

[0073] Step S4: Screen partitioning and allocation of model tile geometric profiles:

[0074] Divide the screen into multiple screen partitions according to the screen rendering range; determine several model tile geometric contours Bbox required for current rendering based on the distance and relative viewing angle relationship between the 3D scene rendering camera and the model tile geometric contour Bbox_0 of the root node; and further adopt an optimal strategy to allocate each model tile geometric contour Bbox to be requested to each screen partition.

[0075] The present invention does not limit the way of screen partitioning and the number of screen partitions. For example, according to the screen rendering range, the screen is divided into 4 screen partitions, namely: the upper left screen partition, the lower left screen partition, the upper right screen partition, and the lower right screen partition. The areas of the 4 screen partitions are equal, so that the requests for all model tile geometric contours Bbox are divided into 4 concurrent threads.

[0076] As a specific implementation, adopt an optimal strategy to allocate each model tile geometric contour Bbox to be requested to each screen partition. Specifically:

[0077] Under the perspective of the current 3D scene rendering camera, calculate the position coordinates of each model tile geometric contour Bbox to be requested; then, determine the projection area of each model tile geometric contour Bbox projected onto the screen; calculate the overlapping area between the projection area and each screen partition respectively, and determine the screen partition with the largest overlapping area, so as to allocate the model tile geometric contour Bbox to the screen partition with the largest overlapping area.

[0078] Step S5, concurrent request for model tile geometric contour Bbox and sharing of model tile material texture maps:

[0079] Each screen partition, in its corresponding thread, concurrently and synchronously requests the corresponding model tile geometric contour Bbox through the model tile geometric contour transmission service, so as to obtain the requested model tile geometric contour Bbox.

[0080] Then, in the thread of each screen partition, parse the obtained model tile geometric contour Bbox to obtain the material texture map index information; then, judge whether there is a corresponding model tile material texture map in the shared memory area. If it exists, execute step S6; if not, obtain the corresponding model tile material texture map through the model tile material texture map transmission service, write it into the shared memory area, and then execute step S6.

[0081] Step S6, WebGPU realizes multi-threaded rendering:

[0082] In each corresponding thread of each screen partition, the geometric contour Bbox of the corresponding model tile is rendered, and then the corresponding model tile material texture map is obtained from the shared memory area and rendered to the corresponding position of the geometric contour Bbox of the model tile, so as to realize the rendering of the model tile with material texture effect.

[0083] In this step, when performing multi-threaded rendering by WebGPU, at the same time according to business needs, through the query service of the model tile attributes, the model tile attributes corresponding to the geometric contour Bbox of the model tile are obtained; specifically, there are two methods:

[0084] a. Request model tile attributes with an encoded value:

[0085] The encoded value uses the BIM sub-component ID. The corresponding BIM sub-component ID is directly obtained through the geometric contour Bbox of the model tile. Using the BIM sub-component ID as the search term, the corresponding model tile attributes are obtained through the query service of the model tile attributes.

[0086] b. Request model tile attributes with spatial coordinates:

[0087] Determine the coordinate values (X0, Y0, Z0) to be queried;

[0088] Perform an intersection calculation between the coordinate values (X0, Y0, Z0) and the geometric contour Bbox of the model tile loaded in the current field of view to determine the intersecting geometric contour Bbox of the model tile. Through the BIM sub-component ID recorded in the intersecting geometric contour Bbox of the model tile, the corresponding model tile attributes are obtained through the query service of the model tile attributes.

[0089] It also includes:

[0090] Step S7. When the three-dimensional field of view is scaled or translated, update the distance and relative viewing angle relationship between the three-dimensional scene rendering camera and the geometric contour Bbox_0 of the root node, and repeat steps S4 to S6. By making concurrent requests, the transmission efficiency of the geometric contour Bbox of the model tile is improved, and the rapid scheduling and rendering of the BIM model at the front end are realized based on the shared memory and multi-threaded rendering mechanism of WebGPU.

[0091] The following introduces an embodiment:

[0092] Step S1. Preprocessing of separating the digital model from the BIM model

[0093] a. Read the BIM model file and process the geometric structure of the BIM model and the BIM model attribute information in the BIM model file respectively;

[0094] b. For the geometric structure of the BIM model: It is divided into model tiles at multiple precisions in the form of an octree to form a model tile group; each model tile includes the model tile geometric contour Bbox at the corresponding level and the model tile material texture map;

[0095] c. Extract the model attribute information of each BIM sub-component from the BIM model attribute information and store it in the database. Therefore, the BIM model attribute information is associated and stored with the corresponding model attribute information using a unique coding value in units of BIM sub-components; the model tile geometric contour Bbox of each model tile also stores the coding value of the BIM sub-component, and the one-to-one correspondence between the model tile geometric contour Bbox and the model tile attribute information is realized through the unique coding value;

[0096] Step S2. Model tile data classification transmission service and attribute query service

[0097] a. For the model tile geometric contour Bbox and the model tile material texture map included in the model tile, two types of data transmission services are provided respectively to realize the transmission of the model tile geometric contour Bbox data and the transmission of the model tile material texture map. The material texture map index information is stored in the model tile geometric contour Bbox;

[0098] b. Provide a model tile attribute query service to support retrieving model attribute information according to the BIM sub-component ID; Step S3. The front-end browser initially loads the BIM model

[0099] When the front-end browser requests the BIM model for the first time, the model tile geometric contour Bbox_0 of the root node is obtained through a single network request. According to the independent coordinates of the model tile geometric contour Bbox_0 of the root node, the longitude and latitude spatial coordinates are obtained through spatial operations, and the model tile geometric contour Bbox_0 of the root node is rendered at the correct geographical location;

[0100] Step S4. Screen partitioning to achieve 4-thread concurrency

[0101] a. Obtain the width w and height h of the screen rendering range, and divide the entire screen rendering range into 4 screen partitions: upper left, upper right, lower left, and lower right, according to the dimensions of w / 2 and h / 2. Assuming the screen coordinates of the lower left corner are (x0, y0), the coordinate ranges of the 4 screen partitions are:

[0102] Upper left coordinate range [{x0, y0 + h / 2}, {x0 + w / 2, y0 + h / 2}, {x0 + w / 2, y0 + h}, (x0, y0 + h)]

[0103] Upper right coordinate range [{x0 + w / 2, y0 + h / 2}, {x0 + w, y0 + h / 2}, {x0 + w, y0 + h}, (x0 + w / 2, y0 + h)]

[0104] Lower left coordinate range [{x0, y0}, {x0 + w / 2, y0}, {x0 + w / 2, y0 + h / 2}, (x0, y0 + h / 2)]

[0105] Lower right coordinate range [{x0 + w / 2, y0}, {x0 + w, y0}, {x0 + w, y0 + h / 2}, (x0 + w / 2, y0 + h / 2)]

[0106] b. Determine the geometric contour Bbox of the model tile required for rendering according to the distance and relative viewing angle relationship between the 3D scene rendering camera and the geometric contour Bbox_0 of the model tile of the root node. Traverse the intersection calculation between the geometric contour Bbox of each model tile and the 4 screen partitions one by one to determine the overlapping area of each geometric contour Bbox of the model tile with each screen partition. Select the screen partition with the largest overlapping area, and then execute the request for the geometric contour Bbox of the corresponding model tile in the thread corresponding to this screen partition. Each geometric contour Bbox of the model tile belongs to only one thread, and there is no phenomenon of duplicate requests;

[0107] c. Accordingly, divide the requests for the geometric contour Bbox of the model tiles required in the scene into 4 concurrent threads and make requests separately;

[0108] Step S5: Concurrent requests for the geometric contour Bbox of the model tile and sharing of the material texture map of the model tile

[0109] a. Synchronously request the corresponding geometric contour Bbox of the model tile through the network in 4 threads respectively; among them, first request the geometric contour Bbox of the model tile, and at the same time, the geometric contour Bbox of the model tile records the required material texture map index information;

[0110] b. In a certain thread, continue to request the material texture map of the model tile through the network according to the material texture map index information and write it into the shared memory area. And before requesting the material texture map of the model tile, first judge whether the material texture map of the model tile exists in the shared memory. If there is already the material, skip it and do not make a network request;

[0111] Step S6: WebGPU realizes multi-threaded rendering

[0112] Based on the WebGPU asynchronous command submission technology, independently construct and create rendering commands in their respective threads, use the geometric contour Bbox of the model tile for 3D rendering, and at the same time read the material texture map of the model tile from the shared memory, and finally realize the rendering of the model tile with the material texture effect;

[0113] Step S7: When the three-dimensional view is zoomed or panned, steps S4 - S6 are repeatedly executed to improve data transmission efficiency through concurrent requests, and the fast scheduling and rendering of the BIM model at the front end are realized based on the shared memory of WebGPU and the multi-threaded rendering mechanism.

[0114] Step S8: Request model attribute information as needed

[0115] According to the business usage requirements, if model attribute information is needed, there are two ways to request model attributes by BIM sub-component ID and by spatial coordinates:

[0116] a. Request model attributes by BIM sub-component ID: Directly query the model tile attribute service and retrieve the model attribute information according to the BIM sub-component ID.

[0117] b. Request model attributes by spatial coordinates: Perform an intersection calculation on the coordinate values (X0, Y0, Z0) to be queried and the geometric contour Bbox of the model tiles loaded in the current view, and the geometric contour Bbox of the selected model tiles can be determined. Through the BIM sub-component ID recorded in the geometric contour Bbox of the model tiles, the corresponding model attribute information of the corresponding tiles can be obtained through the model tile attribute query service.

[0118] A method for fast scheduling and rendering of a BIM model front end based on WebGPU acceleration provided by the present invention realizes the loading of a three-dimensional BIM model based on WebGPU technology. Compared with the front-end WebGL technology, it can more efficiently utilize the computing and graphics processing capabilities of the computer GPU. At the same time, the BIM model usually has multi-level complex geometric shapes such as indoor and outdoor, macroscopic and microscopic, has a model organization form with model grouping and a large number of sub-components, and has rich attribute information such as attributes, materials, operation and maintenance, and cost. The three-dimensional visualization rendering of the BIM model involves a large amount of geometric calculations and graphics rendering commands. Applying WebGPU technology to the rendering of the BIM model by the present invention can improve the rendering performance of the three-dimensional model, enhance the model rendering effect, and lower the usage threshold of the BIM model, which is conducive to the application and popularization of the BIM model in related industries. After comparison, when rendering the same BIM model in the same test environment, the FPS (frames per second) of loading the BIM three-dimensional model using this method is stable at 70 - 125 FPS, while the FPS of loading the model using the WebGL technology engine (Cesium engine) under the same conditions is only 40 - 65 FPS. Therefore, the rendering performance of the three-dimensional BIM model using the method of the present invention has been greatly improved.

[0119] The above are only the preferred embodiments of the present invention. It should be noted that for those of ordinary skill in the art in this technical field, without departing from the principle of the present invention, several improvements and refinements can still be made, and these improvements and refinements should also be regarded as the protection scope of the present invention.

Claims

1. A fast scheduling and rendering method for the front end of a BIM model based on WebGPU acceleration, characterized in that Including the following steps: Step S1, perform preprocessing of digital model separation on the BIM model: Perform preprocessing of digital model separation on the BIM model to obtain BIM model attribute information and the geometric structure of the BIM model; perform multi-region and multi-level division on the geometric structure of the BIM model to construct a model tile group; the model tile group includes multiple model tiles with a hierarchical relationship; each model tile includes a model tile geometric profile Bbox and a model tile material texture map; Establish a logical association between each model tile geometric profile Bbox and the corresponding model tile attribute in the BIM model attribute information according to the coding value; Store the model tile material texture map separately through a database; and write material texture map index information in each model tile geometric profile Bbox; Step S2, configure the classification transmission service and the model tile attribute query service: Configure the model tile geometric profile transmission service and the model tile material texture map transmission service; configure the query service for obtaining the model tile attribute by querying the BIM model attribute information according to the coding value; Step S3, the front-end browser initially loads the BIM model: When the front-end browser initially requests to load the BIM model, the front-end browser obtains the model tile geometric profile Bbox_0 of the root node through the model tile geometric profile transmission service; the front-end browser obtains the geographical coordinates of the model tile geometric profile Bbox_0 of the root node according to the query service of the model tile attribute; Then, the front-end browser renders the model tile geometric profile Bbox_0 of the root node at the position corresponding to the geographical coordinates on the screen; Step S4, screen partitioning and allocation of model tile geometric profiles: Divide the screen into multiple screen partitions according to the screen rendering range; Determine several model tile geometric profiles Bbox required for the current rendering according to the distance and relative viewing angle relationship between the 3D scene rendering camera and the model tile geometric profile Bbox_0 of the root node; and further adopt an optimal strategy to allocate each model tile geometric profile Bbox to be requested to each screen partition; Step S5, concurrent request for model tile geometric profile Bbox and sharing of model tile material texture maps: Each screen partition concurrently synchronously requests the corresponding model tile geometric profile Bbox through the model tile geometric profile transmission service in its own corresponding thread, so as to obtain the requested model tile geometric profile Bbox; Then, in the thread of each screen partition, parse the obtained model tile geometric profile Bbox to obtain material texture map index information; Then, judge whether there is a corresponding model tile material texture map in the shared memory area. If it exists, execute step S6; if not, obtain the corresponding model tile material texture map through the model tile material texture map transmission service, write it into the shared memory area, and then execute step S6; Step S6, use WebGPU to implement multi-threaded rendering: In their respective corresponding threads, each screen partition renders the corresponding model tile geometric contour Bbox, then obtains the corresponding model tile material texture map from the shared memory area, and renders it to the corresponding position of the model tile geometric contour Bbox, realizing the rendering of the model tile with material texture effect.

2. The front - end fast scheduling and rendering method of a BIM model based on WebGPU acceleration according to claim 1, characterized in that, Perform multi-region and multi-level partitioning on the BIM model geometric structure to construct a model tile group, specifically: Determine the contour of the BIM model geometric structure, establish the minimum bounding volume of the BIM model geometric structure, which is the model tile of the 0th level, that is, the model tile of the root node; Divide the model tile of the 0th level into 8 sub-tiles of the same size. If a certain sub-tile does not contain any patches of the BIM model, then remove this sub-tile; the remaining sub-tiles are the sub-tiles of the model tile of the 0th level and at the same time the model tiles of the 1st level; For each model tile of the 1st level, if the size of the BIM model it contains is less than the size threshold, or if the number of patches of the BIM model it contains is less than the patch number threshold, then stop dividing it into the next level; Otherwise, continue to divide it into 8 sub-tiles of the same size, and so on, thus establishing a model tile group with an octree optimized structure of the BIM model.

3. The front - end fast scheduling and rendering method of a BIM model based on WebGPU acceleration according to claim 2, wherein, For each level of model tile, the model tile geometric contour Bbox it includes is the geometric contour of the outermost BIM model geometric structure contained in the model tile; For each level of model tile, the model tile material texture map it includes is the surface material texture map of the outermost BIM model geometric structure contained in the model tile.

4. A front-end fast scheduling and rendering method for BIM models based on WebGPU acceleration according to claim 1, characterized in that Establish a logical association between each model tile geometric contour Bbox and the corresponding model tile attribute in the BIM model attribute information according to the encoding value, specifically: Split the BIM model attribute information into the model attribute information of each BIM sub-component, and use the BIM sub-component ID as the unique encoding value to store the model attribute information of each corresponding BIM sub-component; Each model tile geometric contour Bbox also uses the corresponding BIM sub-component ID as the unique encoding value; Thus, a logical association between each model tile geometric contour Bbox and the corresponding model tile attribute in the BIM model attribute information is realized through the encoding value.

5. A front - end fast scheduling and rendering method for BIM models based on WebGPU acceleration according to claim 1, characterized in that According to the screen rendering range, divide the screen into 4 screen partitions, namely: upper left screen partition, lower left screen partition, upper right screen partition, and lower right screen partition.

6. A front-end fast scheduling and rendering method for BIM models based on WebGPU acceleration according to claim 1, characterized in that Adopt the optimal strategy to allocate each model tile geometric contour Bbox to be requested to each screen partition, specifically: Under the perspective of the current 3D scene rendering camera, calculate the position coordinates of each model tile geometric contour Bbox; then, determine the projection area of each model tile geometric contour Bbox projected onto the screen; Calculate the overlapping area between this projection area and each screen partition respectively, and determine the screen partition with the largest overlapping area, so as to allocate this model tile geometric contour Bbox to this screen partition with the largest overlapping area.

7. A front - end fast scheduling and rendering method for BIM models based on WebGPU acceleration according to claim 1, characterized in that, When performing multi-threaded rendering with WebGPU, according to business needs, the model tile attributes of the corresponding model tile geometric contour Bbox are obtained through the query service of the model tile attributes.

8. A front - end fast scheduling and rendering method for BIM models based on WebGPU acceleration according to claim 7, characterized in that, According to business needs, the model tile attributes of the corresponding model tile geometric contour Bbox are obtained through the query service of the model tile attributes, which specifically includes two methods: a. Request model tile attributes with an encoded value: The encoded value uses the BIM sub-component ID. The corresponding BIM sub-component ID is directly obtained through the model tile geometric contour Bbox. Using the BIM sub-component ID as the search term, the corresponding model tile attributes are obtained through the query service of the model tile attributes; b. Request model tile attributes with spatial coordinates: Determine the coordinate values (X0, Y0, Z0) to be queried; Perform an intersection calculation between the coordinate values (X0, Y0, Z0) and the model tile geometric contour Bbox loaded in the current view to determine the intersecting model tile geometric contour Bbox. Through the BIM sub-component ID recorded in the intersecting model tile geometric contour Bbox, the corresponding model tile attributes are obtained through the query service of the model tile attributes.

9. A front-end fast scheduling and rendering method for BIM models based on WebGPU acceleration according to claim 1, characterized in that It further includes: Step S7, when the three-dimensional view is scaled or translated, update the distance and relative viewing angle relationship between the three-dimensional scene rendering camera and the model tile geometric contour Bbox_0 of the root node, and repeat steps S4 to S6. Improve the transmission efficiency of the model tile geometric contour Bbox through concurrent requests, and realize the fast scheduling and rendering of the BIM model at the front end based on the shared memory of WebGPU and the multi-threaded rendering mechanism.

Citation Information

Patent Citations

  • Digital twin system based on BIM (Building Information Modeling) and VR (Virtual Reality) technologies

    CN115186355A

  • Urban digital twinning scene LOD processing method

    CN119228975A