A version control method and system

By rendering and analyzing version conflicts of 3D model files, the problem of low efficiency in merging 3D model files in existing technologies has been solved, achieving an efficient and accurate merging process and reducing manual intervention and management costs.

CN115202725BActive Publication Date: 2026-04-21SHANGHAI UNITED IMAGING INTELLIGENCE CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
SHANGHAI UNITED IMAGING INTELLIGENCE CO LTD
Filing Date
2022-07-15
Publication Date
2026-04-21

AI Technical Summary

Technical Problem

Existing 3D model file version control methods require a lot of manual intervention, resulting in low merging efficiency, poor merging effect, and high management cost. They also make it difficult to effectively detect and merge differences between different versions of 3D model files.

Method used

By acquiring the first and second 3D model files, rendering the scene graphs to generate the first and second 3D models respectively, and performing version conflict analysis based on these models to determine whether there are direct or indirect conflicts, and providing the conflict type to the user to facilitate merging.

Benefits of technology

It achieves efficient and accurate 3D model file merging, reduces manual intervention, improves merging efficiency and effectiveness, and reduces management costs.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115202725B_ABST
    Figure CN115202725B_ABST
Patent Text Reader

Abstract

This specification provides a version control method, executed by at least one processing device. The method includes obtaining a first 3D model file and a second 3D model file; rendering scene diagrams based on the first 3D model file and the second 3D model file respectively to generate a first 3D model and a second 3D model; and performing version conflict analysis on the first 3D model file and the second 3D model file based on the first 3D model and the second 3D model.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This manual relates to the field of 3D modeling technology, and in particular to a version control method and system for 3D model files. Background Technology

[0002] With the widespread use of 3D modeling software, 3D models have become more complex. Sometimes, multiple users edit and maintain the same 3D model file separately, potentially resulting in different versions of the same file. These different versions may have differences, which need to be considered when merging them.

[0003] Therefore, it is necessary to provide a method and system for version control of 3D model files, so as to effectively detect the differences between different 3D model files and / or realize the merging of different 3D model files. Summary of the Invention

[0004] One embodiment of this specification provides a version control method. The version control method includes: obtaining a first 3D model file and a second 3D model file; rendering scene diagrams based on the first 3D model file and the second 3D model file respectively to generate a first 3D model and a second 3D model; and performing version conflict analysis on the first 3D model file and the second 3D model file based on the first 3D model and the second 3D model.

[0005] In some embodiments, the first 3D model includes at least two first nodes, and the second 3D model includes at least two second nodes; the version conflict analysis of the first 3D model file and the second 3D model based on the first 3D model and the second 3D model includes: for each first node, searching for a corresponding node among at least two second nodes; and performing the version conflict analysis based on the search result of the at least one first node.

[0006] In some embodiments, the version conflict analysis includes: for each first node, determining whether a corresponding node exists for the first node based on the search result; and in response to the determination that no corresponding node exists for the first node, determining that the first 3D model file and the second 3D model file have a direct conflict.

[0007] In some embodiments, in response to the determination result that the first node has a corresponding node, the version conflict analysis further includes: determining the first bounding box of the first node in the first 3D model and the second bounding box of the corresponding node in the second 3D model; and determining whether there is an indirect conflict between the first 3D model file and the second 3D model file based on the first bounding box and the second bounding box.

[0008] In some embodiments, determining whether there is an indirect conflict between the first 3D model file and the second 3D model file based on the first bounding box and the second bounding box includes: determining a first value of a feature parameter of the first bounding box; determining a second value of the feature parameter of the second bounding box; and determining that there is no indirect conflict between the first 3D model file and the second 3D model file in response to the difference between the first value and the second value being within a threshold range.

[0009] In some embodiments, the feature parameters include at least one of shape, size, and position.

[0010] In some embodiments, in response to the determination result that the first node has a corresponding node, the version conflict analysis further includes: determining the first bounding box of the first node in the first 3D model, and the second bounding box of the corresponding node in the second 3D model; determining the first reference bounding box of the reference node in the first 3D model, and the second reference bounding box of the reference corresponding node of the reference node in the second 3D model; and determining whether there is an indirect conflict between the first 3D model file and the second 3D model file based on the first bounding box, the second bounding box, the first reference bounding box, and the second reference bounding box.

[0011] In some embodiments, determining whether there is an indirect conflict between the first 3D model file and the second 3D model file based on the first bounding box, the second bounding box, the first reference bounding box, and the second reference bounding box includes: determining a first relative positional relationship between the first bounding box and the first reference bounding box; determining a second relative positional relationship between the second bounding box and the second reference bounding box; and determining whether there is an indirect conflict between the first 3D model file and the second 3D model file based on the first relative positional relationship and the second relative positional relationship.

[0012] In some embodiments, determining whether there is an indirect conflict between the first 3D model file and the second 3D model file based on the first bounding box, the second bounding box, the first reference bounding box, and the second reference bounding box includes: merging the first 3D model and the second 3D model to generate a merged model; and determining whether there is an indirect conflict between the first 3D model file and the second 3D model file based on the merged model, the first bounding box, the second bounding box, the first reference bounding box, and the second reference bounding box.

[0013] In some embodiments, determining whether there is an indirect conflict between the first 3D model file and the second 3D model file based on the merged model, the first bounding box, the second bounding box, the first reference bounding box, and the second reference bounding box includes: determining the merged bounding box of the merged model after merging the first bounding box and the first reference bounding box; determining the merged reference bounding box of the merged model after merging the second bounding box and the second reference bounding box; determining whether the first bounding box intersects with the first reference bounding box to obtain a first determination result; determining whether the second bounding box intersects with the second reference bounding box to obtain a second determination result; determining whether the merged bounding box intersects with the merged reference bounding box to obtain a third determination result; and determining that there is an indirect conflict between the first 3D model file and the second 3D model file based on the first determination result, the second determination result, and the third determination result.

[0014] In some embodiments, the step of performing version conflict analysis on the first 3D model file and the second 3D model file based on the first 3D model and the second 3D model further includes: obtaining the ancestor model of the first 3D model and the second 3D model; and performing version conflict analysis on the first 3D model file and the second 3D model file based on the first 3D model, the second 3D model and the ancestor model.

[0015] In some embodiments, the first 3D model includes at least two first nodes, the second 3D model includes at least two second nodes, and the ancestor model includes at least two third nodes. The version conflict analysis of the first 3D model file and the second 3D model file based on the first 3D model, the second 3D model, and the ancestor model includes: for each first node, finding a corresponding node in the at least two second nodes and the at least two third nodes respectively; and performing the version conflict analysis based on the search results of the at least one first node.

[0016] In some embodiments, the method further includes: determining whether there is a conflict between the first 3D model file and the second 3D model file based on the version conflict analysis result; in response to the determination result that there is a conflict between the first 3D model file and the second 3D model file, sending the result of the version conflict analysis to a user terminal to present it to the user; and merging the first 3D model file and the second 3D model file based on the conflict resolution instruction input by the user through the user terminal.

[0017] One embodiment of this specification provides a version control system, including an acquisition module, a generation module, and an analysis module; the acquisition module is used to acquire a first 3D model file and a second 3D model file; the generation module is used to render scene diagrams based on the first 3D model file and the second 3D model file respectively to generate a first 3D model and a second 3D model; and the analysis module is used to perform version conflict analysis on the first 3D model file and the second 3D model file based on the first 3D model and the second 3D model.

[0018] One embodiment of this specification provides a version control device, including a processing device for executing a version control method.

[0019] Traditional 3D model file control methods typically require significant manual intervention, resulting in low merging efficiency, poor merging results, and high management costs. This invention renders scene diagrams from multiple 3D model files, then performs version conflict analysis on the rendered 3D models to determine if conflicts exist and their types. If conflicts exist, the user inputs conflict resolution commands to complete the merging of the 3D model files. When no conflicts exist, no manual intervention is required; the merging process proceeds directly. When conflicts exist, the conflict type is provided to the user for easy judgment, thus achieving efficient 3D model merging. Attached Figure Description

[0020] This specification will be further described by way of exemplary embodiments, which will be described in detail with reference to the accompanying drawings. These embodiments are not limiting; in these embodiments, the same reference numerals denote the same structures, wherein:

[0021] Figure 1 This is a schematic diagram illustrating application scenarios of a version control system according to some embodiments of this specification;

[0022] Figure 2 This is a block diagram of a version control system according to some embodiments of this specification;

[0023] Figure 3This is an exemplary flowchart of version control according to some embodiments of this specification;

[0024] Figure 4 This is an exemplary flowchart of two-way differential analysis according to some embodiments of this specification;

[0025] Figure 5 This is a schematic diagram of three-way differential analysis according to some embodiments of this specification;

[0026] Figure 6A This is a schematic diagram of a first 3D model shown according to some embodiments of this specification;

[0027] Figure 6B This is a schematic diagram of a second 3D model shown according to some embodiments of this specification;

[0028] Figure 6C This is a schematic diagram of a merged model according to some embodiments of this specification. Detailed Implementation

[0029] To more clearly illustrate the technical solutions of the embodiments in this specification, the accompanying drawings used in the description of the embodiments will be briefly introduced below. Obviously, the drawings described below are merely some examples or embodiments of this specification. For those skilled in the art, these drawings can be applied to other similar scenarios without creative effort. Unless obvious from the context or otherwise specified, the same reference numerals in the drawings represent the same structures or operations.

[0030] It should be understood that the terms “system,” “device,” “unit,” and / or “module” used herein are one way to distinguish different components, elements, parts, sections, or assemblies at different levels. However, if other terms can achieve the same purpose, they may be replaced by other expressions.

[0031] As indicated in this specification and claims, unless the context clearly indicates otherwise, the words "a," "an," "an," and / or "the" do not specifically refer to the singular and may also include the plural. Generally speaking, the terms "comprising" and "including" only indicate the inclusion of expressly identified steps and elements, which do not constitute an exclusive list, and the method or apparatus may also include other steps or elements.

[0032] Flowcharts are used in this specification to illustrate the operations performed by the system according to embodiments of this specification. It should be understood that the preceding or following operations are not necessarily performed in exact order. Instead, the steps can be processed in reverse order or simultaneously. Furthermore, other operations can be added to these processes, or one or more steps can be removed from them.

[0033] Figure 1 This is a schematic diagram of an application scenario 100 of a version control system according to some embodiments of this specification. In some embodiments, the application scenario 100 of the version control system may include a processing device 120 and a virtual reality device 130, which can be used to perform version control on multiple 3D model files 110. In some embodiments, the application scenario 100 of the version control system may also include a storage device, a network, and / or a user terminal (not shown in the figure).

[0034] 3D model file 110 may include multiple 3D model files to be version controlled, for example, such as Figure 1 The 3D model files 110-1 and 110-2 are shown. In this application, version control may include one or more operations such as analyzing whether there are conflicts between multiple 3D model files 110, determining the type of conflict between multiple 3D model files 110, determining the nodes and / or borders involved in the conflict between multiple 3D model files, and merging multiple 3D model files 110.

[0035] In some embodiments, the 3D model file 110 can be used to store information related to the 3D model, typically stored in text or binary format. For example, 3D model information may relate to the vertices, edges, faces, meshes (or borders), textures, materials, and lighting of the 3D model. As an example only, the 3D model file 110 may store the coordinates and index values ​​of each vertex in the 3D model. In some embodiments, the 3D model file 110 may be stored in various formats, such as STL, STEP, OBJ, FBX (Autodesk), 3DS, DAE, GLTF, etc. In some embodiments, the 3D model file 110 may be stored on internal or external storage devices within the version control system application scenario 100. In some embodiments, multiple 3D model files 110 may be derived from the same and / or different original 3D model files. In some embodiments, multiple 3D model files 110 may be edited by the same and / or different people.

[0036] Processing device 120 can perform version control on 3D model files 110. For example, processing device 120 can perform version conflict analysis and / or version merging on 3D model files 110-1 and 3D model files. In this application, a conflict between 3D model files refers to differences between different 3D model files. In some embodiments, a conflict is considered to exist between 3D model files only when the differences between different 3D model files exceed a certain level. Version conflict analysis may include one or more of the following operations: determining whether a conflict exists between 3D model files 110, determining the type of conflict between multiple 3D model files 110, and determining the nodes and / or borders involved in the conflict between multiple 3D model files. Version merging can be used to merge multiple 3D model files to generate a single 3D model file. In some embodiments, if multiple 3D model files do not have conflicts, they can be merged directly. If multiple 3D model files have conflicts, the conflicts can be resolved before merging the multiple 3D model files.

[0037] The virtual reality device 130 can be used to enable interaction between the user and the version control system in application scenario 100. In some embodiments, the virtual reality device 130 may include a three-dimensional visual display device 130-1 and an interaction device 130-2. In some embodiments, the three-dimensional visual display device 130-1 may include a virtual reality helmet, virtual reality glasses, virtual reality goggles, augmented reality helmet, augmented reality glasses, augmented reality goggles, etc., or any combination thereof. The three-dimensional visual display device 130-1 can achieve different effects such as Virtual Reality (VR), Augmented Reality (AR), and Mixed Reality (MR). In some embodiments, the interaction device 130-2 may include a position tracker, data gloves, 3D input devices (e.g., a 3D mouse), motion capture devices, eye trackers, force feedback devices, and other interaction devices.

[0038] In some embodiments, the virtual reality device 130 can receive version control related information from the processing device 120 and present it to the user via the 3D visual display device 130-1. For example, the user can view the conflict analysis results of 3D model files 110-1 and 110-2 via a head-mounted display device. Alternatively, the user can compare a first 3D model generated based on 3D model file 110-1 and a second 3D model generated based on 3D model file 110-2 via the head-mounted display device. In some embodiments, the user can send version control related information to the processing device 120 via the interaction device 130-2. For example, the user can edit 3D model files 110-1 and / or 110-2 via the interaction device 130-2 to resolve conflicts between them. Alternatively, the user can send a 3D model file merging command to the processing device 120 via the interaction device 130-2.

[0039] In some embodiments, users may also interact via other user terminals (not shown) besides the virtual reality device 130 and the version control system. Exemplary user terminals may include mobile devices, tablets, laptops, etc., or any combination thereof. In some embodiments, processing device 120 may be part of the virtual reality device 130 or other user terminals.

[0040] In some embodiments, the version control system application scenario 100 may also include one or more other devices, such as networks and / or storage devices. The network may include any suitable network that facilitates information and / or data exchange. For example, processing device 120 and virtual reality device 130 may transmit information and / or data via a network.

[0041] The storage device may store data, instructions, and / or any other information. In some embodiments, the storage device may store data and / or instructions related to version control. For example, the storage device may store 3D model file 110. As another example, the storage device may store instructions for processing 3D model file 110 for version control.

[0042] In some embodiments, the storage device may be connected to a network to communicate with one or more other components of the version control system application scenario 100 (e.g., processing device 120, virtual reality device 130, etc.). One or more components of the version control system application scenario 100 may access data or instructions stored in the storage device via the network. In some embodiments, the storage device may be part of the processing device 120.

[0043] Figure 2 This is a block diagram of a version control system 200 according to some embodiments of this specification.

[0044] In some embodiments, the version control system 200 may include an acquisition module 210, a generation module 220, and an analysis module 230. In some embodiments, the version control system 200 may also include a merging module 240.

[0045] The acquisition module 210 can be used to acquire the first 3D model file and the second 3D model file.

[0046] The generation module 220 can be used to render scene graphs based on the first 3D model file and the second 3D model file respectively, so as to generate the first 3D model and the second 3D model.

[0047] The analysis module 230 can be used to perform version conflict analysis on the first 3D model file and the second 3D model file based on the first 3D model and the second 3D model. In some embodiments, the analysis module 230 can be further used to obtain the ancestor models of the first 3D model and the second 3D model. The analysis module 230 can perform version conflict analysis on the first 3D model file and the second 3D model file based on the first 3D model, the second 3D model and the ancestor models.

[0048] The merging module 240 can be used to merge multiple 3D model files. For example, based on the version conflict analysis results, the merging module 240 can determine whether there is a conflict between the first 3D model file and the second 3D model file. In response to the determination that there is a conflict between the first 3D model file and the second 3D model file, the merging module 240 can send the version conflict analysis results to the user terminal for presentation to the user, and merge the first 3D model file and the second 3D model file based on the conflict resolution command input by the user through the user terminal.

[0049] For more details on the acquisition module 210, generation module 220, analysis module 230, and merging module 240, please refer to [link to relevant documentation]. Figures 3-6C And its related descriptions.

[0050] It should be understood that Figure 2 The system and its modules shown can be implemented in various ways. It should be noted that the above description of the candidate display and determination system and its modules is for convenience only and should not limit this specification to the scope of the illustrated embodiments. It is understood that those skilled in the art, after understanding the principle of the system, may arbitrarily combine the various modules or construct subsystems connected to other modules without departing from this principle. In some embodiments, Figure 2The acquisition module, generation module, analysis module, and merging module disclosed herein can be different modules within a single system, or a single module can implement the functions of two or more of the aforementioned modules. For example, the modules can share a single storage module, or each module can have its own separate storage module. Such variations are all within the scope of protection of this specification.

[0051] Figure 3 This is an exemplary flowchart of version control according to some embodiments of this specification. Figure 3 As shown, process 300 includes the following steps. In some embodiments, Figure 3 One or more operations in the process 300 shown can be performed Figure 1 The version control system is implemented in application scenario 100 shown. For example, Figure 3 The process 300 shown can be stored in a storage device as instructions and invoked and / or executed by the processing device 120.

[0052] Step 310: Obtain the first 3D model file and the second 3D model file. Step 310 can be executed by the acquisition module 210.

[0053] like Figure 1 As mentioned above, 3D model files can be used to store information related to 3D models. For more information on 3D model files, please refer to [link / reference]. Figure 1 This will not be elaborated upon here.

[0054] In some embodiments, the first 3D model file and the second 3D model file can be two different files derived from the same original 3D model file. For example, two different users may have made different edits to the original 3D model file, thereby generating the first 3D model file and the second 3D model file. Alternatively, the same user may have made two different edits to the original 3D model file, saving the edited file after each edit, thereby generating the first 3D model file and the second 3D model file. In some embodiments, the first 3D model file and the second 3D model file can be two different files derived from different original 3D model files. For example, the same user may have edited two different original 3D model files, thereby generating the first 3D model file and the second 3D model file. Alternatively, one user may have edited the original 3D model file, while another user created a new 3D model file, thereby generating the first 3D model file and the second 3D model file.

[0055] In some embodiments, the processing device 120 may obtain the first 3D model file and the second 3D model file from the same storage device or different storage devices. Alternatively, the processing device 120 may obtain the first 3D model file and the second 3D model file from the same user terminal or different user terminals.

[0056] Step 320: Render scene graphs based on the first 3D model file and the second 3D model file respectively to generate the first 3D model and the second 3D model. Step 320 can be executed by the generation module 220.

[0057] The first 3D model refers to the 3D model obtained by rendering a scene graph based on the first 3D model file. The second 3D model refers to the 3D model obtained by rendering a scene graph based on the second 3D model file. A scene graph, also known as a background graph, can be rendered to generate a 3D model. For example, a scene graph may include basic components such as nodes, edges, borders (or meshes). In some embodiments, the first 3D model file corresponds to a first scene graph, which can be determined based on information contained in the first 3D model file. The second 3D model file corresponds to a second scene graph, which can be determined based on information contained in the second 3D model file. The processing device 120 can render the corresponding scene graphs based on the first and second 3D model files respectively to generate the first and second 3D models. Rendering the scene graph may include coloring the scene graph, assigning brightness and darkness to the scene graph, and applying lighting effects to form a realistic 3D model.

[0058] In some embodiments, the 3D model can be divided into bounding boxes. Taking a triangular bounding box as an example, every three sides constitute a triangular bounding box, and every two nodes constitute the sides of a triangle. In some embodiments, the first 3D model may include at least two first nodes, at least two first sides, and at least two first bounding boxes. Each first bounding box consists of multiple first sides, and each first side connects to two first nodes. The first bounding box can have any shape, such as a triangle or quadrilateral. The second 3D model may include at least two second nodes, at least two second sides, and at least two second bounding boxes. Each second bounding box consists of multiple second sides, and each second side connects to two second nodes.

[0059] Traditional 3D model file version control methods may directly analyze multiple 3D model files. However, there are cases where the first and second 3D model files are different, but the rendered first and second 3D model files are the same, or the first and second 3D model files are the same, but the rendered first and second 3D model files are different. Therefore, directly performing version conflict analysis on the first and second 3D model files will result in low analysis accuracy. In some embodiments of this specification, scene graphs are rendered separately using the first and second 3D model files to generate the first and second 3D models, and then version conflict analysis is performed based on the first and second 3D model files, instead of directly analyzing the first and second 3D model files, which can make the version conflict analysis more accurate.

[0060] In some embodiments, the first 3D model and the second 3D model may share a common ancestor model. The ancestor model may be a model that has at least some of the same features as either the first or second 3D model. For example, if the first and second 3D models are derived from the same original model (i.e., the first 3D model file and the second 3D model file are derived from the same original 3D model file), then the original model can be considered the ancestor model. As another example, if the first and second 3D models correspond to the same type of item (e.g., dog, house, person), then the standard model and / or general model of that type of item can be considered the ancestor model. In some embodiments, the ancestor model of the first and second 3D models may be determined by the user or by analyzing the origin of the first and second 3D models and / or the type of item they correspond to. Further details regarding the ancestor model can be found in step 330 and its related description.

[0061] Step 330: Based on the first 3D model and the second 3D model, perform version conflict analysis on the first 3D model file and the second 3D model file. Step 330 can be executed by the analysis module 230.

[0062] Version conflicts refer to differences between the first 3D model file corresponding to the first 3D model and the second 3D model file corresponding to the second 3D model. For example, version conflicts can include direct conflicts and / or indirect conflicts. A direct conflict occurs when the first 3D model contains a first node that does not exist in the second 3D model, or vice versa. An indirect conflict occurs when the first and second 3D models contain corresponding first and second nodes, but the connection methods between these nodes and other nodes differ. More details on direct and indirect conflicts can be found in [link to relevant documentation]. Figure 4 And its related descriptions.

[0063] In some embodiments, version conflict analysis may include two-way difference analysis and three-way difference analysis. Two-way difference analysis refers to performing version conflict analysis on the first 3D model file and the second 3D model file based on the first 3D model and the second 3D model themselves. For example, two-way difference analysis may include, for each first node, searching for a corresponding node among at least two second nodes, and performing version conflict analysis based on the search results of at least one first node. More details about two-way difference analysis can be found in [link to documentation]. Figure 4 And its related descriptions.

[0064] Three-way difference analysis refers to version conflict analysis of the first 3D model file and the second 3D model file based on the first 3D model, the second 3D model, and the ancestor model. For example, three-way difference analysis may include, for each first node, searching for corresponding nodes in at least two second nodes and at least two third nodes, and performing version conflict analysis based on the search results of at least one first node. More details about three-way difference analysis can be found in [link to documentation]. Figure 5 And its related descriptions.

[0065] In some embodiments, when the first 3D model and the second 3D model do not share a common ancestor model, two-way difference analysis can be selected. In some embodiments, when the first 3D model and the second 3D model share a common ancestor model, two-way difference analysis or three-way difference analysis can be selected.

[0066] Step 340: Determine whether there is a conflict between the first 3D model file and the second 3D model file based on the version conflict analysis results. Step 340 can be executed by the merging module 240.

[0067] In some embodiments, the processing device 120 may determine whether there is a conflict between the first 3D model file and the second 3D model file based on the version conflict analysis results in step 330. Whether there is a conflict between the first 3D model file and the second 3D model file may include whether there is a direct conflict and / or whether there is an indirect conflict.

[0068] Step 350: In response to the determination that there is a conflict between the first 3D model file and the second 3D model file, the result of the version conflict analysis is sent to the user terminal for presentation to the user. Step 350 can be executed by the merging module 240.

[0069] User terminals may include virtual reality devices (e.g., virtual reality device 130), mobile devices, tablets, laptops, etc.

[0070] In some embodiments, when a conflict exists between the first 3D model file and the second 3D model file, the processing device 120 can send the type of version conflict, the nodes involved in the version conflict, and / or borders, etc., to the user terminal. For example, the processing device 120 can send the nodes involved in the conflict to the user through highlighting, listing, or other methods. As an example only, the processing device 120 can highlight the nodes involved in the conflict in the first 3D model and the second 3D model respectively, and send the highlighted first 3D model and the second 3D model to the virtual reality device. The user can compare and view the conflicting nodes in the first 3D model and the second 3D model through the virtual reality device.

[0071] Step 360: Based on the conflict resolution command input by the user via the user terminal, the first 3D model file and the second 3D model file are merged. This generates a merged 3D model file. Step 360 can be executed by the merging module 240.

[0072] In some embodiments, the conflict resolution instruction may instruct the processing device 120 to automatically merge the first 3D model file and the second 3D model file. When merging the conflicting first and second 3D model files, the processing device 120 may resolve the conflicts between the two files before merging the conflict-resolved first and second 3D model files. For example, suppose corresponding nodes refer to first and second nodes that are in the same position in the model. If a first node in the first 3D model does not have a corresponding node in the second 3D model, the processing device 120 may choose to retain the information related to that first node in the first 3D model file in the merged 3D model file. If a first node in the first 3D model has a corresponding node in the second 3D model, but the values ​​of the corresponding node and the first node are different, the processing device may choose one of the first node and the corresponding node as the retained node and retain the information related to the retained node in the 3D model file in the merged 3D model file.

[0073] In some embodiments, conflict resolution instructions may include user-specified conflict resolution strategies. For example, conflict resolution instructions may include user-defined instructions to select which parts of the 3D model to retain from the first and second 3D model files. As another example, conflict resolution instructions may include user instructions to modify the first 3D model file (or the first 3D model) and / or the second 3D model file (or the second 3D model). Based on this modification instruction, the first 3D model file (or the first 3D model) and / or the second 3D model file (or the second 3D model) may be modified, and then the modified first 3D model file (or the first 3D model) and / or the second 3D model file (or the second 3D model) may be directly merged.

[0074] In some embodiments, the processing device 120 may merge the first 3D model file (or the modified first 3D model file) and the second 3D model file (or the modified second 3D model file) based on a conflict resolution instruction input by the user via a user terminal. Alternatively, the processing device 120 may first merge the first 3D model (or the modified first 3D model) and the second 3D model (or the modified second 3D model) based on the conflict resolution instruction input by the user, and then generate a corresponding merged 3D model file based on the merged 3D model.

[0075] Some embodiments of this specification determine whether there is a conflict between the first 3D model file and the second 3D model file based on version conflict analysis results. If a conflict exists, the user inputs a conflict resolution command to merge the first and second 3D model files. This efficiently and accurately merges 3D model files, avoiding repeated modifications due to poor merging results. In some embodiments, the processing device 120 can automatically merge the first and second 3D model files based on the conflict analysis results, or merge them with limited user intervention. This reduces user workload and improves the efficiency of merging 3D model files.

[0076] It should be noted that the above description of process version control is for illustrative purposes only and does not limit the scope of this specification. Those skilled in the art can make various modifications and changes to process version control under the guidance of this specification. However, these modifications and changes are still within the scope of this specification. In some embodiments, steps 350 and 360 may be omitted. If there is no conflict between the first 3D model file and the second 3D model file, the processing device 120 can directly merge the first 3D model file and the second 3D model file. If there is a conflict between the first 3D model file and the second 3D model file, the processing device 120 can automatically resolve the conflict firstly, and then merge the conflict-resolved first 3D model file and the second 3D model file. Optionally, the 3D model corresponding to the merged 3D model file and / or the conflict resolution strategy can be sent to the user terminal (e.g., a virtual reality device) for user confirmation or viewing.

[0077] Figure 4 This is an exemplary flowchart of two-way differential analysis according to some embodiments of this specification. Figure 4 As shown, process 400 includes the following steps. In some embodiments, Figure 4 One or more operations of the process 400 shown can be performed in Figure 1 and / or Figure 2 Implemented in the version control system shown. For example, Figure 4 The process 400 shown can be stored in a storage device as instructions and invoked and / or executed by the processing device 120.

[0078] like Figure 3 The processing device 120 can perform version conflict analysis on the first 3D model file and the second 3D model file based on the first 3D model and the second 3D model. The first 3D model may include at least two first nodes, and the second 3D model may include at least two second nodes. In some embodiments, the processing device 120 can execute process 400 on each first node to perform version conflict analysis.

[0079] Step 410 involves searching for the corresponding node among at least two second nodes for the first node. Step 410 can be executed by the analysis module 230.

[0080] For example, if the position (e.g., coordinate value) of the second node in the second 3D model is the same as or substantially the same as the position (e.g., coordinate value) of the first node in the first 3D model, the second node can be considered as the corresponding node of the first node. As another example, if the position (e.g., coordinate value) of the second node in the second 3D model is the same as or substantially the same as the position (e.g., coordinate value) of the first node in the first 3D model, and the value of the second node is the same as or substantially the same as the value of the first node, the second node can be considered as the corresponding node of the first node. In this application, if the difference or ratio of two values ​​is within a certain threshold range, the two values ​​can be considered substantially the same. For illustrative purposes, in the embodiments described below, first and second nodes with the same (or substantially the same) position and the same (or substantially the same) value are considered as corresponding nodes. It should be understood that this is not intended to limit the scope of this specification.

[0081] Step 420 involves determining whether a corresponding node exists for each first node based on the search results. Step 420 can be executed by the analysis module 230. For example, the processing device 120 can search for a node with the same position as the first node among at least two second nodes, and determine whether a corresponding node exists for the first node based on the search results. As an example only, assume that a first node n exists at a specific location in the first 3D model. A The processing device 120 can locate the second node n at the corresponding position in the second 3D model. B The search results can include three cases as shown in the following formulas (1)-(3):

[0082]

[0083]

[0084]

[0085] in, is an empty set, and ∧ is the intersection of the sets.

[0086] If the search result satisfies formula (1), it means that the processing device 120 can find the second node n at the corresponding position in the second 3D model. B And the second node n B The value of the first node n A The values ​​of the second node n are equal, at which point the second node n B It can be regarded as the first node n A The corresponding node. If the search result satisfies formula (2), it means that the processing device 120 cannot find the node at the corresponding position in the second 3D model, that is, the second node n B If the set is empty, then the first node n A There is no corresponding node in the second 3D model. If the search result satisfies formula (3), it means that the processing device 120 can find the second node n at the corresponding position in the second 3D model. B But the second node n B The value of the first node n A The values ​​are not equal, at which point the first node n A The corresponding node does not exist in the second 3D model. If the search results show that the first node does not have a corresponding node, proceed to step 430.

[0087] Step 430 determines that there is a direct conflict between the first 3D model file and the second 3D model file, and that this direct conflict is related to the first node. Step 430 can be executed by the analysis module 230.

[0088] A direct conflict between the first and second 3D model files may result in significant differences in shape, color, texture, and shading at corresponding locations in the first and second 3D models. For example, the first 3D model may contain a first node, while the second 3D model may not have a corresponding node. This could be due to the user moving, deleting, or changing the value of the second node that originally corresponded to the first node. Alternatively, it could be due to the user changing the value or moving the position of the original first node. In such cases, there may be significant differences in shape and / or color between the first and second 3D models at the corresponding locations of the first node.

[0089] If the search results show that the first node has a corresponding node, you can proceed to step 440.

[0090] Step 440 determines the first bounding box of the first node in the first 3D model and the second bounding box of the corresponding node in the second 3D model. Step 440 can be performed by the analysis module 230.

[0091] The first bounding box refers to any bounding box in the first 3D model with the first node as its vertex. The second bounding box refers to any bounding box in the second 3D model with the corresponding node as its vertex. This is just an example, such as... Figure 6A and Figure 6B As shown, n A n is the first node in the first 3D model. B For the corresponding node in the second 3D model, then with n A bounding box k for vertices A For the first bounding box, with n B bounding box k for vertices B This is the second bounding box. If the search results show that the first node has a corresponding node, we can analyze whether there is an indirect conflict between the first 3D model file and the second 3D model file based on the first node and the corresponding node.

[0092] Step 450 can determine whether there is an indirect conflict between the first 3D model file and the second 3D model file based on the first and second bounding boxes. Step 450 can be performed by the analysis module 230.

[0093] Indirect conflicts between the first and second 3D model files may lead to inconsistencies in shape, color, texture, and shading after the first and second 3D models are merged.

[0094] The first bounding box reflects the relationship between the first node and other nodes in the first 3D model. The second bounding box reflects the relationship between the corresponding node and other nodes in the second 3D model. By analyzing the first and second bounding boxes, it can be determined whether there are differences in the connection methods between the first node, the corresponding node, and other nodes, thereby finding indirect conflicts between the first and second 3D model files.

[0095] In some embodiments, if the first node corresponds to multiple bounding boxes and the second node also corresponds to multiple bounding boxes, then for each bounding box of the first node, the bounding box whose position is closest to that of the first node can be found among the multiple bounding boxes corresponding to the second node as the corresponding bounding box.

[0096] In some embodiments, the processing device 120 can determine a first value of a feature parameter of a first bounding box and a second value of a feature parameter of a second bounding box. In response to the difference between the first and second values ​​being within a threshold range, the processing device 120 can determine that there is no indirect conflict between the first and second 3D model files. Feature parameters may include shape, size, position, etc. For example, the processing device 120 can determine whether there is an indirect conflict between the first and second 3D model files by analyzing the shape, size, and / or position of the first and second bounding boxes. As another example, if the difference in shape, size, and position in the 3D model between the first and second bounding boxes is within a certain threshold range, it is determined that there is no indirect conflict between the first and second 3D model files. As yet another example, if the difference in shape, size, and / or position in the 3D model between the first and second bounding boxes is not within a certain threshold range, it is determined that there is an indirect conflict between the first and second 3D model files.

[0097] In some embodiments, the processing device 120 may determine a first reference bounding box of a reference node in a first 3D model, and a second reference bounding box of a reference corresponding node of the reference node in a second 3D model.

[0098] A reference node can be any node in the first 3D model other than the first node, and it has a corresponding node in the second 3D model (i.e., a reference corresponding node). The first reference bounding box refers to any bounding box in the first 3D model with the reference node as its vertex. The second reference bounding box refers to any bounding box in the second 3D model with the reference corresponding node as its vertex. This is only for example; refer again... Figure 6A and Figure 6B n A ' is the reference node in the first 3D model, n B ' is the reference node in the second 3D model, with n A 'Bounding box h with vertices A As the first reference bounding box, with n B 'Bounding box h with vertices B This is the second reference bounding box.

[0099] The processing device 120 can further determine whether there is an indirect conflict between the first 3D model file and the second 3D model file based on the first bounding box, the second bounding box, the first reference bounding box, and the second reference bounding box.

[0100] In some embodiments, the processing device 120 can determine a first relative positional relationship between a first bounding box and a first reference bounding box, determine a second relative positional relationship between a second bounding box and a second reference bounding box, and determine whether there is an indirect conflict between a first 3D model file and a second 3D model file based on the first and second relative positional relationships. For example, the processing device 120 can determine whether there is an indirect conflict between the first and second 3D model files by analyzing whether the first and second relative positional relationships are the same. Here, the first relative positional relationship refers to the relative positional relationship between the first bounding box and the first reference bounding box (e.g., whether they intersect, the distance between the center points of the two bounding boxes, etc.), and the second relative positional relationship refers to the relative position between the second bounding box and the second reference bounding box (e.g., whether they intersect, the distance between the center points of the two bounding boxes, etc.). For another example, if the first and second relative positional relationships are different, then there is an indirect conflict between the first and second 3D model files. For example, if the first bounding box does not intersect with the first reference bounding box, but the second bounding box intersects with the second reference bounding box, it can be determined that the first relative position and the second relative position are different, thus determining that there is an indirect conflict between the first 3D model file and the second 3D model file.

[0101] In some embodiments, if the first and second reference bounding boxes are not considered, and only the first and second bounding boxes are considered, then if the shapes, sizes, and relative positions of the first and second bounding boxes are the same, it may be determined that there is no indirect conflict between the first and second 3D model files. However, by including the analysis of the first and second reference bounding boxes, it is possible to more accurately determine whether there is an indirect conflict between the first and second 3D model files.

[0102] In some embodiments, the processing device 120 can merge the first 3D model and the second 3D model to generate a merged model. This is merely an example. Figure 6C To be Figure 6A The first 3D model shown and Figure 6B The merged model is generated by merging the second 3D model shown.

[0103] Furthermore, the processing device 120 can determine whether there is an indirect conflict between the first 3D model file and the second 3D model file based on the merged model, the first bounding box, the second bounding box, the first reference bounding box, and the second reference bounding box.

[0104] In some embodiments, the processing device 120 can determine the merged bounding box of the merged model after merging the first bounding box and the first reference bounding box, and determine the merged reference bounding box of the merged model after merging the second bounding box and the second reference bounding box. The processing device 120 can determine whether the first bounding box intersects with the first reference bounding box to obtain a first determination result; determine whether the second bounding box intersects with the second reference bounding box to obtain a second determination result; determine whether the merged bounding box intersects with the merged reference bounding box to obtain a third determination result; and based on the first determination result, the second determination result, and the third determination result, determine that there is an indirect conflict between the first 3D model file and the second 3D model file. For example, if the first bounding box k in the first 3D model... A First reference bounding box h A And the second bounding box k in the second 3D model B Second reference bounding box h B If the formulas (4)-(6) below are satisfied, then the first node n in the first 3D model can be determined. A The corresponding second node n in the second 3D model B There is an indirect conflict.

[0105]

[0106]

[0107]

[0108] Where, k MergeAB h represents the merged bounding box resulting from merging the first bounding box and the first reference bounding box in the merged model. MergeAB This refers to the merged reference bounding box, which is the result of merging the second bounding box and the second reference bounding box in the merged model.

[0109] If formula (4) is satisfied, it means that the first bounding box k in the first 3D model is... A With the first reference bounding box h A They do not intersect. If formula (5) is satisfied, it means that the second bounding box k in the second 3D model is true. B With the second reference bounding box h B They do not intersect. If formula (6) is satisfied, it means that the bounding boxes k are merged. MergeAB With the merged reference bounding box h MergeAB Intersection. If all equations (4)-(6) are satisfied, it indicates that the relative positions between the bounding boxes will change after the first 3D model and the second 3D model are merged, which may be a conflict that needs to be handled by the device 120 and / or the user. Accordingly, if the first bounding box k in the first 3D model A With the first reference bounding box h AIntersecting. The second bounding box k in the second 3D model. B With the second reference bounding box h B Intersecting and merging bounding boxes k MergeAB With the merged reference bounding box h MergeAB Even if they do not intersect, the first node n in the first 3D model can still be determined. A The corresponding second node n in the second 3D model B There is an indirect conflict.

[0110] In some embodiments, if the relative positional relationship between the merge bounding box and the merge reference bounding box in the merge model is not considered, and only the first and second relative positional relationships are considered, some indirect conflicts may be missed. By incorporating the merge model into indirect conflict analysis, the impact and changes brought about by model merging can be discovered, thereby more accurately identifying indirect conflicts and improving the accuracy of version control.

[0111] Version conflict analysis can determine whether there are direct or indirect conflicts between the first and second 3D model files. This allows for accurate version conflict analysis results, which can then present the conflict types between the first and second 3D model files to the user, making it easier for the user to make a merging choice.

[0112] It should be noted that the above description of process version control is for illustrative purposes only and does not limit the scope of this specification. Those skilled in the art can make various modifications and changes to process version control under the guidance of this specification. However, these modifications and changes are still within the scope of this specification. In some embodiments, steps 440 and 450 may be omitted.

[0113] In some embodiments, for each second node in the second 3D model, the processing device 120 may perform operations similar to process 400 to perform version conflict analysis on the first 3D model file and the second 3D model. For example, for a second node, the processing device 120 may search for a corresponding node among at least two first nodes. The process of finding a corresponding node for a certain second node among at least two first nodes is similar to the process of finding a corresponding node for a certain first node among at least two second nodes. Each second node may generate a corresponding second search result. The processing device 120 may determine whether a corresponding node exists for the second node based on the second search result. If it does not exist, it may be determined that there is a direct conflict between the first 3D model file and the second 3D model file, and that the direct conflict is related to the second node. If it exists, the processing device 120 may determine the first bounding box of the first node in the first 3D model, and the second bounding box of the corresponding second node in the second 3D model. The processing device 120 may determine whether there is an indirect conflict between the first 3D model file and the second 3D model file by analyzing the first bounding box and the second bounding box. In some embodiments, if each first node has a corresponding second node and / or each second node has a corresponding first node, the processing device 120 can determine that there is no conflict between the first 3D model file and the second 3D model file.

[0114] Figure 5 This is a schematic diagram of a three-way differential analysis 500 according to some embodiments of this specification.

[0115] like Figure 5 As shown, the processing device 120 can acquire a first 3D model file 510-1 and a second 3D model file 510-2. The processing device 120 can render scene graphs based on the first and second 3D model files respectively to generate a first 3D model 520-1 and a second 3D model 520-2. The first 3D model 520-1 includes a first node. The second 3D model 520-2 includes a second node. The processing device 120 can also acquire an ancestor model 520-3. The ancestor model 520-3 is the common original model of the first 3D model 520-1 and the second 3D model 520-2. Alternatively, if the first 3D model 520-1 and the second 3D model 520-2 correspond to the same specific type of item, the ancestor model 520-3 is a general or standard model for that specific type of item. The ancestor model 520-3 includes a third node. Further description of the ancestor model can be found in [reference needed]. Figure 3 Step 320 in the process will not be repeated here.

[0116] Furthermore, the processing device 120 can perform version conflict analysis on the first 3D model file and the second 3D model file based on the first 3D model, the second 3D model, and the ancestor model. For example, the processing device 120 can search for corresponding nodes in at least two second nodes in the second 3D model 520-2 and at least two third nodes in the ancestor model 520-3 for each first node in the first 3D model 520-1, and perform version conflict analysis based on the search results of at least one first node. The process of searching for corresponding nodes in at least two third nodes of the ancestor model 520-3 is similar to the process of searching for corresponding nodes in at least two second nodes of the second 3D model described in step 410, and will not be repeated here.

[0117] As an example only, assume that a first node n exists at a specific location in the first 3D model. A The processing device 120 can locate the second node n at the corresponding position in the second 3D model. B Find the third node n at the corresponding position in the ancestor model. AncAB The search results can include the following six cases, as shown in formulas (7) to (12):

[0118]

[0119]

[0120]

[0121]

[0122]

[0123]

[0124] If the search result satisfies formula (7), it means that the processing device 120 can find the second node n at the corresponding position of the second 3D model and the ancestor model. B and the third node n AncAB And the second node n B and the third node n AncAB The value of the first node n A The values ​​are equal. At this time, the second node n... B and the third node n AncAB It can be regarded as the first node n A The corresponding node, the first node n A Second node n BThe first and second 3D model files were not modified during their generation. If the search result satisfies formula (8), it means that there are no nodes at the corresponding positions of the second 3D model and the ancestor model, from which it can be inferred that the first node n... A This is a node added during the generation of the first 3D model file. If the search result satisfies formula (9), it means that the second 3D model does not have a node at the corresponding position, the ancestor model has a node at the corresponding position and the value of the node is the same as the value of the first node. Therefore, it can be inferred that the user deleted or moved the second node corresponding to the first node during the generation of the second 3D model file, and the user did not modify the first node during the generation of the first 3D model file. If the search result satisfies formula (10), it means that the second 3D model does not have a node at the corresponding position, the ancestor model has a node at the corresponding position but the value of the node is different from the value of the first node. Therefore, it can be inferred that the user deleted or moved the second node corresponding to the first node during the generation of the second 3D model file, and the user changed the value of the first node during the generation of the first 3D model file. If the search result satisfies formula (11), it means that the second 3D model has a node at the corresponding position but the value of the node is different from the value of the first node, the ancestor model has a node at the corresponding position and the value of the node is the same as the value of the first node. Therefore, it can be inferred that the user changed the value of the node at the corresponding position during the generation of the second 3D model file, and the user did not modify the first node during the generation of the first 3D model file. If the search result satisfies formula (12), it means that the second 3D model has a node at the corresponding position, but the value of the node is different from the value of the first node. The ancestor model has a node at the corresponding position, but the value of the node is different from the value of the first node. Therefore, it can be inferred that the user changed the value of the node at the corresponding position during the generation of the second 3D model file, and the user modified the value of the first node during the generation of the first 3D model file.

[0125] By using three-way differential analysis for version control, the source of conflicts can be determined more accurately. That is, it can be accurately confirmed that the conflict is caused by the addition, deletion, or change of the first node and / or the second node, so as to present the conflict between the first 3D model file and the second 3D model file to the user more accurately, and make the user more efficient in making a judgment.

[0126] In some embodiments, the version control apparatus includes a processing device and a storage device; the storage device is used to store instructions that, when executed by the processing device, cause the apparatus to implement the version control method.

[0127] In some embodiments, a computer-readable storage medium stores computer instructions, and when a computer reads the computer instructions from the storage medium, the computer runs the version control method.

[0128] The beneficial effects that the embodiments of this specification may bring include, but are not limited to: (1) determining whether there is a conflict between the first 3D model file and the second 3D model file through version conflict analysis results, and when there is a conflict, the user inputs a conflict resolution command to complete the merging of the first 3D model file and the second 3D model file. This can efficiently and accurately realize the merging of 3D model files, avoid the situation where the user repeatedly modifies due to poor merging results, and can reduce the user's workload and improve the merging efficiency of 3D model files. (2) determining whether there is a direct conflict or indirect conflict between the first 3D model file and the second 3D model file through version conflict analysis, and accurately obtaining the version conflict analysis results, so as to present the conflict type of the first 3D model file and the second 3D model file to the user, making it convenient for the user to make a merging choice. (3) using the three-way differential analysis method for version control, the source of the conflict can be determined more accurately, that is, the conflict can be accurately confirmed to be caused by the addition, deletion, or change of the first node and / or the second node, so as to present the conflict situation of the first 3D model file and the second 3D model file to the user more accurately, making it convenient for the user to make a more efficient judgment. (4) Render scene diagrams using the first and second 3D model files respectively to generate the first and second 3D models. Then perform version conflict analysis based on the first and second 3D models, instead of directly analyzing the first and second 3D model files. This makes the version conflict analysis more accurate. (5) By adding the analysis of the first and second reference bounding boxes, it is possible to more accurately determine whether there are indirect conflicts between the first and second 3D model files. (6) By adding the analysis of merged models, the impact and changes brought about by model merging can be discovered, thereby more accurately identifying indirect conflicts and improving the accuracy of version control.

[0129] The basic concepts have been described above. Obviously, for those skilled in the art, the detailed disclosure above is merely illustrative and does not constitute a limitation of this specification. Although not explicitly stated herein, those skilled in the art may make various modifications, improvements, and corrections to this specification. Such modifications, improvements, and corrections are suggested in this specification and therefore remain within the spirit and scope of the exemplary embodiments described herein.

[0130] Furthermore, this specification uses specific terms to describe embodiments thereof. For example, "an embodiment," "one embodiment," and / or "some embodiments" refer to a particular feature, structure, or characteristic associated with at least one embodiment of this specification. Therefore, it should be emphasized and noted that references to "an embodiment," "one embodiment," or "an alternative embodiment" in different locations throughout this specification do not necessarily refer to the same embodiment. Moreover, certain features, structures, or characteristics in one or more embodiments of this specification can be appropriately combined.

[0131] Furthermore, unless expressly stated in the claims, the order of processing elements and sequences, the use of numbers and letters, or other names described in this specification are not intended to limit the order of the processes and methods described herein. Although various examples have been discussed in the foregoing disclosure of some embodiments of the invention that are currently considered useful, it should be understood that such details are for illustrative purposes only, and the appended claims are not limited to the disclosed embodiments; rather, the claims are intended to cover all modifications and equivalent combinations that conform to the spirit and scope of the embodiments described herein. For example, while the system components described above can be implemented using hardware devices, they can also be implemented solely using software solutions, such as installing the described system on existing servers or mobile devices.

[0132] Similarly, it should be noted that, in order to simplify the description disclosed herein and thus aid in the understanding of one or more embodiments of the invention, the foregoing description of embodiments in this specification may sometimes combine multiple features into a single embodiment, drawing, or description thereof. However, this method of disclosure does not imply that the subject matter of this specification requires more features than those mentioned in the claims. In fact, the embodiments contain fewer features than all the features of a single embodiment disclosed above.

[0133] In some embodiments, numbers describing the quantity of components and attributes are used. It should be understood that such numbers used in the description of embodiments are modified in some examples with the terms "approximately," "approximately," or "generally." Unless otherwise stated, "approximately," "approximately," or "generally" indicates that the numbers are allowed to vary by ±20%. Accordingly, in some embodiments, the numerical parameters used in the specification and claims are approximate values, which may be changed depending on the characteristics required by individual embodiments. In some embodiments, numerical parameters should take into account specified significant digits and employ a general method of digit reservation. Although the numerical ranges and parameters used to confirm their breadth of range in some embodiments of this specification are approximate values, in specific embodiments, such values ​​are set as precisely as feasible.

[0134] For each patent, patent application, patent application publication, and other material, such as articles, books, specifications, publications, and documents, referenced in this specification, the entire contents of which are incorporated herein by reference. This excludes historical application documents that are inconsistent with or conflict with the content of this specification, as well as documents that limit the broadest scope of the claims in this specification (currently or subsequently appended to this specification). It should be noted that in the event of any inconsistency or conflict between the descriptions, definitions, and / or terminology used in the supplementary materials to this specification and the content of this specification, the descriptions, definitions, and / or terminology used in this specification shall prevail.

[0135] Finally, it should be understood that the embodiments described in this specification are merely illustrative of the principles of the embodiments described herein. Other variations may also fall within the scope of this specification. Therefore, alternative configurations of the embodiments described herein are intended to be illustrative rather than limiting, and should be considered consistent with the teachings of this specification. Accordingly, the embodiments described herein are not limited to those explicitly introduced and described herein.

Claims

1. A version control method, executed by at least one processing device, characterized in that, The method includes: Obtain the first 3D model file and the second 3D model file; Render scene graphs based on the first 3D model file and the second 3D model file respectively to generate a first 3D model and a second 3D model. The first 3D model includes at least two first nodes, and the second 3D model includes at least two second nodes; and Based on the first 3D model and the second 3D model, a version conflict analysis is performed on the first 3D model file and the second 3D model file, including: For each first node, Find the corresponding node among the at least two second nodes. The corresponding node refers to the first node and the second node that are in the same or substantially the same position in the first 3D model and the second 3D model. The substantially the same means that the difference or ratio of the coordinate value of the first node in the first 3D model and the coordinate value of the second node in the second 3D model is within a threshold range. Based on the search results, determine whether the first node has a corresponding node; In response to the determination result that the first node has a corresponding node, the first bounding box of the first node in the first 3D model and the second bounding box of the corresponding node in the second 3D model are determined. Determine the first reference bounding box of the reference node in the first 3D model, and the second reference bounding box of the reference corresponding node of the reference node in the second 3D model; and Based on the first bounding box, the second bounding box, the first reference bounding box, and the second reference bounding box, it is determined whether there is an indirect conflict between the first 3D model file and the second 3D model file. The indirect conflict refers to the fact that the connection method of the first node with other nodes in the first 3D model is different from the connection method of the second node with other nodes in the second 3D model.

2. The method as described in claim 1, characterized in that, The version conflict analysis includes: For each first node, In response to the determination that the first node does not have a corresponding node, it is determined that there is a direct conflict between the first 3D model file and the second 3D model file.

3. The method as described in claim 1, characterized in that, The step of determining whether there is an indirect conflict between the first 3D model file and the second 3D model file based on the first bounding box, the second bounding box, the first reference bounding box, and the second reference bounding box includes: The first 3D model and the second 3D model are merged to generate a merged model; and Based on the merged model, the first bounding box, the second bounding box, the first reference bounding box, and the second reference bounding box, it is determined whether there is an indirect conflict between the first 3D model file and the second 3D model file.

4. The method as described in claim 3, characterized in that, Determining whether there is an indirect conflict between the first 3D model file and the second 3D model file includes: Determine the merged bounding box of the merged model after merging the first bounding box and the first reference bounding box, and the merged reference bounding box of the merged model after merging the second bounding box and the second reference bounding box; Determine whether the first bounding box intersects with the first reference bounding box to obtain a first determination result; Determine whether the second bounding box intersects with the second reference bounding box to obtain a second determination result; Determine whether the merged bounding box intersects with the merged reference bounding box to obtain a third determination result; and Based on the first judgment result, the second judgment result, and the third judgment result, it is determined that there is an indirect conflict between the first 3D model file and the second 3D model file.

5. The method as described in claim 1, characterized in that, The reference node refers to any node in the first 3D model other than the first node. Determining whether there is an indirect conflict between the first 3D model file and the second 3D model file based on the first bounding box, the second bounding box, the first reference bounding box, and the second reference bounding box includes: Determine the first relative positional relationship between the first bounding box and the first reference bounding box; Determine the second relative positional relationship between the second bounding box and the second reference bounding box; and Based on the first relative positional relationship and the second relative positional relationship, determine whether there is an indirect conflict between the first 3D model file and the second 3D model file.

6. The method as described in claim 1, characterized in that, The version conflict analysis of the first 3D model file and the second 3D model file based on the first 3D model and the second 3D model further includes: Obtain the ancestor models of the first 3D model and the second 3D model; and Based on the first 3D model, the second 3D model, and the ancestor model, a version conflict analysis is performed on the first 3D model file and the second 3D model file.

7. The method as described in claim 6, characterized in that, The first 3D model includes at least two first nodes, the second 3D model includes at least two second nodes, and the ancestor model includes at least two third nodes. The version conflict analysis of the first 3D model file and the second 3D model file based on the first 3D model, the second 3D model, and the ancestor model includes: For each first node, find the corresponding node in each of the at least two second nodes and the at least two third nodes; and The version conflict analysis is performed based on the search results of at least one first node.

8. The method as described in claim 1, characterized in that, The method further includes: Based on the version conflict analysis results, determine whether there is a conflict between the first 3D model file and the second 3D model file; In response to the determination that there is a conflict between the first 3D model file and the second 3D model file, the result of the version conflict analysis is sent to the user terminal for presentation to the user; and Based on the conflict resolution command input by the user via the user terminal, the first 3D model file and the second 3D model file are merged.

9. A version control system, characterized in that, It includes an acquisition module, a generation module, and an analysis module; The acquisition module is used to acquire a first 3D model file and a second 3D model file; The generation module is used to render scene graphs based on the first 3D model file and the second 3D model file respectively, to generate a first 3D model and a second 3D model. The first 3D model includes at least two first nodes, and the second 3D model includes at least two second nodes; and The analysis module is used to perform version conflict analysis on the first 3D model file and the second 3D model file based on the first 3D model and the second 3D model, including: For each first node, Find the corresponding node among the at least two second nodes. The corresponding node refers to the first node and the second node that are in the same or substantially the same position in the first 3D model and the second 3D model. The substantially the same means that the difference or ratio of the coordinate value of the first node in the first 3D model and the coordinate value of the second node in the second 3D model is within a threshold range. Based on the search results, determine whether the first node has a corresponding node; In response to the determination result that the first node has a corresponding node, the first bounding box of the first node in the first 3D model and the second bounding box of the corresponding node in the second 3D model are determined. Determine the first reference bounding box of the reference node in the first 3D model, and the second reference bounding box of the reference corresponding node of the reference node in the second 3D model; and Based on the first bounding box, the second bounding box, the first reference bounding box, and the second reference bounding box, it is determined whether there is an indirect conflict between the first 3D model file and the second 3D model file. The indirect conflict refers to the fact that the connection method of the first node with other nodes in the first 3D model is different from the connection method of the second node with other nodes in the second 3D model.

10. A version control device, comprising a processing unit, characterized in that, The processing device is used to execute the version control method as described in any one of claims 1 to 8.