A BIM model lightweight rendering interaction method based on cloud edge-end cooperation

CN122933641APending Publication Date: 2026-10-16GUANGZHOU JIZHIYUN TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202611021792.X
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2026-07-09
Publication Date
2026-10-16

AI Technical Summary

Technical Problem

[0003]然而,完整BIM模型往往包含海量的几何数据、属性信息和纹理数据,对模型整体进行渲染,需要将全部模型数据加载至渲染管线中进行几何处理、光栅化及像素处理等操作,渲染效率低下,难以满足用户端对实时交互的响应需求

Benefits of technology

[0026] The objectives and other advantages of this invention can be realized and obtained through the following description.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN122933641A_ABST
    Figure CN122933641A_ABST
Patent Text Reader

Abstract

The application relates to a BIM model lightweight rendering interaction method based on cloud edge end cooperation, and belongs to the technical field of BIM (Building Information Modeling). In the method, an edge node receives task indication information from a cloud end, the task indication information indicates that the edge node needs to render N BIM submodels for a user end, the N BIM submodels are obtained by splitting a complete BIM model of the user end by the cloud end, and N is an integer greater than 1; the edge node sequentially renders the N BIM submodels to obtain N BIM rendering submodels; and the edge node transmits data of the N BIM rendering submodels to the user end, wherein the data safety of the N BIM rendering submodels is related in the transmission process.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention belongs to the field of BIM technology and relates to a lightweight rendering and interaction method for BIM models based on cloud-edge-device collaboration. Background Technology

[0002] With the widespread application of Building Information Modeling (BIM) in engineering design, construction management, and operation and maintenance, users need to frequently browse and interact with complex and large-scale BIM models. Currently, the rendering of BIM models typically adopts a method of rendering the entire model as a whole, that is, loading and rendering all components of the entire BIM model at once.

[0003] However, complete BIM models often contain massive amounts of geometric data, attribute information, and texture data. Rendering the entire model requires loading all model data into the rendering pipeline for geometric processing, rasterization, and pixel processing, resulting in low rendering efficiency and difficulty in meeting the user's demand for real-time interactive responses. Furthermore, overall rendering places extremely high demands on computing resources, storage resources, and graphics processing capabilities, heavily relying on high-performance hardware, making it difficult to run efficiently on resource-constrained edge nodes. Summary of the Invention

[0004] In view of this, in order to solve the above problems, the present invention provides a lightweight rendering and interaction method for BIM models based on cloud-edge-device collaboration.

[0005] To achieve the above objectives, the present invention provides the following technical solution:

[0006] Firstly, a lightweight rendering interaction method for BIM models based on cloud-edge-device collaboration is provided, applied to edge nodes. The method includes: the edge node receiving task instruction information from the cloud, which instructs the edge node to render N BIM sub-models for the user terminal. The N BIM sub-models are obtained by the cloud splitting the complete BIM model of the user terminal, where N is an integer greater than 1; the edge node sequentially renders the N BIM sub-models to obtain N BIM rendering sub-models; the edge node transmits the data of the N BIM rendering sub-models to the user terminal, wherein the data security of the N BIM rendering sub-models during transmission is relevant.

[0007] Therefore, the edge nodes receive task instructions from the cloud and render the N split BIM sub-models sequentially, rather than rendering the complete BIM model as a whole. This decomposes the rendering task into multiple sub-tasks, with each rendering only requiring the loading and processing of data from a single BIM sub-model. This avoids the inefficiency caused by centralized loading of massive datasets during the overall rendering of the complete model, reducing the hardware requirements for edge nodes' computing, storage, and graphics processing capabilities. Furthermore, the data security of the N BIM rendering sub-models is interconnected during transmission, enabling secure data protection for each sub-model to be linked through a unified mechanism, rather than negotiating security strategies independently for each sub-model. This further reduces signaling overhead and resource consumption during transmission.

[0008] Optionally, the edge node renders N BIM sub-models sequentially to obtain N BIM rendering sub-models, including: the edge node obtaining N BIM sub-models and their dependencies from the task instruction information; the edge node determining the rendering order according to the dependencies, and rendering the N BIM sub-models sequentially according to the rendering order; wherein, during the process of rendering sequentially according to the rendering order, the rendering result data of the rendered BIM sub-models is shared to the subsequent BIM sub-models to be rendered, so as to realize rendering reuse.

[0009] Therefore, the edge nodes obtain N BIM sub-models and their dependencies from the task instruction information, determine the rendering order based on the dependencies, and render them sequentially. This ensures that the rendering process follows the internal structural logic of the model, guaranteeing correct connections between sub-models. Simultaneously, during sequential rendering, the rendering results of already rendered sub-models are shared with subsequent sub-models, achieving rendering reuse. This eliminates the need for repeated rendering of identical components, reducing the computational overhead of the edge nodes and improving overall rendering efficiency.

[0010] Optionally, N BIM sub-models are rendered sequentially, including: edge nodes performing lightweight processing on the current BIM sub-model to be rendered to obtain lightweight model data; lightweight processing includes visibility culling and detail level simplification; edge nodes rendering the current BIM sub-model to be rendered based on the lightweight model data.

[0011] Therefore, during the sequential rendering process, the edge nodes perform lightweight processing on the BIM sub-model to be rendered, including visibility culling and detail simplification, before rendering based on the lightweight model data. This pre-rendering lightweight processing effectively reduces model complexity, minimizes rendering calculations for redundant patches and invisible components, enabling edge nodes to efficiently complete rendering tasks with limited computing resources, while also reducing the amount of data transmitted subsequently.

[0012] Optionally, the rendering result data is shared to the subsequent BIM sub-model to be rendered, including: the edge nodes inject the intermediate rendering data generated when the BIM sub-model has been rendered into the rendering pipeline of the subsequent BIM sub-model to be rendered, so that the subsequent BIM sub-model to be rendered can reuse the intermediate rendering data to skip the repeated rendering calculation of the same components as the already rendered BIM sub-model.

[0013] Therefore, the specific method of sharing rendering result data is as follows: edge nodes inject the intermediate rendering data generated when rendering sub-models are rendered into the rendering pipeline of subsequent sub-models to be rendered. This allows subsequent sub-models to reuse this intermediate data, skipping repeated rendering calculations of the same components as the already rendered sub-models. Thus, rendering reuse not only stays at the model data level but also extends to the intermediate results level of the rendering pipeline, maximizing the avoidance of repeated geometric processing and pixel shading operations, and further improving rendering efficiency.

[0014] Optionally, the N BIM sub-models are obtained by splitting the complete BIM model in the cloud based on the component features and spatial distribution of the complete BIM model, and then merging them through geometric batching and material merging. The N BIM sub-models have dependencies on each other, and the dependencies are sent to the edge nodes through task instruction information. Among them, geometric batching and material merging means that the edge nodes perform geometric batching on components with the same rendering material after splitting the complete BIM model, and apply the same simplified material to the batched components.

[0015] Therefore, the N BIM sub-models are obtained by splitting the complete BIM model based on its component features and spatial distribution in the cloud, and then performing geometric batching and material merging. The sub-models are interdependent and are distributed according to task instructions. Geometric batching and material merging refer to geometrically batching components with the same rendering material after splitting and applying the same simplified material. Thus, the cloud performs preprocessing optimization on the model during the splitting stage, reducing the number of rendering state switches and drawing calls during edge node rendering, and lowering the rendering burden on edge nodes.

[0016] Optionally, the edge node transmits data of N BIM rendering sub-models to the user terminal, including: the edge node obtaining random information from the cloud; the edge node setting the initial state value of the scrambler based on the random information; the scrambler being used by the edge node to scramble the data of the N BIM rendering sub-models sent to the user terminal; the initial state value being used as the initial key seed to derive a session key 1, which is used to securely protect the transmission of data of the first BIM rendering sub-model among the N BIM rendering sub-models; the edge node updating the session key i-1 to the session key i based on the data consumption i-1 generated by transmitting the data of the (i-1)th BIM rendering sub-model among the N BIM rendering sub-models and the session key i-1, where the session key i-1 is used to securely protect the transmission of data of the (i-1)th BIM rendering sub-model and the session key i is used to securely protect the data of the ith BIM rendering sub-model among the N BIM rendering sub-models, and i is an integer from 2 to N.

[0017] Therefore, the edge node obtains random information from the cloud, sets the initial state value of the scrambler accordingly, and derives session key 1 from this initial state value as the initial key seed for secure transmission of the first BIM rendering sub-model data. Subsequently, based on the data consumption i-1 generated during the transmission of the (i-1)th BIM rendering sub-model and the session key i-1, the edge node updates the session key i-1 to session key i for the ith sub-model. Thus, the secure transmission protection of all sub-models originates from the same initial key seed, avoiding the overhead of multiple key negotiations. Simultaneously, the session keys of each sub-model evolve in a chain during transmission, interconnected with each preceding sub-model. No single sub-model's session key can be cracked independently, as it depends on the transmission state of the preceding sub-model. This chain-like security mechanism ensures that the data security of each sub-model is interconnected, balancing efficiency and security.

[0018] Optionally, the edge node updates the session key i-1 to the session key i based on the data consumption i-1 generated from transmitting the data of the (i-1)th BIM rendering sub-model in the N BIM rendering sub-models and the session key i-1. This includes: obtaining the current state value of the scrambler when the edge node completes the data transmission of the (i-1)th BIM rendering sub-model; performing nonlinear calculations on the current state value of the scrambler to obtain the key seed i; and updating the session key i-1 to the session key i based on the key seed i and the data consumption i-1.

[0019] Therefore, when the data transmission of the (i-1)th BIM rendering sub-model is completed, the edge node obtains the current state value of the scrambler, performs nonlinear calculations to obtain the key seed i, and then updates the session key i-1 to the session key i based on the key seed i and the data consumption i-1. Thus, the key update occurs when the sub-model transmission is complete, rather than based on a timer or independent negotiation; the update timing is naturally tied to the transmission progress. Simultaneously, the data consumption i-1 serves as the input parameter for the updated key, ensuring that the session key for each sub-model depends not only on the nonlinear state of the scrambler but also on the actual amount of data transmitted, enhancing the unpredictability of the key and further improving security.

[0020] Optionally, the edge node performs a nonlinear calculation on the current state value of the scrambler to obtain the key seed i, including: the edge node performs a bitwise AND operation on a specified bit segment of the current state value of the scrambler to obtain an intermediate value; the edge node performs an XOR operation on the intermediate value and the data consumption amount i-1 to obtain the key seed i, and the number of bits of the key seed i is consistent with the initial key seed.

[0021] Therefore, the specific method of nonlinear calculation is as follows: a bitwise AND operation is performed on a specified bit segment of the current state value of the scrambler to obtain an intermediate value. Then, an XOR operation is performed between the intermediate value and the data consumption i-1 to obtain the key seed i. The bitwise AND operation is equivalent to multiplication in the binary field and is a nonlinear operation that can break the inherent linear predictability of the linear feedback shift register of the scrambler, making it impossible for attackers to reverse-engineer the state evolution path by intercepting the continuous output sequence. The XOR operation injects the data consumption as a fresh variable, enhancing the randomness of the key seed. The entire calculation process only involves bitwise logic operations, making the hardware implementation extremely simple and consuming very little computational resources at the edge nodes.

[0022] Optionally, the edge node obtains the data consumption i-1, including: during the transmission of the data of the i-1th BIM rendering sub-model, the edge node records the number of scrambling bits used to scramble the data of the i-1th BIM rendering sub-model through a scrambling device, as the data consumption i-1.

[0023] Therefore, the data consumption i-1 is determined by the number of scrambling bits recorded by the scrambling device during the transmission of the i-1th BIM rendering sub-model data by the edge node. Thus, the statistics of data consumption are closely integrated with the data scrambling process, eliminating the need for an additional data volume statistics module. The scrambling device serves as both a data protection mechanism and a carrier for recording data consumption, exhibiting high hardware reusability and simple implementation.

[0024] Optionally, the method further includes: the edge node saving the initial state value of the scrambler corresponding to session key 1 to the state storage area; before transmitting the data of the (i-1)th BIM rendering sub-model, the edge node reading the current state value from the state storage area and loading it into the scrambler; the edge node scrambling the data of the (i-1)th BIM rendering sub-model using the scrambler; when the data transmission of the (i-1)th BIM rendering sub-model is completed, the edge node writing the current state value of the scrambler back to the state storage area, and the current state value being used to generate session key i.

[0025] Therefore, the edge node saves the initial state value corresponding to session key 1 to the state storage area. Before transmitting each sub-model, it reads the current state value from the state storage area and loads it into the scrambler. After the transmission is complete, it writes the current state value of the scrambler back to the state storage area to generate the next session key. Thus, the scrambler's state is persistently and isolatedly managed across multiple transmissions. Even if the transmission of N sub-models is performed sequentially, the scrambler state in each transmission correctly inherits the state at the end of the previous transmission, ensuring the continuity and correctness of the key chain evolution. Furthermore, the read / write mechanism of the state storage area incurs minimal storage and computational overhead for the edge node.

[0026] The objectives and other advantages of this invention can be realized and obtained through the following description. Attached Figure Description

[0027] To make the objectives, technical solutions, and advantages of the present invention clearer, the preferred embodiments of the present invention will be described in detail below with reference to the accompanying drawings, wherein:

[0028] Figure 1 This is a schematic diagram of the architecture of a cloud-edge-device collaborative rendering system provided by the present invention;

[0029] Figure 2 A flowchart of a lightweight rendering and interaction method for BIM models based on cloud-edge-device collaboration provided by the present invention;

[0030] Figure 3 This is a schematic diagram of the structure of an electronic device provided by the present invention. Detailed Implementation

[0031] The following specific examples illustrate the implementation of the present invention. Those skilled in the art can easily understand other advantages and effects of the present invention from the content disclosed in this specification. The present invention can also be implemented or applied through other different specific embodiments, and various details in this specification can be modified or changed based on different viewpoints and applications without departing from the spirit of the present invention. It should be noted that the illustrations provided in the following embodiments are only schematic representations of the basic concept of the present invention. In the absence of conflict, the following embodiments and features in the embodiments can be combined with each other. The accompanying drawings are for illustrative purposes only, representing only schematic diagrams and not actual physical objects, and should not be construed as limiting the present invention. To better illustrate the embodiments of the present invention, some parts in the drawings may be omitted, enlarged, or reduced, and do not represent the actual product form.

[0032] like Figure 1 As shown in the figure, this application provides a cloud-edge-device collaborative rendering system, which includes a user terminal, a cloud, and edge nodes.

[0033] The user terminal can be any electronic device with communication capabilities and model browsing needs, such as a smartphone, tablet, laptop, desktop computer, smart wearable device, Internet of Things (IoT) terminal, industrial control terminal, or vehicle communication terminal. The user terminal initiates BIM model access requests to the cloud and receives BIM rendering sub-model data transmitted from edge nodes for display and interaction. The user terminal is equipped with a descrambler to descramble the BIM rendering sub-model data received from the edge nodes. In this application, the user terminal can set the initial state value of the descrambler based on random information obtained from the cloud, and use this initial state value as the initial key seed to derive session key 1, which is used to securely protect the data of the first BIM rendering sub-model. Simultaneously, the user terminal can independently update the corresponding session key based on the data consumption generated by receiving data from each BIM rendering sub-model, thereby achieving a chain evolution of keys with the edge nodes under a unified initial configuration. The specific principle can be found in the relevant description of the method embodiments below, and will not be repeated here.

[0034] The cloud can be an independent cloud server, cloud management platform, BIM model storage server, or other network device or functional entity with model storage, task scheduling, and security management capabilities. The cloud primarily stores the complete BIM model for the user end and, based on model characteristics and user needs, splits the complete BIM model into N BIM sub-models, determining the dependencies between each sub-model. The cloud also sends task instruction information to registered edge nodes, instructing them to sequentially render the N BIM sub-models for the user end. Furthermore, the cloud sends random information to both edge nodes and the user end, enabling data interaction protection between them based on a unified initial key seed. Specific functions and processing flows of the cloud's model splitting method, task instruction information sending method, and random information generation and distribution method can be found in the relevant descriptions in the method embodiments below, and will not be repeated here.

[0035] Edge nodes can be computing devices with graphics processing capabilities deployed close to the user end, such as edge servers, edge gateways, base station-side computing nodes, and Customer Premises Equipment (CPE). Edge nodes are equipped with scramblers and descramblers. The scrambler is used to scramble the BIM rendering sub-model data sent to the user end, and the descrambler is used to descramble task instruction information or other data received from the cloud. It should be noted that the scrambler and descrambler on the edge node side can be deployed in the edge node's communication processing module or in the rendering output module; this application does not specifically limit this. The edge node is mainly used to receive task instruction information from the cloud, and based on the BIM sub-models and their dependencies in the instruction information, sequentially renders N BIM sub-models to obtain N BIM rendering sub-models, and transmits the rendering results to the user end. During transmission, the edge node can set the initial state value of the scrambler based on random information obtained from the cloud, and use this initial state value as the initial key seed to derive session key 1, which is used to securely protect the data of the first BIM rendering sub-model. Subsequently, based on the data consumption generated during the transmission of each BIM rendering sub-model's data, the session key is updated in a chain, ensuring that the data of N BIM rendering sub-models are securely associated during transmission. The specific functions and processing flow of the edge node can be found in the relevant descriptions of the method embodiments below, and will not be repeated here.

[0036] like Figure 2 As shown in the figure, this application provides a lightweight rendering and interaction method for BIM models based on cloud-edge-device collaboration, which is applied to the system described in the above embodiment.

[0037] The specific process of this method is as follows:

[0038] S201, the edge node receives task instruction information from the cloud.

[0039] In this embodiment, when a user needs to browse a complete BIM model, the user sends a model access request to the cloud. This request carries the identifier of the model to be rendered, the user's current location information, and the user's identifier address. The identifier of the model to be rendered is used by the cloud to retrieve the corresponding complete BIM model from the model repository; the user's current location information is used by the cloud to select edge nodes geographically close to the user's to reduce network latency for subsequent data transmission; the user's identifier address (such as IP address, device ID, etc.) is used by subsequent edge nodes to establish communication connections with the user, accurately transmitting the rendering results to the user.

[0040] After receiving a model access request from a user, the cloud first retrieves the requested complete BIM model from the model repository based on the model identifier. A complete BIM model typically contains information on all components from multiple disciplines, including architecture, structure, and MEP, with data volumes reaching hundreds of MB or even several GB. Each component contains geometric data (such as vertex coordinates and patch indexes), attribute information (such as component type, material designation, and fire resistance rating), and texture data (such as material maps and color information).

[0041] After acquiring the complete BIM model, the cloud needs to select suitable edge nodes for the user terminal to undertake the rendering task. The cloud can select the optimal edge node for this rendering task from the registered edge node pool based on factors such as the current load status of the edge node, its network proximity to the user terminal (e.g., selecting edge nodes deployed in the same city or network access point based on the location information reported by the user terminal), the available computing resources of the edge node (such as GPU model, memory size, and CPU core count), and historical service quality records. In one example, the cloud maintains an edge node status table, periodically receiving heartbeat information and resource utilization rates reported by each edge node. When it needs to allocate an edge node to the user terminal, the cloud queries this status table and selects the edge node closest to the user terminal's network and whose current GPU utilization is below a preset threshold as the edge node to execute the current rendering task.

[0042] After determining the edge nodes, the cloud platform splits the complete BIM model into N BIM sub-models, where N is an integer greater than 1. The splitting process is as follows:

[0043] First, the cloud platform analyzes the complete BIM model's structure, spatial regions, and component types to generate a model splitting strategy. Model structure analysis involves parsing the component hierarchy tree of the BIM model, identifying parent-child relationships and references between components. Spatial region analysis involves dividing the BIM model according to spatial dimensions such as floors, fire compartments, and functional areas based on the bounding box coordinates of the components. Component type analysis involves categorizing components according to types such as walls, columns, beams, slabs, doors and windows, and pipelines. The cloud platform then integrates these analysis results to generate a model splitting strategy. For example, for a 20-story office building BIM model, the cloud platform can split the model into 20 BIM sub-models based on floors, with each sub-model corresponding to all components of one floor. Similarly, for a commercial complex model with a large ground floor area, the ground floor can be further split into multiple sub-models based on functional areas, such as the lobby area, commercial area, and back-office area. The splitting granularity can be dynamically adjusted according to the computing power of the edge nodes, ensuring that the data volume of each sub-model is adapted to the single-rendering processing capability of the edge nodes.

[0044] Secondly, based on a model decomposition strategy, the cloud platform breaks down the complete BIM model into N logically independent or spatially adjacent BIM sub-models. During decomposition, the cloud platform extracts components belonging to the same sub-model from the complete model, retaining their original geometric data, attribute information, and texture data to form the initial dataset of that sub-model.

[0045] Then, for any given BIM sub-model, the cloud performs geometric batching and material merging on its original components. Geometric batching means that the cloud traverses all components in the BIM sub-model, identifies components with the same rendering material, and merges the geometric data (vertex coordinates, normal vectors, texture coordinates, etc.) of these components into the same geometric buffer, forming a merged geometry. For example, if a floor's BIM sub-model has 50 wall components with the material "standard concrete," the cloud merges the vertex data and patch indices of these 50 walls into a continuous data block. During rendering, only one draw call is needed to complete the rendering of all concrete walls, eliminating the need for 50 separate draw calls for each wall, significantly reducing the number of draw calls when rendering edge nodes. Material merging means that the cloud applies a simplified material to the batched components. Simplified materials can be achieved by merging multiple layers of materials (such as diffuse maps, normal maps, specular maps, etc.) into a single texture, or by uniformly replacing materials with similar colors but different labels with a representative material. For example, the original BIM model defined three materials: "Concrete C30", "Concrete C35" and "Concrete C40", which have very little visual difference. When merging materials, the cloud unified them into "Concrete" material, further reducing the number of material types and reducing the rendering state switching overhead when rendering edge nodes.

[0046] Finally, the dependencies between the N BIM sub-models are constructed in the cloud. These dependencies indicate the relative positions and spatial connections of each BIM sub-model within the complete BIM model, ensuring that edge nodes can correctly handle spatial continuity and lighting consistency between sub-models during sequential rendering. Dependencies can be expressed as directed acyclic graphs. For example, when splitting by floor, the second-floor sub-model depends on the basic spatial positioning reference and global illumination probe data provided by the first-floor sub-model; when splitting by functional area, adjacent sub-models may share boundary components (such as beams or pipelines spanning areas). These shared boundary components need to be labeled so that edge nodes can anticipate the rendering results of shared components when rendering one of the sub-models, avoiding duplicate rendering or visual gaps at boundaries.

[0047] The cloud packagees the processed N BIM sub-model data packages (each containing model data after geometry batching and material merging), dependency graphs, and rendering parameters (such as lighting configuration, initial camera view, etc.) into task instruction information and sends this task instruction information to the selected edge nodes. Correspondingly, the edge nodes receive this task instruction information from the cloud. The task instruction information indicates that the edge nodes need to render N BIM sub-models for the user client.

[0048] S202, edge nodes sequentially render N BIM sub-models to obtain N BIM rendering sub-models.

[0049] After receiving the task instruction information, the edge node parses it and extracts the model data, dependency graph, and rendering parameters of each of the N BIM sub-models. The edge node allocates local graphics processing unit (GPU) resources for this rendering task and initializes the rendering pipeline.

[0050] First, the edge nodes determine the rendering order of the N BIM sub-models based on the dependency graph. The dependency graph indicates the data dependencies and loading order between the sub-models. The edge nodes perform topological sorting on this graph to obtain a rendering queue that satisfies all dependency constraints. For example, assuming the dependency graph is: sub-model A is dependent on sub-model B, and sub-model A and sub-model B are both dependent on sub-model C, then the rendering queue is A→B→C. The rendering priority can be further adjusted based on the user's current viewpoint information: sub-models directly in front of the user's current viewpoint or sub-models in their dependency chains can be given higher rendering priority, processed and transmitted first, to present the model content of the visible area to the user as quickly as possible; sub-models that are behind the user's current viewpoint or are far away can be rendered later.

[0051] After determining the rendering order, the edge nodes sequentially perform rendering operations on the N BIM sub-models according to the rendering queue.

[0052] Taking the j-th BIM sub-model in the rendering queue as an example (j is an integer from 1 to N), the rendering process is as follows:

[0053] The first step is to load the model data of the j-th BIM sub-model. The edge node reads the data packet corresponding to the sub-model from the task instruction information and loads the geometric data, attribute information, and texture data into the GPU memory or system memory.

[0054] The second step involves lightweighting the j-th BIM sub-model. Lightweighting includes visibility culling and Level of Detail (LOD) simplification. Visibility culling refers to removing invisible components that are completely outside the view frustum or completely obscured by other opaque components, based on the user's current viewpoint's frustum range, retaining only visible components for subsequent rendering pipelines. For example, in a scene where the user's current viewpoint faces the south facade of a building, all components on the north facade, as well as internal partition wall components completely obscured by the south facade's exterior wall, are excluded during visibility culling and do not participate in subsequent geometric and pixel processing. LOD simplification involves selecting different precision geometric representations based on the distance between the component and the user's viewpoint. For components closer to the viewpoint, a full-precision geometric model is used; for components farther from the viewpoint, a simplified low-polygon geometric model is used; for extremely distant components, even a single texture map can be used to replace the geometric model. For example, for a decorative column component containing 2000 triangular faces, a full-precision 2000-face model is used when the user's viewpoint is close (e.g., within 10 meters); a simplified 500-face model is used when the distance is between 10 and 50 meters; and a minimalist model with only 200 faces or a single normal map is used when the distance exceeds 50 meters. Through visibility culling and LOD simplification, the amount of data to be rendered for the j-th BIM sub-model is significantly reduced, generating lightweight model data. This lightweight model data serves as the input for subsequent geometric processing, rasterization, and pixel processing.

[0055] The third step involves the edge node checking the rendering intermediate data cache for reusable intermediate rendering data. Rendering intermediate data refers to the intermediate processing results generated during the rendering of already rendered sub-models that can be reused by subsequent sub-models. Examples include: geometric vertex buffer objects, texture objects, shader compilation results, lighting calculation results, and shadow maps of components in already rendered sub-models. If the current j-th BIM sub-model contains components identical to those in already rendered sub-models (e.g., shared beams, shared pipelines across sub-models, or standard component families of the same material), the edge node reads the corresponding intermediate rendering data from the cache and directly injects it into the rendering pipeline of the current sub-model, skipping the loading, geometric processing, and some pixel processing steps for these identical components. For example, if a drainage riser spans from floor 1 to floor 20 of the sub-model, during the rendering of the floor 1 sub-model, the vertex buffer and shader parameters generated after geometric processing of the riser's geometric data are saved to the rendering intermediate data cache. When rendering sub-models from layer 2 to layer 20, if the edge node detects that the corresponding intermediate rendering data for the riser already exists in the cache, it will directly read from the cache and inject it into the rendering pipeline. There is no need to repeat vertex transformation and lighting calculation. Only necessary viewport transformation and pixel shading operations are performed to complete the rendering of the riser in the current sub-model, which greatly saves GPU computing resources.

[0056] In the fourth step, based on the lightweight model data and the injected intermediate rendering data, the edge nodes sequentially perform geometric processing, rasterization, and pixel processing operations via the GPU to render the j-th BIM rendering sub-model. The geometric processing stage includes the vertex shader performing model transformation, view transformation, and projection transformation on the vertex coordinates, transforming the components from the model coordinate system to the screen coordinate system. The rasterization stage converts the transformed geometric primitives into screen pixel fragments. The pixel processing stage includes the fragment shader performing texture sampling, lighting calculation, and color blending on each pixel fragment, ultimately generating the rendered pixel color value. The rendering result of this j-th BIM rendering sub-model is one or more frames of image data (i.e., rendering sub-model data), and the rendering result is stored in the frame buffer.

[0057] Fifth, after the j-th BIM sub-model is rendered, the edge node saves the intermediate rendering data generated during this rendering process, which may be reused by subsequent sub-models, to the intermediate rendering data cache for reuse during subsequent sub-model rendering. Simultaneously, if the j-th BIM sub-model is not the last sub-model, the edge node releases temporary data that is no longer needed in this rendering (such as intermediate calculation results unique to this sub-model) to control memory usage.

[0058] Through the above process, the edge nodes render N BIM sub-models sequentially according to the rendering queue, resulting in N BIM rendering sub-models. Due to the use of sequential rendering, lightweight processing, and reuse of intermediate rendering data, the overall rendering efficiency is significantly improved compared to a single overall rendering, and the requirements for GPU memory and computing power of the edge nodes are greatly reduced.

[0059] S203, the edge node transmits data of N BIM rendering sub-models to the user terminal.

[0060] In this embodiment, the data security of the N BIM rendering sub-models is related during transmission. This correlation is reflected in the fact that the transmission security protection of each BIM rendering sub-model's data is not independent, but rather based on the same initial security configuration and evolves in a chain as the transmission process progresses. The security status generated during the transmission of the previous sub-model naturally continues to the transmission protection of the next sub-model. The data security protection mechanism during transmission is described in detail below.

[0061] 1. Acquisition of random information and initial security configuration

[0062] Before the edge node begins transmitting BIM rendering sub-model data, the edge node retrieves random information from the cloud. This random information is used for unified security protection initialization for the data transmission of N BIM rendering sub-models.

[0063] One specific triggering scenario is as follows: The cloud sends this random information to the edge node simultaneously with the task instruction information sent to the edge node, or before the edge node completes all rendering tasks and prepares to begin transmission. Correspondingly, the edge node receives this random information. The cloud also sends the same random information to the user terminal to ensure that the scrambler on the edge node side and the descrambler on the user terminal side have the same initial state. The cloud sending the random information to the edge node and the user terminal can be simultaneous or sequential; this application does not specify a particular order for the sending.

[0064] The random information is L bits, where L is an integer greater than 1. This L-bit information can represent 2^L possible values, each corresponding to a different 2^L scrambler state value. The random information value is one of these 2^L possible values. For example, L can be 3, 4, or 5, resulting in 3, 4, or 5 bits of random information, representing 8, 16, or 32 possible values, respectively, corresponding to 8, 16, or 32 scrambler state values. The specific value of L can be determined by the cloud based on security policies. The larger the value of L, the larger the range of initial state values, and the stronger the unpredictability of the initial key seed.

[0065] After receiving random information, the edge node sets the initial state value of the scrambler based on that random information. For example, the edge node sets the initial state value of the scrambler to a state value corresponding to the value of the random information.

[0066] The scrambler is used by edge nodes to scramble the data of N BIM rendering sub-models sent to the user terminal. One specific implementation structure of the scrambler is as follows: The scrambler includes K memories connected in sequence. The current state value of the scrambler is a K-bit value, which corresponds one-to-one with the value of each of the K memories, where K is an integer greater than or equal to 7. Each memory can store 1 bit of data, and the values ​​of the K memories together constitute the current state value of the scrambler.

[0067] For ease of understanding, the following assumes that K equals 7 and the generator polynomial of the scrambler is G(D) = D. 7 +D 4 Taking +1 (corresponding to m=4, i.e., the value of the 4th memory is XORed with the value of the 7th memory) as an example, let's illustrate this with the specific values ​​of the random information. Assume L equals 2, meaning the random information is 2 bits, which can represent 4 values ​​(00, 01, 10, 11). These 4 values ​​correspond to 4 preset 7-bit state values. An exemplary mapping relationship is as follows: when the random information value is "00", the corresponding 7-bit state value is "1010101"; when the random information value is "01", the corresponding 7-bit state value is "0101101"; when the random information value is "10", the corresponding 7-bit state value is "1101001"; when the random information value is "11", the corresponding 7-bit state value is "0010111". It should be noted that the above mapping relationship is only an example; different mapping tables or mapping functions can be designed according to security requirements. For example, when the random information sent from the cloud is "10", the edge node sets the initial state value of the scrambler to "1101001". At this time, the values ​​of the seven memory bits from the least significant bit to the most significant bit (from the first memory bit to the seventh memory bit) are 1, 0, 0, 1, 0, 1, 1 respectively. After the edge node sets the initial state value of the scrambler to "1101001", the scrambler starts operating from this state and generates the subsequent scrambling sequence.

[0068] The edge node saves the initial state values ​​to the state storage area. This state storage area can be a register file, a secure memory area, or storage space in non-volatile memory, etc., and this application does not specifically limit it. This state storage area is used to persistently save the scrambler's state values ​​between multiple sub-model transmissions, so that the scrambler's state can be correctly inherited and continued during the transmission of each sub-model.

[0069] The edge node also uses this initial state value as the initial key seed. Based on this initial key seed, the edge node derives a session key 1 using a preset key derivation algorithm. For example, using the initial key seed (such as its corresponding decimal value) and the root key preset by the edge node as input parameters, the key derivation algorithm calculates the input parameters to obtain session key 1. The root key is also preset at the user end, such as being securely distributed or preset via the cloud when the service is launched. The preset key derivation algorithm can be a hash-based message authentication code (HMAC), a password-based key derivation function (PBKDF), a key derivation function (KDF), etc. The derived session key 1 is used to securely protect the data transmission of the first BIM rendering sub-model among N BIM rendering sub-models. The security protection methods include data encryption and / or data integrity protection. In one example, security protection can employ AES Counter mode (AES-CTR) to encrypt transmitted data, ensuring that even if an attacker intercepts the ciphertext data, they cannot recover the plaintext data without obtaining session key 1. In another example, security protection can employ AES Galois / Counter mode (AES-GCM) to simultaneously encrypt and protect the integrity of transmitted data, enabling the user not only to decrypt the data but also to verify whether the data has been tampered with during transmission.

[0070] 2. Session key chain update based on data consumption

[0071] The edge node updates the session key i-1 to session key i based on the data consumption i-1 generated from transmitting data of the (i-1)th BIM rendering sub-model out of N BIM rendering sub-models, and the session key i-1. Here, i is an integer from 2 to N. The session key i-1 is used for security protection of the transmission of data for the (i-1)th BIM rendering sub-model, and the session key i is used for security protection of the data for the ith BIM rendering sub-model.

[0072] The following detailed explanation uses the data transmission and corresponding key update process of the (i-1)th BIM rendering sub-model as an example.

[0073] Before transmitting the data of the (i-1)th BIM rendering sub-model, the edge node reads the current state value from the state storage area and loads it into the scrambler. Specifically, when i equals 2, the state storage area stores the initial state value, i.e., the scrambler state value corresponding to session key 1. The edge node reads this initial state value from the state storage area and loads it into the scrambler. When i is greater than 2, the state storage area stores the state value written back after the previous round of transmission, i.e., the current state value of the scrambler written back when the transmission of the (i-2)th BIM rendering sub-model data is completed. The edge node reads this state value from the state storage area and loads it into the scrambler.

[0074] After loading, the edge nodes scramble the data of the (i-1)th BIM rendering sub-model using a scrambler. The specific scrambling process is as follows: Within each clock cycle, the scrambler shifts the values ​​of the 1st to (K-1)th memories from the K memories to the 2nd to Kth memories respectively. It then XORs the value of the mth memory with the value of the Kth memory and inputs the result into the 1st memory, obtaining a scrambling bit, where m is a positive integer less than K. Simultaneously, the scrambler XORs this scrambling bit with the corresponding data bit from the (i-1)th BIM rendering sub-model, obtaining and outputting the scrambled data bit. For example, with K=7 and m=4, within one clock cycle: the values ​​of the 1st to 6th memories are shifted to the 2nd to 7th memories respectively; the value of the 4th memory is XORed with the original value of the 7th memory, and the result is input into the 1st memory, obtaining the scrambling bit for that clock cycle; this scrambling bit is XORed with the currently input data bit, and the scrambled data bit is output. For example, assuming the current 7-bit status value of the scrambler is "1101001" (from least significant bit to most significant bit), the first memory value is 1, the second is 0, the third is 0, the fourth is 1, the fifth is 0, the sixth is 1, and the seventh is 1; the value (1) of the fourth memory and the value (1) of the seventh memory are XORed to get 0, and this 0 is the scrambling bit generated in this clock cycle; after feedback shift, the new status value becomes "0110100"; if the current input data bit is 1, then the scrambled data bit is 0XOR1=1, where XOR represents XOR. While scrambling, the edge node also uses the session key i-1 to encrypt the scrambled data (such as AES-CTR mode encryption), generates ciphertext data, and sends the ciphertext data to the user terminal.

[0075] During the transmission of data for the (i-1)th BIM rendering sub-model, the edge node records the number of scrambling bits used to scramble the data of the (i-1)th BIM rendering sub-model via a scrambling device, which is taken as the data consumption i-1. Since the scrambling device generates one scrambling bit per clock cycle, the edge node can obtain the number of scrambling bits by counting the number of clock cycles the scrambling device runs. For example, if the total data of the (i-1)th BIM rendering sub-model is S bits, then the scrambling device needs to run S clock cycles to complete the scrambling of all the data, and the number of scrambling bits generated is S, and the data consumption i-1 is S. The data consumption i-1 reflects the actual workload and communication volume of the scrambling device when transmitting the sub-model data. Different BIM rendering sub-models have different data volumes, resulting in different data consumption, which introduces a novel, sub-model-specific variable for subsequent key updates.

[0076] When the data transmission of the (i-1)th BIM rendering sub-model is completed, meaning all data bits of this sub-model have been scrambled and encrypted before transmission, the edge node obtains the current state value of the scrambler. This current state value refers to the state value stored in K memories after the scrambler has completed the scrambling of the last data bit; it records the complete evolution history of the scrambler throughout the transmission of the (i-1)th sub-model data. The edge node writes the current state value of the scrambler back to the state storage area to replace the previously stored state value, for use in the transmission of the next sub-model.

[0077] The edge node performs a nonlinear calculation on the current state value of the scrambler to obtain the key seed i. The purpose of this nonlinear calculation is to break the linear predictability of the Linear Feedback Shift Register (LFSR) state, thereby enhancing the randomness and security of the key seed. The input to the nonlinear calculation includes the current state value of the scrambler (K ​​bits) and the data consumption i-1, and the output is a K-bit key seed i, the same number of bits as the initial key seed.

[0078] The specific method of nonlinear calculation is as follows: the edge node performs a bitwise AND operation on a specified bit segment of the current state value of the scrambler to obtain the intermediate value; the edge node performs an XOR operation on the intermediate value and the data consumption i-1 to obtain the key seed i. The following is an explanation using a specific example with K=7.

[0079] The 7-bit binary representation of the current state value of the scrambler from most significant bit to least significant bit is [s6,s5,s4,s3,s2,s1,s0], where s6 is the most significant bit and s0 is the least significant bit. The calculation process includes: First, take the high 6 bits [s6,s5,s4,s3,s2,s1] and low 6 bits [s5,s4,s3,s2,s1,s0] of the current state value, and perform a bitwise AND operation on the corresponding positions to obtain a 6-bit intermediate value A. That is: A=[s6&s5,s5&s4,s4&s3,s3&s2,s2&s1,s1&s0], where “&” represents the bitwise AND operation. Since the AND operation is nonlinear in the binary field (GF(2)), A is a nonlinear transformation result. Next, take the lower 6 bits of the data consumption i-1 (i.e., data consumption i-1 mod 64), and perform a bitwise XOR operation between A and these lower 6 bits to obtain a 6-bit result B. That is: B = AXOR(data consumption i-1 & 0x3F), where "XOR" represents the bitwise XOR operation, and "0x3F" is the hexadecimal representation, corresponding to the binary "111111". Finally, add a 0 before the highest bit of B to form a 7-bit result, which is the key seed i, that is: key seed i = {1'b0, B}, where "1'b0" represents 1 bit 0, and "{}" represents bit concatenation. Since the highest bit is fixed at 0, the value range of key seed i is 1 to 127, which is consistent with the value range of the initial key seed.

[0080] For ease of understanding, let's illustrate with an example: Suppose that when an edge node completes data transmission to the (i-1)th BIM rendering sub-model, the current state value of the scrambler is 0110110 (binary, i.e., s6=0, s5=1, s4=1, s3=0, s2=1, s1=1, s0=0). Then the high 6 bits are [0, 1, 1, 0, 1, 1], and the low 6 bits are [1, 1, 0, 1, 1, 0]. Using a bitwise AND operation: 0&1=0, 1&1=1, 1&0=0, 0&1=0, 1&1=1, 1&0=0, we obtain the intermediate value A=010100 (binary). Assuming the data consumption i-1 is 1050000 (i.e., this sub-model transmitted 1050000 bits of data), its lower 6 bits are 1050000 mod 64 = 1050000 - 64 × 16406 = 1050000 - 1049984 = 16, which is binary 010000. Therefore, B = 010100 XOR 010000 = 000100 (binary). After padding with 0s in the highest bit, we get the key seed i = 0000100 (binary), which is decimal 4.

[0081] The edge node updates the session key i-1 to the session key i based on the key seed i and the data consumption i-1. Specifically, the edge node uses the same key derivation algorithm as when deriving session key 1, taking the key seed i as the new key derivation input parameter, and inputting it together with the root key preset by the edge node into the key derivation algorithm to calculate the session key i. The session key i is dedicated to the security protection of the data of the i-th BIM rendering sub-model.

[0082] Using the above method, when i is an integer from 2 to N, the session key is sequentially updated from session key 1 to session key 2, session key 3, ..., session key N. Session key 1 protects the transmission of the first sub-model, session key 2 protects the transmission of the second sub-model, and so on. Since the data volume of each BIM rendering sub-model is different, the data consumption i-1 generated during transmission is also different, resulting in a different key seed i generated with each update. This makes the session keys corresponding to each sub-model independent and unpredictable. Simultaneously, since the generation of key seed i depends on the current state value of the scrambler when the previous sub-model transmission is completed, and this state value is the cumulative result of the scrambling evolution of all data bits of the previous sub-model, a chain-like relationship is formed between the session keys. Cracking the session key of any sub-model cannot deduce the session keys of other sub-models forward or backward, ensuring the overall security of the N BIM rendering sub-model data during transmission.

[0083] 3. Corresponding processing on the user side

[0084] It should be noted that, corresponding to the edge nodes, the user terminal also obtains the same random information from the cloud before receiving the BIM rendering sub-model data. Based on this random information, the user terminal sets the initial state value of the descrambler in the same way as the edge nodes, and derives session key 1 based on this initial state value. The structure of the descrambler is the same as that of the scrambler on the edge node side, and its operation is also the same, that is, it generates the same descrambled bit sequence as the scrambler in each clock cycle. After receiving the encrypted data from the edge nodes, the user terminal first decrypts it using session key 1, and then descrambles the decrypted data using the descrambler to recover the original data of the first BIM rendering sub-model. After receiving and processing the data of the (i-1)th BIM rendering sub-model, the user terminal also records the number of descrambling bits consumed by its descrambling unit (i.e., data consumption i-1), obtains the current state value of the descrambling unit, performs the same nonlinear calculation as the edge node to obtain the key seed i, and then updates the session key i-1 to the session key i based on the key seed i and the data consumption i-1, which is used to decrypt and descramble the data of the i-th BIM rendering sub-model. Since the edge node and the user terminal use the same initial state, the same state update rules, the same data consumption statistics, and the same nonlinear calculation and key derivation algorithm, the session keys on both sides can be updated synchronously, ensuring that the transmission security protection of each sub-model is correct and effective. The specific processing flow of the user terminal is similar to that of the edge node, and will not be described in detail in this application.

[0085] Through the above S203, the edge node completes the transmission of N BIM rendering sub-model data to the user terminal. During the transmission process, a unified initial security configuration is performed based on random information, and the session key is updated in a chain-like manner based on the data consumption of each sub-model transmission. This ensures that the data of the N BIM rendering sub-models are securely associated during the transmission process, avoiding the signaling overhead of multiple key negotiations and ensuring the security of data transmission of each sub-model.

[0086] In summary, edge nodes receive task instructions from the cloud and render the N split BIM sub-models sequentially, rather than rendering the entire BIM model as a whole. This decomposes the rendering task into multiple sub-tasks, requiring only the loading and processing of data from a single BIM sub-model for each rendering operation. This avoids the inefficiency caused by centralized loading of massive datasets during the overall rendering of the complete model, and reduces the hardware requirements for edge nodes' computing, storage, and graphics processing capabilities. Furthermore, the data security of the N BIM rendering sub-models is interconnected during transmission, enabling secure data protection for each sub-model to be linked through a unified mechanism, rather than negotiating security strategies independently for each sub-model. This further reduces signaling overhead and resource consumption during transmission.

[0087] Figure 3This is a schematic diagram of the structure of an electronic device provided in an embodiment of this application. Exemplarily, the electronic device may be a terminal, or a chip (system) or other component or assembly that can be disposed in the terminal. Figure 3 As shown, the electronic device 200 may include a processor 201. Optionally, the electronic device 200 may also include a memory 202 and / or a transceiver 203. The processor 201 is coupled to the memory 202 and the transceiver 203, for example, via a communication bus.

[0088] The following is combined Figure 3 A detailed description of each component of the electronic device 200 is provided below:

[0089] The processor 201 is the control center of the electronic device 200. It can be a single processor or a collective term for multiple processing elements. For example, the processor 201 can be one or more central processing units (CPUs), application-specific integrated circuits (ASICs), or one or more integrated circuits configured to implement the embodiments of this application, such as one or more digital signal processors (DSPs), or one or more field-programmable gate arrays (FPGAs).

[0090] Optionally, the processor 201 can perform various functions of the electronic device 200 by running or executing software programs stored in the memory 202 and calling data stored in the memory 202, such as performing the aforementioned functions. Figure 2 The method shown.

[0091] In a specific implementation, as one example, the processor 201 may include one or more CPUs, for example... Figure 3 CPU0 and CPU1 are shown in the diagram.

[0092] In a specific implementation, as one example, the electronic device 200 may also include multiple processors, for example... Figure 3 The processor 201 shown is an example. Each of the processors 201 can be a single-core processor or a multi-core processor. Here, "processor" can refer to one or more devices, circuits, and / or processing cores used to process data (e.g., computer program instructions).

[0093] The memory 202 is used to store the software program that executes the solution of this application, and is controlled by the processor 201 to execute it. The specific implementation method can be referred to the above method embodiment, and will not be repeated here.

[0094] Optionally, the memory 202 may be a read-only memory (ROM) or other type of static storage device capable of storing static information and instructions, random access memory (RAM) or other type of dynamic storage device capable of storing information and instructions, or electrically erasable programmable read-only memory (EEPROM), compact disc read-only memory (CD-ROM) or other optical disc storage, optical disc storage (including compressed optical discs, laser discs, optical discs, digital universal optical discs, Blu-ray discs, etc.), magnetic disk storage media or other magnetic storage devices, or any other medium capable of carrying or storing desired program code in the form of instructions or data structures and accessible by a computer, but not limited thereto. The memory 202 may be integrated with the processor 201 or exist independently, and may be accessed through the interface circuit of the electronic device 200. Figure 3 (Not shown in the image) is coupled to processor 201, but this embodiment does not specifically limit this.

[0095] Transceiver 203 is used for communication with other electronic devices. For example, if electronic device 200 is a terminal, transceiver 203 can be used to communicate with a network device or with another terminal device. As another example, if electronic device 200 is a network device, transceiver 203 can be used to communicate with a terminal or with another network device.

[0096] Optionally, transceiver 203 may include a receiver and a transmitter. Figure 3 (Not shown separately). The receiver is used to implement the receiving function, and the transmitter is used to implement the transmitting function.

[0097] Optionally, the transceiver 203 can be integrated with the processor 201, or it can exist independently and be connected via the interface circuit of the electronic device 200. Figure 3 (Not shown in the image) is coupled to processor 201, but this embodiment does not specifically limit this.

[0098] Understandable Figure 3 The structure of the electronic device 200 shown does not constitute a limitation on the electronic device. Actual electronic devices may include more or fewer components than shown, or combine certain components, or have different component arrangements.

[0099] Furthermore, the technical effects of the electronic device 200 can be referred to the technical effects of the methods described in the above-described method embodiments, and will not be repeated here.

[0100] It should be understood that the processor in the embodiments of this application can be a central processing unit (CPU), or it can be other general-purpose processors, digital signal processors (DSPs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc. The general-purpose processor can be a microprocessor or any conventional processor, etc.

[0101] It should also be understood that the memory in the embodiments of this application can be volatile memory or non-volatile memory, or may include both volatile and non-volatile memory. The non-volatile memory can be read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), or flash memory. The volatile memory can be random access memory (RAM), which is used as an external cache. By way of example, but not limitation, many forms of random access memory (RAM) are available, such as static RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rate synchronous DRAM (DDR SDRAM), enhanced synchronous DRAM (ESDRAM), synchronous linked DRAM (SLDRAM), and direct rambus RAM (DR RAM).

[0102] The above embodiments can be implemented, in whole or in part, by software, hardware (such as circuits), firmware, or any other combination thereof. When implemented using software, the above embodiments can be implemented, in whole or in part, as a computer program product. The computer program product includes one or more computer instructions or computer programs. When the computer instructions or computer programs are loaded or executed on a computer, all or part of the processes or functions described in the embodiments of this application are generated. The computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer instructions can be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another. For example, the computer instructions can be transmitted from one website, computer, server, or data center to another website, computer, server, or data center via wired (e.g., infrared, wireless, microwave, etc.) means. The computer-readable storage medium can be any available medium that a computer can access or a data storage device such as a server or data center that includes one or more sets of available media. The available medium can be a magnetic medium (e.g., floppy disk, hard disk, magnetic tape), an optical medium (e.g., DVD), or a semiconductor medium. A semiconductor medium can be a solid-state drive.

[0103] It should be understood that the term "and / or" in this article is merely a description of the relationship between related objects, indicating that three relationships can exist. For example, A and / or B can represent: A existing alone, A and B existing simultaneously, or B existing alone. A and B can be singular or plural. Additionally, the character " / " in this article generally indicates an "or" relationship between the preceding and following related objects, but it can also represent an "and / or" relationship. Please refer to the context for a more accurate understanding.

[0104] In this application, "at least one" means one or more, and "more than one" means two or more. "At least one of the following" or similar expressions refer to any combination of these items, including any combination of single or multiple items. For example, at least one of a, b, or c can mean: a, b, c, ab, ac, bc, or abc, where a, b, and c can be single or multiple.

[0105] It should be understood that in the various embodiments of this application, the order of the above-mentioned processes does not imply the order of execution. The execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiments of this application.

[0106] Those skilled in the art will recognize that the units and algorithm steps of the various examples described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, or a combination of computer software and electronic hardware. Whether these functions are implemented in hardware or software depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application.

[0107] Those skilled in the art will understand that, for the sake of convenience and brevity, the specific working processes of the systems, devices, and units described above can be referred to the corresponding processes in the foregoing method embodiments, and will not be repeated here.

[0108] In the several embodiments provided in this application, it should be understood that the disclosed systems, apparatuses, and methods can be implemented in other ways. For example, the apparatus embodiments described above are merely illustrative; for instance, the division of units is only a logical functional division, and in actual implementation, there may be other division methods. For example, multiple units or components may be combined or integrated into another system, or some features may be ignored or not executed. Furthermore, the coupling or direct coupling or communication connection shown or discussed may be through some interfaces; the indirect coupling or communication connection between apparatuses or units may be electrical, mechanical, or other forms.

[0109] The units described as separate components may or may not be physically separate. The components shown as units may or may not be physical units; that is, they may be located in one place or distributed across multiple network units. Some or all of the units can be selected to achieve the purpose of this embodiment according to actual needs.

[0110] In addition, the functional units in the various embodiments of this application can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit.

[0111] If the aforementioned functions are implemented as software functional units and sold or used as independent products, they can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of this application, in essence, or the part that contributes to the prior art, or a portion of the technical solution, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) to execute all or part of the steps of the methods described in the various embodiments of this application. The aforementioned storage medium includes various media capable of storing program code, such as USB flash drives, portable hard drives, read-only memory (ROM), random access memory (RAM), magnetic disks, or optical disks.

[0112] The above description is merely a specific embodiment of this application, but the scope of protection of this application is not limited thereto. Any changes or substitutions that can be easily conceived by those skilled in the art within the scope of the technology disclosed in this application should be included within the scope of protection of this application.

Claims

1. A lightweight rendering and interaction method for BIM models based on cloud-edge-device collaboration, characterized in that, Applied to edge nodes, the method includes: The edge node receives task instruction information from the cloud, which instructs the edge node to render N BIM sub-models for the user terminal. The N BIM sub-models are obtained by the cloud from splitting the complete BIM model of the user terminal, where N is an integer greater than 1. The edge nodes sequentially render the N BIM sub-models to obtain N BIM rendering sub-models; The edge node transmits the data of the N BIM rendering sub-models to the user terminal, wherein the data security of the N BIM rendering sub-models during transmission is relevant.

2. The method according to claim 1, characterized in that, The edge nodes sequentially render the N BIM sub-models to obtain N BIM rendering sub-models, including: The edge node obtains the N BIM sub-models and their dependencies from the task instruction information; The edge nodes determine the rendering order based on the dependency relationship, and render the N BIM sub-models sequentially according to the rendering order; During the rendering process in the order described above, the rendering result data of the rendered BIM sub-model is shared with the BIM sub-model to be rendered later, so as to achieve rendering reuse.

3. The method according to claim 2, characterized in that, The sequential rendering of the N BIM sub-models includes: The edge node performs lightweight processing on the BIM sub-model to be rendered to obtain lightweight model data; the lightweight processing includes visibility culling and detail level simplification. The edge node renders the BIM sub-model to be rendered based on the lightweight model data.

4. The method according to claim 2, characterized in that, The rendering result data is shared with the subsequent BIM sub-models to be rendered, including: The edge node injects the intermediate rendering data generated when the BIM sub-model has been rendered into the rendering pipeline of the subsequent BIM sub-model to be rendered, so that the subsequent BIM sub-model to be rendered can reuse the intermediate rendering data to skip the repeated rendering calculation of the same components as the already rendered BIM sub-model.

5. The method according to claim 2 or 3, characterized in that, The N BIM sub-models are obtained by splitting the complete BIM model based on the component features and spatial distribution of the complete BIM model in the cloud, and then merging them through geometric batching and material merging. The N BIM sub-models have dependencies on each other, and these dependencies are sent to the edge nodes through the task instruction information. The geometric batching and material merging refer to the edge nodes performing geometric batching on components with the same rendering material after splitting the complete BIM model, and applying the same simplified material to the batched components.

6. The method according to claim 1, characterized in that, The edge node transmits data of the N BIM rendering sub-models to the user terminal, including: The edge node obtains random information from the cloud; The edge node sets the initial state value of the scrambler according to the random information; the scrambler is used by the edge node to scramble the data of the N BIM rendering sub-models sent to the user terminal; the initial state value is used as the initial key seed to derive a session key 1, and the session key 1 is used to protect the transmission of the data of the first BIM rendering sub-model among the N BIM rendering sub-models. The edge node updates the session key i-1 to session key i based on the data consumption i-1 generated during the transmission of the data of the (i-1)th BIM rendering sub-model among the N BIM rendering sub-models and the session key i-1. The session key i-1 is used to protect the transmission of the data of the (i-1)th BIM rendering sub-model, and the session key i is used to protect the data of the ith BIM rendering sub-model among the N BIM rendering sub-models, where i is an integer from 2 to N.

7. The method according to claim 6, characterized in that, The edge node updates the session key i-1 to the session key i based on the data consumption i-1 generated from transmitting the data of the (i-1)th BIM rendering sub-model among the N BIM rendering sub-models and the session key i-1, including: When the edge node completes the data transmission to the (i-1)th BIM rendering sub-model, the current state value of the scrambler is obtained; The edge node performs a nonlinear calculation on the current state value of the scrambler to obtain the key seed i; The edge node updates the session key i-1 to the session key i based on the key seed i and the data consumption i-1.

8. The method according to claim 7, characterized in that, The edge node performs a nonlinear calculation on the current state value of the scrambler to obtain the key seed i, including: The edge node performs a bitwise AND operation on a specified bit segment of the current state value of the scrambler to obtain an intermediate value; The edge node performs an XOR operation on the intermediate value and the data consumption i-1 to obtain the key seed i, and the number of bits of the key seed i is consistent with the initial key seed.

9. The method according to claim 7, characterized in that, The edge node obtains the data consumption amount i-1, including: During the transmission of the data of the (i-1)th BIM rendering sub-model, the edge node will record the number of scrambling bits used to scramble the data of the (i-1)th BIM rendering sub-model through the scrambling device, which will be used as the data consumption amount i-1.

10. The method according to claim 7, characterized in that, The method further includes: The edge node saves the initial state value of the scrambler corresponding to the session key 1 to the state storage area; Before transmitting the data of the (i-1)th BIM rendering sub-model, the edge node reads the current state value from the state storage area and loads it into the scrambling device; The edge node scrambles the data of the (i-1)th BIM rendering sub-model using the scrambler. When the data transmission of the (i-1)th BIM rendering sub-model is completed, the edge node writes the current state value of the scrambler back to the state storage area, and the current state value is used to generate the session key i.