3D model distributed splitting method, device, terminal device and system
By splitting large 3D models into sub-models in parallel processing and rendering, the problems of slow loading speed of 3D models and high requirements for host performance are solved, and efficient 3D model preview and processing are achieved.
Patent Information
- Application Number
- CN202411697867.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-11-26
- Publication Date
- 2025-04-04
AI Technical Summary
Existing large-scale 3D model files are loading slowly, consume a lot of computing resources, affecting design work efficiency and user experience, and have high requirements for host performance.
The 3D model distributed splitting method is used to split the source files uploaded by the user into several sub-models, and convert them into model data in a specified format in parallel, perform rendering operations and display output, and use distributed processing and video stream push technology.
It significantly improves the processing efficiency and speed of 3D models, reduces the requirements for host performance, supports real-time interaction and feedback, and is suitable for large-scale 3D model processing scenarios.
Smart Images

Figure CN119762665A_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the field of 3D modeling and processing technology, and in particular to a 3D model distributed splitting method, device, terminal equipment and system. Background Art
[0002] The loading speed of existing large 3D model files is very slow. This is because these files usually contain a large amount of geometric data, texture maps and complex material information. Reading and parsing this data consumes a lot of time and computing resources. As a result, during the preview process, users often have to wait for a long time to see the complete 3D model effect, which seriously affects the efficiency of design work and user experience.
[0003] Secondly, the high requirements for host performance are another major drawback. In order to smoothly load and render large 3D models, a high-performance graphics processing unit (GPU) and a large amount of memory resources are usually required. For ordinary users and small teams, this not only means high hardware costs, but may also result in the inability to use these software smoothly on low-performance hosts, making it impossible to preview 3D models. Even on high-performance computers, loading and rendering large 3D models still takes a long time, and real-time interaction and feedback cannot be achieved.
[0004] Therefore, a new technical solution is urgently needed to solve these problems, improve the preview efficiency of 3D models, and reduce the requirements on host performance. Summary of the invention
[0005] In view of this, the embodiments of the present application provide a 3D model distributed splitting method, apparatus, terminal device and system, which have low requirements on host performance and can realize conversion and preview at the same time, greatly improving the preview efficiency of 3D models.
[0006] A first aspect of an embodiment of the present application provides a 3D model distributed splitting method, the method comprising:
[0007] Get the source file uploaded by the user;
[0008] Splitting the source file into a plurality of sub-models;
[0009] Converting a plurality of said sub-models into model data in a specified format in parallel;
[0010] Performing rendering operations on the model data corresponding to the sub-models that have completed the conversion, respectively, to obtain rendering fragments corresponding to the sub-models;
[0011] The rendering fragment corresponding to the sub-model is displayed and output.
[0012] The embodiment of the present application significantly improves the efficiency and speed of 3D model processing by splitting the source file uploaded by the user into several sub-models, converting these sub-models in parallel into model data of a specified format, and finally rendering the converted sub-models and displaying the output. The fragmented file loading technology is adopted. When the entire conversion is not fully completed, the rendering can be performed while converting, and some 3D effects can be presented faster. Through distributed processing, the computing tasks can be decomposed into multiple computing nodes, making full use of the computing resources of the cluster, and significantly shortening the processing time. In addition, this method can also effectively respond to high concurrent requests, improve the scalability and stability of the system, and is suitable for large-scale 3D model processing scenarios, such as online design platforms, virtual reality applications, etc. In this way, users can preview and share 3D models faster, improving user experience and work efficiency.
[0013] In one embodiment, before obtaining the source file uploaded by the user, the process includes:
[0014] Receive source files uploaded by users on the client;
[0015] The source file is stored, and a storage identifier of the source file is sent to the client; the client is used to receive the storage identifier of the source file and submit a preview task to the server;
[0016] Receiving the preview task sent by the client triggers the step of obtaining the source file uploaded by the user.
[0017] The embodiment of the present application ensures the secure storage and efficient retrieval of source files by introducing a storage identifier mechanism. When a user uploads a file on the client, the system stores the file in an online storage unit and generates a unique storage identifier. After the client receives this identifier, it can use it to submit a preview task. This design not only enhances the security of the system and prevents the risk of file loss or tampering, but also simplifies the communication process between the client and the server. In high concurrency situations, through the storage identifier mechanism, the system can quickly locate and retrieve files, avoid problems caused by file name conflicts or path errors, and improve the stability and reliability of the system. In addition, this mechanism also facilitates subsequent file management and version control, enabling the system to better support multi-user, multi-project collaborative work.
[0018] In one embodiment, the converting of the plurality of sub-models into model data in a specified format in parallel includes:
[0019] The plurality of sub-models are converted in parallel into model data in an online browsing data format and / or a 3D modeling application format.
[0020] The embodiment of the present application supports the parallel conversion of sub-models into model data in online browsing data format and 3D modeling application format. This feature greatly broadens the application scope of 3D models and meets the needs of different user groups. For online platforms that require lightweight display, such as e-commerce websites, online design tools, etc., models can be converted to lightweight formats such as gltf for fast loading and display in browsers. For professional-level 3D modeling software, such as Autodesk Maya, Blender, etc., models can be converted to formats such as obj, fbx, etc. to ensure the compatibility and quality of models in these software. This multi-format support capability not only provides developers with more choices, but also promotes the development of 3D content ecology. By supporting multiple formats, the system can better serve application scenarios in different industries, improve user satisfaction and the market competitiveness of the system.
[0021] In one embodiment, the converting of the plurality of sub-models into model data in a 3D modeling application format in parallel comprises:
[0022] Constructing a spatial octree structure to divide the sub-model into multiple leaf nodes;
[0023] Convert the objects in each leaf node to gltf file in parallel;
[0024] The process where the root node of the spatial octree is located collects all converted gltf files and loads them;
[0025] Convert the loaded gltf file into model data in the format of the 3D modeling application.
[0026] The embodiment of the present application realizes efficient segmentation and parallel conversion of sub-models by constructing a spatial octree structure. This method can not only ensure the quality of model conversion, but also make full use of computing resources and accelerate the conversion process. Especially for 3D models with high complexity, the use of a spatial octree structure can effectively reduce the amount of calculation and improve conversion efficiency. In addition, all converted gltf files are collected and loaded through the root node process to ensure the consistency and integrity of the final model data, providing a solid foundation for subsequent 3D modeling operations. This efficient and reliable conversion mechanism enables the system to handle larger and more complex 3D models, meet the needs of professional users, and improve the overall performance and user experience of the system.
[0027] In one embodiment, the displaying and outputting the rendering fragment corresponding to the sub-model includes:
[0028] The rendering fragment corresponding to the sub-model is pushed to the client for display output via the video stream.
[0029] The embodiment of the present application overcomes the delay and jamming problems existing in the traditional 3D model rendering process by pushing the rendering fragments corresponding to the sub-model to the client display output through the video stream. Through the video stream, even in the case of poor network conditions, it can provide users with a smooth visual experience. This method not only reduces the computing burden of the client, but also improves the efficiency and quality of rendering. For application scenarios that require real-time interaction, such as online 3D model displays, virtual fitting rooms, etc., users can instantly see the rendering effect of the model, adjust the viewing angle, zoom, and other operations, greatly improving the user experience and interactivity. In addition, video stream push also provides convenience for cross-platform applications. Users can access and view 3D models through various terminal devices (such as PCs, mobile phones, and tablets), enhancing the universality and ease of use of the system.
[0030] A second aspect of an embodiment of the present application provides a 3D model distributed splitting device, the device comprising:
[0031] Convert cluster units for:
[0032] Get the source file uploaded by the user;
[0033] Splitting the source file into a plurality of sub-models;
[0034] Converting a plurality of said sub-models into model data in a specified format in parallel;
[0035] The rendering unit is used to perform rendering operations on the model data corresponding to the sub-models that have completed the conversion, respectively, to obtain rendering fragments corresponding to the sub-models; and to display and output the rendering fragments corresponding to the sub-models.
[0036] In one embodiment, it further includes an online storage unit;
[0037] The online storage unit is used for:
[0038] Receive source files uploaded by users on the client;
[0039] The source file is stored, and a storage identifier of the source file is sent to the client; the client is used to receive the storage identifier of the source file and submit a preview task to the server;
[0040] The rendering unit is further configured to receive a preview task sent by the client, triggering the step of obtaining the source file uploaded by the user.
[0041] In one embodiment, the conversion cluster unit is further used to upload the model data corresponding to the sub-model that has completed the conversion to the online storage unit;
[0042] The online storage unit is also used to store the model data corresponding to the sub-model and send the storage identifier of the model data to the conversion cluster unit;
[0043] The conversion cluster unit is further used to send the storage identifier to the rendering unit;
[0044] The rendering unit is further configured to obtain the model data from the online storage unit based on the storage identifier.
[0045] A third aspect of an embodiment of the present application provides a terminal device, including a processor, a memory, and a computer program stored in the memory and executable on the processor, wherein when the processor executes the computer program, the terminal device implements the method described in the first aspect of the embodiment of the present application.
[0046] A fourth aspect of the embodiments of the present application provides a system, including a client and a server;
[0047] The server is used to execute the method described in the first aspect of the application embodiment;
[0048] The client is used to receive the source file uploaded by the user and send it to the server, and receive the rendering fragment corresponding to the sub-model sent by the server, and display the output.
[0049] The embodiments of the present application make full use of computing resources and significantly improve processing efficiency by centralizing the splitting, conversion and rendering tasks of 3D models on the server side, which is particularly suitable for large 3D models. The client only needs to have basic file upload and video stream receiving capabilities, which lowers the hardware threshold and supports a variety of devices. The distributed architecture of the server can easily expand computing resources and ensure system stability and performance under high concurrent requests. The client receives and displays rendered fragments in real time, providing a smooth visual experience, supporting real-time interactive operations, and ensuring good preview effects even in poor network conditions.
[0050] The first aspect of the embodiment of the present application provides a distributed splitting method for 3D models, which obtains the source file uploaded by the user; splits the source file into several sub-models; converts several of the sub-models into model data in a specified format in parallel; performs rendering operations on the model data corresponding to the sub-models that have completed the conversion, and obtains the rendering fragments corresponding to the sub-models; and displays and outputs the rendering fragments corresponding to the sub-models. A fragmented file loading technology is adopted. When the entire conversion is not completely completed, the conversion and rendering can be performed simultaneously, and some 3D effects can be presented faster. Through distributed processing, the computing tasks can be decomposed into multiple computing nodes, making full use of the computing resources of the cluster and significantly shortening the processing time. In addition, this method can also effectively respond to high-concurrency requests, improve the scalability and stability of the system, and is suitable for large-scale 3D model processing scenarios, such as online design platforms, virtual reality applications, etc. In this way, users can preview and share 3D models faster, improving user experience and work efficiency.
[0051] It can be understood that the beneficial effects of the second to fourth aspects mentioned above can be found in the relevant description of the first aspect mentioned above, and will not be repeated here. BRIEF DESCRIPTION OF THE DRAWINGS
[0052] In order to more clearly illustrate the technical solutions in the embodiments of the present application, the drawings required for use in the embodiments or the description of the prior art will be briefly introduced below. Obviously, the drawings described below are only some embodiments of the present application. For ordinary technicians in this field, other drawings can be obtained based on these drawings without paying any creative work.
[0053] Figure 1 This is a flow chart of a 3D model distributed splitting method provided by an embodiment of the present application;
[0054] Figure 2 This is a flow chart of a 3D model distributed splitting method provided by another embodiment of the present application;
[0055] Figure 3 This is a flow chart of a 3D model distributed splitting method provided by another embodiment of the present application;
[0056] Figure 4 It is a structural schematic diagram of a 3D model distributed splitting device provided in an embodiment of the present application;
[0057] Figure 5 It is a flow chart of a 3D model distributed splitting method provided in another embodiment of the present application. DETAILED DESCRIPTION
[0058] In the following description, specific details such as specific system structures, technologies, etc. are provided for the purpose of illustration rather than limitation, so as to provide a thorough understanding of the embodiments of the present application. However, it should be clear to those skilled in the art that the present application may also be implemented in other embodiments without these specific details. In other cases, detailed descriptions of well-known systems, devices, circuits, and methods are omitted to prevent unnecessary details from obstructing the description of the present application.
[0059] It should be understood that when used in the present specification and the appended claims, the term "comprising" indicates the presence of described features, wholes, steps, operations, elements and / or components, but does not exclude the presence or addition of one or more other features, wholes, steps, operations, elements, components and / or combinations thereof.
[0060] It should also be understood that the term “and / or” used in the specification and appended claims refers to any and all possible combinations of one or more of the associated listed items, and includes these combinations.
[0061] References to "one embodiment" or "some embodiments" etc. described in the specification of this application mean that one or more embodiments of the present application include specific features, structures or characteristics described in conjunction with the embodiment. Therefore, the statements "in one embodiment", "in some embodiments", "in some other embodiments", "in some other embodiments", etc. that appear in different places in this specification do not necessarily refer to the same embodiment, but mean "one or more but not all embodiments", unless otherwise specifically emphasized in other ways. The terms "including", "comprising", "having" and their variations all mean "including but not limited to", unless otherwise specifically emphasized in other ways.
[0062] like Figure 1 As shown, the 3D model distributed splitting method provided in the embodiment of the present application is applied to the server, and includes the following steps S101 to S106 executed by the server:
[0063] Step S101: Obtain the source file uploaded by the user.
[0064] In the application, users can upload model files (i.e. source files) and preview model effects through the client. The client is opened through a web browser or an embedded browser kernel and embedded in other applications.
[0065] Step S102: split the source file into several sub-models.
[0066] In the application, during the splitting and parsing process, the source file of the model data is parsed first. Because in 3D models, the same object often appears multiple times in 3D space at different positions, angles, and sizes. At this time, it is only necessary to record the 3D model data of the object once as a template, and record the position, angle, and scale of each appearance of the object as an instance. At the same time, the space occupied by all instances in the 3D model space is divided using a loose spatial octree algorithm. With the origin of the 3D model space as the root node of the octree, each object instance will belong to a leaf node. After the splitting and parsing process is completed, the source 3D model file will generate a structured data file of space node->object instance->object template in the conversion system.
[0067] Step S103: converting several sub-models into model data in a specified format in parallel.
[0068] In the application, several sub-models are converted in parallel into model data in an online browsing data format and / or a 3D modeling application format.
[0069] In the application, the online browsing data format can be in gltf format. The object template is converted into a gltf format file and then loaded into the rendering engine. The rendering engine does not directly display the gltf file corresponding to the template, but matches the data file generated in the split parsing process. The instance corresponding to the template is displayed in a breadth-first traversal of the spatial octree. In this way, the object can be displayed gradually from the center to the distance.
[0070] In the application, the 3D modeling application format can be the required application data format (such as obj, fbx, etc.). You can directly use the loose spatial octree structure generated during the split parsing process to convert the objects in each leaf node into a gltf file in parallel, and then hand over the converted gltf file to the process where the spatial octree root node is located to load it uniformly, and then save it as the required application data format (such as obj, fbx, etc.).
[0071] Step S104: Rendering operations are performed on the model data corresponding to the converted sub-models to obtain rendering fragments corresponding to the sub-models.
[0072] In the application, the rendering engine provides online 3D model rendering and viewing capabilities. When the 3D model file is not fully converted, it can display data in different regions according to the logic described above, so that users can enjoy online viewing effects with WYSIWYG while reducing waiting time.
[0073] Step S105: Display and output the rendering fragment corresponding to the sub-model.
[0074] In the application, the preview effect is pushed to the browser client in the form of a video stream, ensuring that users can preview large and complex 3D model effects using the browser. At the same time, a websocket-based command channel is provided, and users can send commands to perform interactive operations such as moving, rotating, and zooming the model viewing angle.
[0075] In applications, 3D refers to three dimensions, specifically a space system formed by adding a direction vector to a two-dimensional plane. The three dimensions are the three axes of the coordinate system, namely the x-axis, y-axis, and z-axis, where x represents the left and right space, y represents the front and back space, and z represents the top and bottom space.
[0076] In the application, a distributed conversion system is used to convert a single-format 3D model file into multiple file formats that meet the needs of mainstream 3D design software. The distributed conversion system consists of a model data parsing and splitting program and a model data format conversion program. Each component module is a cluster composed of multiple program instances, which uniformly performs task distribution, failure retry and other scheduling functions. During the conversion process, in order to speed up the subsequent rendering speed, the 3D model file will be split as much as possible, and a large 3D model file will be split into several small 3D model files for subsequent conversion and preview processes. At the same time, an online preview function of the model is provided, and users can view the actual effect of the model in a WYSIWYG way.
[0077] The embodiment of the present application significantly improves the efficiency and speed of 3D model processing by splitting the source file uploaded by the user into several sub-models, converting these sub-models in parallel into model data of a specified format, and finally rendering the converted sub-models and displaying the output. The fragmented file loading technology is adopted. When the entire conversion is not fully completed, the rendering can be performed while converting, and some 3D effects can be presented faster. Through distributed processing, the computing tasks can be decomposed into multiple computing nodes, making full use of the computing resources of the cluster, and significantly shortening the processing time. In addition, this method can also effectively respond to high concurrent requests, improve the scalability and stability of the system, and is suitable for large-scale 3D model processing scenarios, such as online design platforms, virtual reality applications, etc. In this way, users can preview and share 3D models faster, improving user experience and work efficiency.
[0078] In one embodiment, Figure 2 As shown, before obtaining the source file uploaded by the user, the following steps S201 to S203 are included:
[0079] Step S201, receiving a source file uploaded by a user on a client;
[0080] Step S202: store the source file and send a storage identifier of the source file to the client; the client is used to receive the storage identifier of the source file and submit a preview task to the server;
[0081] Step S203: receiving the preview task sent by the client, triggering the step of obtaining the source file uploaded by the user.
[0082] The embodiment of the present application ensures the secure storage and efficient retrieval of source files by introducing a storage identifier mechanism. When a user uploads a file on the client, the system stores the file in an online storage unit and generates a unique storage identifier. After the client receives this identifier, it can use it to submit a preview task. This design not only enhances the security of the system and prevents the risk of file loss or tampering, but also simplifies the communication process between the client and the server. In high concurrency situations, through the storage identifier mechanism, the system can quickly locate and retrieve files, avoid problems caused by file name conflicts or path errors, and improve the stability and reliability of the system. In addition, this mechanism also facilitates subsequent file management and version control, enabling the system to better support multi-user, multi-project collaborative work.
[0083] In one embodiment, converting several sub-models into model data in a specified format in parallel includes:
[0084] Convert several sub-models in parallel into model data in an online browsing data format and / or a 3D modeling application format.
[0085] The embodiment of the present application supports the parallel conversion of sub-models into model data in online browsing data format and 3D modeling application format. This feature greatly broadens the application scope of 3D models and meets the needs of different user groups. For online platforms that require lightweight display, such as e-commerce websites, online design tools, etc., models can be converted to lightweight formats such as gltf for fast loading and display in browsers. For professional-level 3D modeling software, such as Autodesk Maya, Blender, etc., models can be converted to formats such as obj, fbx, etc. to ensure the compatibility and quality of models in these software. This multi-format support capability not only provides developers with more choices, but also promotes the development of 3D content ecology. By supporting multiple formats, the system can better serve application scenarios in different industries, improve user satisfaction and the market competitiveness of the system.
[0086] In one embodiment, Figure 3 As shown, converting several sub-models in parallel into model data in the format of a 3D modeling application includes the following steps S301 to S304:
[0087] Step S301, constructing a spatial octree structure, dividing the sub-model into multiple leaf nodes;
[0088] Step S302, converting the objects in each leaf node into a gltf file in parallel;
[0089] Step S303: The process where the root node of the spatial octree is located collects all converted gltf files and loads them;
[0090] Step S304: convert the loaded gltf file into model data in the format of a 3D modeling application.
[0091] The embodiment of the present application realizes efficient segmentation and parallel conversion of sub-models by constructing a spatial octree structure. This method can not only ensure the quality of model conversion, but also make full use of computing resources and accelerate the conversion process. Especially for 3D models with high complexity, the use of a spatial octree structure can effectively reduce the amount of calculation and improve conversion efficiency. In addition, all converted gltf files are collected and loaded through the root node process to ensure the consistency and integrity of the final model data, providing a solid foundation for subsequent 3D modeling operations. This efficient and reliable conversion mechanism enables the system to handle larger and more complex 3D models, meet the needs of professional users, and improve the overall performance and user experience of the system.
[0092] In one embodiment, displaying and outputting the rendered fragment corresponding to the sub-model includes:
[0093] The rendering fragment corresponding to the sub-model is pushed to the client for display output through the video stream.
[0094] The embodiment of the present application overcomes the delay and jamming problems existing in the traditional 3D model rendering process by pushing the rendering fragments corresponding to the sub-model to the client display output through the video stream. Through the video stream, even in the case of poor network conditions, it can provide users with a smooth visual experience. This method not only reduces the computing burden of the client, but also improves the efficiency and quality of rendering. For application scenarios that require real-time interaction, such as online 3D model displays, virtual fitting rooms, etc., users can instantly see the rendering effect of the model, adjust the viewing angle, zoom, and other operations, greatly improving the user experience and interactivity. In addition, video stream push also provides convenience for cross-platform applications. Users can access and view 3D models through various terminal devices (such as PCs, mobile phones, and tablets), enhancing the universality and ease of use of the system.
[0095] It should be understood that the size of the serial numbers of the steps in the above embodiments does not mean 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 the present application.
[0096] The present application also provides a 3D model distributed splitting device for executing the steps in the above 3D model distributed splitting method embodiment. The 3D model distributed splitting device can be a virtual appliance in the server, which is run by the processor of the server, or it can be the server itself.
[0097] like Figure 4 As shown, the embodiment of the present application further provides a 3D model distributed splitting device 100, comprising:
[0098] The conversion cluster unit 101 is used for:
[0099] Get the source file uploaded by the user;
[0100] Split the source file into several sub-models;
[0101] Convert several sub-models into model data in a specified format in parallel;
[0102] The rendering unit 102 is used to perform rendering operations on the model data corresponding to the converted sub-models to obtain rendering segments corresponding to the sub-models; and to display and output the rendering segments corresponding to the sub-models.
[0103] In the application, the model data parsing and splitting program and the model data format conversion program of the conversion cluster unit are self-developed software applications running on the Windows operating system. The conversion cluster provides actual file conversion capabilities. Through the distributed system, the hardware resources are maximized, and the complex model is split into multiple sub-models according to the physical space cutting algorithm, and the source files are converted in parallel. Whenever some conversion results are generated, the results are output to the online storage module, and the data is pushed to the rendering engine for loading.
[0104] In the application, the rendering unit (rendering engine) is based on the Unreal Engine game engine. Secondary development adds the ability to load model data in steps, push online video streams, and interact with websocket commands, and runs on the Windows operating system.
[0105] In one embodiment, it further includes an online storage unit 103;
[0106] The online storage unit 103 is used for:
[0107] Receive source files uploaded by users on the client;
[0108] The source file is stored and a storage identifier of the source file is sent to the client; the client is used to receive the storage identifier of the source file and submit a preview task to the server;
[0109] The rendering unit 102 is further configured to receive a preview task sent by a client, and trigger a step of obtaining a source file uploaded by a user.
[0110] In the application, the 3D model distributed splitting device consists of three parts: online storage, conversion cluster and rendering engine.
[0111] In the application, the online storage unit provides storage capabilities for source files and result files, allowing users to obtain data anytime and anywhere by uploading and downloading on the network. The online file storage uses the minio open source object storage system as the basis, and provides distributed file storage cluster services after secondary packaging, running on the Linux operating system. The 3D model distributed splitting device operates in browser-server mode. The file online storage, conversion cluster and rendering engine in the device are all programs running on the cloud server. After being deployed on the server, the daemon process keeps the program running. Users access this system through a web browser or an application interface with an embedded browser kernel to upload model files and browse model data.
[0112] In one embodiment, the conversion cluster unit 101 is further used to upload the model data corresponding to the converted sub-model to the online storage unit;
[0113] The online storage unit 103 is also used to store the model data corresponding to the sub-model and send the storage identifier of the model data to the conversion cluster unit;
[0114] The conversion cluster unit 101 is further used to send the storage identifier to the rendering unit;
[0115] The rendering unit 102 is further configured to obtain the model data from the online storage unit based on the storage identifier.
[0116] In one embodiment, Figure 5 As shown, the embodiment of the present application provides a method for distributed splitting of 3D models using a 3D model distributed splitting system formed by a client and a server (including each unit in the above-mentioned 3D model distributed splitting device), which includes the following steps:
[0117] Step 1: Upload source files: Users upload source files on the browser client.
[0118] Step 2: Store the file: The online storage system accepts the file uploaded by the browser client and stores it, and returns the file identifier in the online storage to the client.
[0119] Step 3, submit the preview task: The browser client prompts the user that the file upload is complete and starts the video stream playback interface for model preview. Wait for the video stream pushed by the rendering engine. Then submit the preview task to the rendering engine with the online storage file identifier obtained in step 2. The preview task refers to the process in which the rendering engine loads the model and pushes the rendering effect after the loaded model to the browser client through the video stream for the user to preview.
[0120] Step 4, start the preview task: The rendering engine starts a model rendering program process, and submits the conversion task to the conversion cluster with the online file identifier submitted in step 3, waits for the conversion cluster to return the conversion result, and loads it into the rendering process, and pushes the preview effect to the browser client.
[0121] Step 5: Get source file: The conversion cluster sends an instruction to the online storage to get the original model source file.
[0122] Step 6: Distribute source files: Online storage distributes the source files of the original model to the conversion cluster.
[0123] Step 7: Split the model: The conversion cluster splits the source file of the original model into several sub-models.
[0124] Step 8: Parallel conversion of models: The conversion cluster converts multiple sub-models simultaneously in a parallel manner.
[0125] Step 9: Sub-models complete conversion: The conversion cluster completes the conversion of each sub-model.
[0126] Step 10: Upload conversion results: After completing the conversion of each sub-model, the conversion cluster uploads the conversion results to online storage for storage.
[0127] Step 11, store conversion results: the online storage receives the conversion results uploaded by the conversion cluster, stores them, and returns an identifier of the file's online storage.
[0128] Step 12, start rendering: the conversion cluster notifies the rendering engine of the completion of the sub-model conversion using the online storage identifier obtained in step 11, and then loads and renders.
[0129] Step 13: Obtain conversion result: The rendering engine sends an instruction to obtain the sub-model conversion result to the online storage using the online storage identifier obtained in step 12.
[0130] Step 14: Distribute conversion results: The online storage distributes the conversion results of the sub-model to the rendering engine.
[0131] Step 15: Loading conversion results: The rendering engine loads the obtained sub-model conversion results into the rendering program to perform rendering operations.
[0132] Step 16: Push rendering effect: The rendering engine pushes the rendered sub-model preview effect to the browser client through the video stream.
[0133] Step 17: Display the preview effect: The browser client receives the video stream pushed by the rendering engine and displays the rendering effect of the model in real time.
[0134] A third aspect of an embodiment of the present application provides a terminal device, including a processor, a memory, and a computer program stored in the memory and executable on the processor. When the processor executes the computer program, the terminal device implements the method of the first aspect of the embodiment of the present application.
[0135] In applications, the terminal device may be a server.
[0136] The embodiment of the present application also provides a system, including a client and a server;
[0137] The server is used to execute the method of the embodiment of the application;
[0138] The client is used to receive the source files uploaded by the user and send them to the server, as well as receive the rendering fragments corresponding to the sub-model sent by the server and display the output.
[0139] In the application, in order to reduce the performance requirements of the user on the client, this system uses a web browser as the client to upload model files and preview model effects. The client can also be embedded in other applications by opening it with an embedded browser kernel. The server integrates online storage, conversion clusters, and rendering engines to jointly implement the method of the application embodiment.
[0140] The embodiments of the present application make full use of computing resources and significantly improve processing efficiency by centralizing the splitting, conversion and rendering tasks of 3D models on the server side, which is particularly suitable for large 3D models. The client only needs to have basic file upload and video stream receiving capabilities, which lowers the hardware threshold and supports a variety of devices. The distributed architecture of the server can easily expand computing resources and ensure system stability and performance under high concurrent requests. The client receives and displays rendered fragments in real time, providing a smooth visual experience, supporting real-time interactive operations, and ensuring good preview effects even in poor network conditions.
[0141] It should be noted that the information interaction, execution process, etc. between the above-mentioned devices / units are based on the same concept as the method embodiment of the present application. Their specific functions and technical effects can be found in the method embodiment part and will not be repeated here.
[0142] The technicians in the relevant field can clearly understand that for the convenience and simplicity of description, only the division of the above-mentioned functional units and modules is used as an example for illustration. In practical applications, the above-mentioned function allocation can be completed by different functional units and modules as needed, that is, the internal structure of the device can be divided into different functional units or modules to complete all or part of the functions described above. The functional units and modules in the embodiment can be integrated in a processing unit, or each unit can exist physically separately, or two or more units can be integrated in one unit. The above-mentioned integrated unit can be implemented in the form of hardware or in the form of software functional units. In addition, the specific names of the functional units and modules are only for the convenience of distinguishing each other, and are not used to limit the scope of protection of this application. The specific working process of the units and modules in the above-mentioned system can refer to the corresponding process in the aforementioned method embodiment, which will not be repeated here.
[0143] The embodiment of the present application further provides a computer-readable storage medium, which stores a computer program. When the computer program is executed by a processor, the steps in the above-mentioned method embodiments can be implemented.
[0144] An embodiment of the present application provides a computer program product, including a computer program. When the computer program product runs on a terminal device, the terminal device can implement the steps in the above-mentioned method embodiments when executing the computer program product.
[0145] If the integrated unit is implemented in the form of a software functional unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the present application implements all or part of the processes in the above-mentioned embodiment method, which can be completed by instructing the relevant hardware through a computer program, and the computer program can be stored in a computer-readable storage medium. When the computer program is executed by the processor, the steps of the above-mentioned various method embodiments can be implemented. Among them, the computer program includes computer program code, and the computer program code can be in source code form, object code form, executable file or some intermediate form. The computer-readable medium may at least include: any entity or device that can carry the computer program code to the device / terminal device, a recording medium, a computer memory, a read-only memory (ROM, Read-Only Memory), a random access memory (RAM, Random Access Memory), an electric carrier signal, a telecommunication signal, and a software distribution medium. For example, a USB flash drive, a mobile hard disk, a magnetic disk or an optical disk. In some jurisdictions, according to legislation and patent practice, computer-readable media cannot be electric carrier signals and telecommunication signals.
[0146] In the above embodiments, the description of each embodiment has its own emphasis. For parts that are not described or recorded in detail in a certain embodiment, reference can be made to the relevant descriptions of other embodiments.
[0147] Those of ordinary skill in the art will appreciate that the units and algorithm steps of each example 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 performed in hardware or software depends on the specific application and design constraints of the technical solution. Professional and technical personnel can use different methods to implement the described functions for each specific application, but such implementation should not be considered to be beyond the scope of this application.
[0148] In the embodiments provided in the present application, it should be understood that the disclosed devices and methods can be implemented in other ways. For example, the device embodiments described above are only schematic, for example, the division of modules or units is only a logical function division, and there may be other division methods in actual implementation, such as multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed. Another point is that the mutual coupling or direct coupling or communication connection shown or discussed can be through some interfaces, indirect coupling or communication connection of devices or units, which can be electrical, mechanical or other forms.
[0149] The units described as separate components may or may not be physically separated, and the components shown as units may or may not be physical units, that is, they may be located in one place or distributed on multiple network units. Some or all of the units may be selected according to actual needs to achieve the purpose of the solution of this embodiment.
[0150] The above embodiments are only used to illustrate the technical solutions of the present application, rather than to limit them. Although the present application has been described in detail with reference to the aforementioned embodiments, those skilled in the art should understand that they can still modify the technical solutions described in the aforementioned embodiments, or make equivalent replacements for some of the technical features therein. These modifications or replacements do not deviate the essence of the corresponding technical solutions from the spirit and scope of the technical solutions of the embodiments of the present application, and should all be included in the protection scope of the present application.
Claims
1. A 3D model distributed splitting method, characterized in that: The method comprises: Get the source file uploaded by the user; Splitting the source file into a plurality of sub-models; Converting a plurality of said sub-models into model data in a specified format in parallel; Performing rendering operations on the model data corresponding to the sub-models that have completed the conversion, respectively, to obtain rendering fragments corresponding to the sub-models; The rendering fragment corresponding to the sub-model is displayed and output.
2. The 3D model distributed splitting method according to claim 1, characterized in that: Before obtaining the source file uploaded by the user, the following steps are included: Receive source files uploaded by users on the client; The source file is stored, and a storage identifier of the source file is sent to the client; the client is used to receive the storage identifier of the source file and submit a preview task to the server; Receiving the preview task sent by the client triggers the step of obtaining the source file uploaded by the user.
3. The 3D model distributed splitting method according to claim 1, characterized in that: The step of converting the plurality of sub-models into model data in a specified format in parallel includes: The plurality of sub-models are converted in parallel into model data in an online browsing data format and / or a 3D modeling application format.
4. The 3D model distributed splitting method according to claim 3, characterized in that: The step of converting the plurality of sub-models in parallel into model data in a 3D modeling application format comprises: Constructing a spatial octree structure to divide the sub-model into multiple leaf nodes; Convert the objects in each leaf node to gltf file in parallel; The process where the root node of the spatial octree is located collects all converted gltf files and loads them; Convert the loaded gltf file into model data in the format of the 3D modeling application.
5. The 3D model distributed splitting method according to claim 1, characterized in that: The displaying and outputting of the rendering fragment corresponding to the sub-model includes: The rendering fragment corresponding to the sub-model is pushed to the client for display output via the video stream.
6. A 3D model distributed splitting device, characterized in that: The device comprises: Convert cluster units for: Get the source file uploaded by the user; Splitting the source file into a plurality of sub-models; Converting a plurality of said sub-models into model data in a specified format in parallel; The rendering unit is used to perform rendering operations on the model data corresponding to the sub-models that have completed the conversion, respectively, to obtain rendering fragments corresponding to the sub-models; and to display and output the rendering fragments corresponding to the sub-models.
7. The 3D model distributed splitting device according to claim 6, characterized in that: Also included is an online storage unit; The online storage unit is used for: Receive source files uploaded by users on the client; The source file is stored, and a storage identifier of the source file is sent to the client; the client is used to receive the storage identifier of the source file and submit a preview task to the server; The rendering unit is further configured to receive a preview task sent by the client, triggering the step of obtaining the source file uploaded by the user.
8. The 3D model distributed splitting device according to claim 7, characterized in that: The conversion cluster unit is also used to upload the model data corresponding to the sub-model that has completed the conversion to the online storage unit; The online storage unit is also used to store the model data corresponding to the sub-model and send the storage identifier of the model data to the conversion cluster unit; The conversion cluster unit is further used to send the storage identifier to the rendering unit; The rendering unit is further configured to obtain the model data from the online storage unit based on the storage identifier.
9. A terminal device, characterized in that: The method comprises a processor, a memory, and a computer program stored in the memory and executable on the processor, wherein when the processor executes the computer program, the terminal device implements the method as claimed in any one of claims 1 to 5.
10. A system, characterized in that: Including client and server; The server is used to execute the method according to any one of claims 1 to 5; The client is used to receive the source file uploaded by the user and send it to the server, and receive the rendering fragment corresponding to the sub-model sent by the server, and display the output.