Three-dimensional model display method and related equipment

By employing an edge download strategy and the open-source 3D rendering engine OSG, the problem of slow download speed of 3D model files across multiple terminal devices has been solved, improving download efficiency and user experience, and supporting multimodal interaction.

CN122053587APending Publication Date: 2026-05-15BOE TECHNOLOGY GROUP CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
BOE TECHNOLOGY GROUP CO LTD
Filing Date
2026-02-28
Publication Date
2026-05-15

AI Technical Summary

Technical Problem

In existing technologies, when multiple terminal devices download 3D model files simultaneously, the cloud platform's bandwidth becomes insufficient, resulting in slow download speeds, increased download time, and a negative impact on user experience.

Method used

An edge download strategy is adopted, which uses multiple terminal devices connected by the intranet to collaboratively download 3D model files. The target terminal device is determined by the feedback message, and the file is downloaded in pieces. The file is then displayed using the open-source 3D rendering engine OSG.

Benefits of technology

It improves the download efficiency of terminal devices, reduces download time, alleviates server load, enhances user experience, and supports multimodal interaction, such as gestures, voice, and touch operation.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN122053587A_ABST
    Figure CN122053587A_ABST
Patent Text Reader

Abstract

The invention provides a three-dimensional model display method and related equipment. The three-dimensional model display method is applied to a first terminal device, and comprises the following steps: in response to a received downloading link of a three-dimensional model file issued by a first cloud platform and a corresponding display plan, sending a first downloading request to a second cloud platform; in response to the fact that the real-time downloading rate of the three-dimensional model file is smaller than the preset downloading rate and the duration is not smaller than the first preset duration, sending a second downloading request to at least one second terminal device; receiving a feedback message sent by at least one response second terminal device in response to the second downloading request, and determining at least one target second terminal device; downloading a second file piece of the three-dimensional model file from the target second terminal equipment based on the first downloading position and the second downloading position; and in response to the fact that the downloaded three-dimensional model file is a complete three-dimensional model file, displaying a three-dimensional model based on an open source three-dimensional rendering engine OSG according to the display plan.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of computer technology, and in particular to a method and related equipment for displaying three-dimensional models. Background Technology

[0002] Displaying and interacting with 3D models on a mobile device allows users to better understand them. Improving the display effect of 3D models is of great significance. Summary of the Invention

[0003] In view of this, the purpose of this application is to propose a three-dimensional model display method and related equipment.

[0004] To achieve the above objectives, this application provides a three-dimensional model display method applied to a first terminal device, comprising:

[0005] In response to receiving the download link and corresponding display plan for the 3D model file issued by the first cloud platform, a first download request for the 3D model file is sent to the second cloud platform based on the download link; In response to the real-time download rate of the 3D model file being less than a preset download rate and the duration being not less than a first preset duration, a second download request for the 3D model file is sent to at least one second terminal device; wherein the second terminal device is connected to the first terminal device via an intranet; Receive at least one feedback message sent by a second terminal device in response to the second download request, and determine a target second terminal device among the at least one responding second terminal devices through the feedback message; the target second terminal device is set to at least one, and the second download position of the 3D model file in the target second terminal device at the current time is greater than the first download position in the first terminal device; Based on the first download location and the second download location, download the second file fragment of the three-dimensional model file from the target second terminal device; Since the downloaded 3D model file is a complete 3D model file, the 3D model based on the open-source 3D rendering engine OSG is displayed according to the display plan.

[0006] In some embodiments, the number of target second terminal devices is multiple; the second download location is different among the multiple target second terminal devices; the second file fragment of downloading the 3D model file from the target second terminal device based on the first download location and the second download location includes: Based on the sequential relationship of the multiple second download positions, the multiple target second terminal devices are sorted; wherein, each of the multiple second download positions corresponds one-to-one with the multiple target second terminal devices. Based on the first download location and the second download location, the target download start position and target download end position of the file fragment of the 3D model file in the corresponding target second terminal device are determined according to the sorting order; Based on the target download start position and the target download end position, download the corresponding file fragments of the 3D model file to obtain multiple second file fragments of the 3D model file.

[0007] In some embodiments, the 3D model file display method further includes obtaining the downloaded 3D model file by means of: The multiple second file fragments are combined according to the sorting order; The combined second file fragment is combined with the first file fragment to obtain the downloaded 3D model file; wherein, the first file fragment is the file fragment of the 3D model file corresponding to the first download position.

[0008] In some embodiments, the 3D model display method further includes determining that the downloaded 3D model file is a complete 3D model file by means of: In response to the fact that the size of the downloaded 3D model file is the same as the size of the 3D model file in the display plan, the downloaded 3D model file is determined to be a complete 3D model file.

[0009] In some embodiments, the second download request and the feedback message are respectively sent via UDP broadcast; the CPU utilization rate of the target second terminal device is less than the CPU utilization rate threshold, and the random access memory utilization rate is less than the random access memory utilization rate threshold; the feedback message includes the ID of the 3D model file, the CPU utilization rate of the response second terminal device, the random access memory utilization rate of the response second terminal device, and the second download location. Determining the target second terminal device among the at least one responding second terminal devices through the feedback message includes: If the ID of the 3D model file in the feedback message matches the ID of the 3D model file in the second download request, the responding second terminal device corresponding to the feedback message is determined to be the target second terminal device.

[0010] In some embodiments, the display method further includes: In response to a trigger operation on the 3D model, the trigger operation is mapped to a mouse event of the OSG engine, the 3D model is updated according to the mouse event, and the updated 3D model is displayed.

[0011] In some embodiments, the triggering operation includes at least one of touch operation, gesture operation, and voice operation.

[0012] In some embodiments, mapping the triggering operation to mouse events of the OSG engine includes: The button parameters and offset parameters of the mouse event corresponding to the triggering operation are called, and the button parameters and offset parameters are passed through to the OSG engine, where the mouse movement function is called.

[0013] In some embodiments, the triggering operation includes a voice operation; the step of mapping the triggering operation to a mouse event of the OSG in response to the triggering operation on the 3D model includes: in response to a voice operation on the 3D model, and the duration of the wake-up command is less than a second preset duration, mapping the voice operation to a mouse event of the OSG.

[0014] In some embodiments, the voice operation includes multiple voice operation types; each of the multiple voice operation types corresponds to a different preset offset parameter; and each of the multiple preset offset parameters is different. Updating the 3D model based on the mouse event includes updating the 3D model based on the button parameters corresponding to the mouse event and the preset offset parameters.

[0015] In some embodiments, the triggering operation includes at least one of a touch operation and a gesture operation; updating the 3D model according to the mouse event includes: The 3D model is updated based on the button parameters corresponding to the mouse event and the first offset parameter; wherein the first offset parameter is determined by the second offset parameter corresponding to the trigger operation.

[0016] In some embodiments, the triggering operation includes a gesture operation, and the three-dimensional model display method further includes determining the second offset parameter by: in response to detecting an image having a gesture and the three-dimensional model, determining the gesture type in the image and the first pixel position corresponding to the gesture type; Every third preset time interval, the second pixel position of the gesture type in the image is obtained; Based on the first pixel position and the second pixel position, the corresponding second offset parameter is obtained; and / or The triggering operation includes a touch operation, and the three-dimensional model display method further includes determining the second offset parameter by: identifying the number of touch points, determining the touch type based on the number of touch points, and determining the second offset parameter corresponding to the touch type.

[0017] This application embodiment also provides a three-dimensional model display device, the three-dimensional model display device comprising: The first download request sending module is configured to send a first download request for the 3D model file to the second cloud platform in response to the 3D model file and the corresponding display plan issued by the first cloud platform. The second download request sending module, in response to the real-time download rate of the 3D model file being less than a preset download rate and the duration being not less than a first preset duration, sends a second download request for the 3D model file to at least one second terminal device; wherein, the second terminal device is connected to the first terminal device via an intranet, and the second terminal device and the first terminal device have the same application installed; The first determining module is configured to receive feedback messages sent by at least one responding second terminal device in response to the second download request, and determine a target second terminal device among the at least one responding second terminal devices through the feedback messages; the target second terminal device is set to at least one, and the second download position of the 3D model file in the target second terminal device at the current time is greater than the first download position in the first terminal device; The download module is configured to download a second file fragment of the 3D model file from the target second terminal device based on the first download location and the second download location; The display module is configured to display a 3D model based on the open-source 3D rendering engine OSG in response to the downloaded 3D model file being a complete 3D model file, according to the display plan.

[0018] This application also provides an electronic device, including a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the processor executes the program to implement the method described in any of the preceding claims.

[0019] This application also provides a non-transitory computer-readable storage medium that stores computer instructions for causing a computer to perform any of the methods described above.

[0020] This application also provides a computer program product, including computer program instructions that, when run on a computer, cause the computer to perform the method described in any of the preceding claims.

[0021] This application embodiment also provides a three-dimensional model display system, the system including a control terminal, a first cloud platform, a terminal device as described in the foregoing embodiments, and a second cloud platform; wherein, the control terminal is configured to send a three-dimensional model file and a corresponding display plan to the first cloud platform; The first cloud platform is configured to receive the 3D model file and the corresponding display plan sent by the control terminal, send the 3D model file to the second cloud platform, and send the download link of the 3D model file and the corresponding display plan to the terminal device and the second cloud platform. The second cloud platform is configured to receive and store the 3D model file sent by the first cloud platform for download by the terminal device. Attached Figure Description

[0022] To more clearly illustrate the technical solutions in this application or related technologies, the drawings used in the description of the embodiments or related technologies will be briefly introduced below. Obviously, the drawings described below are only embodiments of this application. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.

[0023] Figure 1 This is a schematic diagram of an exemplary three-dimensional model display system according to an embodiment of this application.

[0024] Figure 2 This describes the process for distributing and displaying 3D information (e.g., 3D models) according to embodiments of this application.

[0025] Figure 3 This is a flowchart illustrating an exemplary three-dimensional model display method according to an embodiment of this application.

[0026] Figure 4 This is a flowchart illustrating an exemplary edge download strategy in an embodiment of this application.

[0027] Figure 5 This is a flowchart illustrating the process of downloading a second file fragment to a target second terminal device, as described in an embodiment of this application.

[0028] Figure 6 This is a flowchart illustrating the loading process of a 3D model according to an embodiment of this application.

[0029] Figure 7 This is a software architecture diagram of a terminal device (e.g., a first terminal or a second terminal) according to an embodiment of this application.

[0030] Figure 8 This is a schematic diagram of touch operation in an embodiment of this application.

[0031] Figure 9 This is a schematic diagram of the screen touch mapping intersection according to an embodiment of this application.

[0032] Figure 10 This is a schematic diagram of the process for determining the second offset parameter according to an embodiment of this application.

[0033] Figure 11This is a schematic diagram of a three-dimensional model display device according to an embodiment of this application.

[0034] Figure 12 This is a schematic diagram of the structure of a terminal device according to an embodiment of this application. Detailed Implementation

[0035] To make the objectives, technical solutions, and advantages of this application clearer, the following detailed description is provided in conjunction with specific embodiments and the accompanying drawings.

[0036] It should be noted that, unless otherwise defined, the technical or scientific terms used in the embodiments of this application should have the ordinary meaning understood by one of ordinary skill in the art to which this application pertains. The terms "first," "second," and similar terms used in the embodiments of this application do not indicate any order, quantity, or importance, but are merely used to distinguish different components. Terms such as "comprising" or "including" mean that the element or object preceding the word encompasses the elements or objects listed after the word and their equivalents, without excluding other elements or objects. Terms such as "connected" or "linked" are not limited to physical or mechanical connections, but can include electrical connections, whether direct or indirect. Terms such as "upper," "lower," "left," and "right" are only used to indicate relative positional relationships; when the absolute position of the described object changes, the relative positional relationship may also change accordingly.

[0037] The Open Scene Graph (OSG) is an open-source 3D rendering engine designed for cross-platform graphics development, enabling the development of high-performance graphics applications for scientific computing visualization. This engine provides an object-oriented framework built on top of the Open Graphics Library (OpenGL), freeing developers from implementing and optimizing low-level graphics calls, and offering many additional utilities for rapid development of graphics applications. It is lightweight and simple, making it suitable for 3D modeling on mobile devices with lower performance requirements.

[0038] Figure 1 This is a schematic diagram of an exemplary three-dimensional model display system according to an embodiment of this application. See also... Figure 1This application provides a 3D model display system, which may include a control terminal 101, a cloud platform, and a terminal device 103. The control terminal 101 is mainly used by users to upload and create 3D plans, and also includes account management and device management functions. It may have functions such as user login, uploading and management of 3D resources (e.g., 3D model files), creation and management of 3D plans, previewing of 3D resources (e.g., 3D model files) and plans, querying and controlling device (e.g., terminal device 103) information, and grouping devices (e.g., terminal device 103), and can run on computers or mobile phones with a browser.

[0039] The cloud platform can be a 3D information cloud platform, mainly used for storing 3D resources (such as 3D model files), 3D plans, equipment (such as terminal device 103) information, and user information; distributing 3D resources (such as 3D model files) and issuing control commands to equipment (such as terminal device 103). Terminal device 103 is mainly used to load and display 3D model files (such as 3D model files of types osg, osgb, obj, fbx, or 3ds) according to the 3D plan, and also supports user interaction with the 3D model.

[0040] In some embodiments, the cloud platform may include an application cloud platform 101 and a 3D resource cloud platform. The application cloud platform is primarily used for processing requests from the terminal device 103, storing device (e.g., terminal device 103) information, storing user information, storing 3D plans, message push, business logic processing, pushing 3D plans and 3D resources to the device (e.g., terminal device 103), and control commands. The 3D resource cloud platform is primarily used for storing 3D model files and providing them for download by the device (e.g., terminal device 103).

[0041] In some embodiments, the terminal device 103 (e.g., a multi-form display terminal) can be an integrated system including 3D information (e.g., 3D model files) display application software and terminal hardware. That is, the terminal device 103 is terminal hardware pre-installed with a 3D information (e.g., 3D model files) display application. The terminal device 103 displays 3D models based on the OSG engine through the 3D information (e.g., 3D model files) display application. The terminal device 103 can be a display terminal of various sizes. The system of the terminal device 103 can be Android, iOS, or Windows, etc.

[0042] For example, 3D model display systems can be applied in exhibition settings such as museums. The 3D models can be educational models (e.g., molecular models), providing a more intuitive display of the model's internal structure (e.g., molecules), facilitating student understanding. 3D model display systems can also be applied in product display settings such as exhibition halls, trade shows, or shopping malls. The 3D models can be product models, providing a more realistic display of goods, making it easier for customers to understand them. 3D model display systems can also be applied in display settings such as smart cities or smart transportation systems. The 3D models can be digital twin models of cities or streets that can be downloaded and displayed in real time, allowing users to more intuitively understand the 3D space of the city and the 3D conditions of the streets.

[0043] In some embodiments, the control terminal 101 is configured to send a 3D model file and a corresponding display plan to the first cloud platform 1021; The first cloud platform 1021 is configured to receive the 3D model file and the corresponding display plan sent by the control terminal 101, send the 3D model file to the second cloud platform 1022, and send the download link of the 3D model file and the corresponding display plan to the terminal device 103 and the second cloud platform 1022. The second cloud platform 1022 is configured to receive and store the 3D model file sent by the first cloud platform 1021 for download by the terminal device 103.

[0044] Figure 2 This describes the planned distribution and display process for 3D information (e.g., 3D models) in this application embodiment. (Participants) Figure 2 The first user can create a 3D plan through the control terminal 101 (e.g., a web control terminal 101). The 3D plan typically includes the 3D materials to be played (e.g., 3D models) and plan information. The plan specifies the order, time, and position of the 3D materials (e.g., 3D models) on the screen. The plan can be in the form of a configuration file. The created 3D plan can be transmitted to the application cloud platform via HTTPS protocol, etc. The application cloud platform receives and stores the 3D plan. The application cloud platform can then send the 3D material download link and playback plan information to the terminal device 103 via MQTT protocol, etc. After receiving the 3D material download link and playback plan information, the terminal device 103 requests the corresponding resources from the 3D resource cloud platform according to the playback plan requirements and loads and displays the 3D resources (e.g., 3D models) according to the playback plan. Simultaneously, the second user can interact with the 3D information (e.g., 3D models) through gesture operations, voice operations, touch operations, etc.

[0045] Based on the three-dimensional model display system and the three-dimensional information (e.g., three-dimensional model) planning, distribution, and display process described in the above embodiments, this application provides a three-dimensional model display method that can be used to display three-dimensional models based on the open-source three-dimensional rendering engine OSG, and to realize the display and interaction of three-dimensional models on a terminal device 103 (e.g., a first terminal device or a second terminal device), thereby achieving a better three-dimensional model display and interaction effect.

[0046] 3D models typically contain textures and mappings, resulting in large file sizes and slow download speeds. If multiple terminal devices 103 (e.g., the first or second terminal device) simultaneously request resources from the cloud platform, the cloud platform's bandwidth may become insufficient for a period, causing most terminal devices 103 (e.g., the first or second terminal device) to queue for download, further increasing download time and impacting user experience. Since the simultaneous request for 3D model files by multiple terminal devices 103 (e.g., the first or second terminal device) from the same customer on the same local area network often occurs, this application embodiment optimizes the slow download speed of 3D model files through an adaptive edge download strategy. The adaptive edge download strategy process is as follows: Figure 4 As shown.

[0047] This application embodiment utilizes an edge download strategy to avoid slow download speeds when terminal device 103 (e.g., the first or second terminal device) downloads large files, thereby improving the efficiency of downloading 3D model files, reducing download time, and alleviating the load on the server (e.g., cloud platform). This application embodiment also employs multimodal recognition (e.g., gesture recognition, voice recognition, or touch recognition) to enable multimodal interaction between the user and the 3D model, further enhancing the user experience.

[0048] Figure 3 This is a flowchart illustrating an exemplary three-dimensional model display method according to an embodiment of this application. (See reference...) Figure 3 The three-dimensional model display method of this application embodiment can be applied to a first terminal device and may include: Step S201: In response to receiving the 3D model file and corresponding display plan from the first cloud platform 1021, a first download request for the 3D model file is sent to the second cloud platform 1022. The first cloud platform 1021 and the second cloud platform 1022 can be the same cloud platform or different cloud platforms. For example, the first cloud platform 1021 can be an application cloud platform, and the second cloud platform 1022 can be a resource cloud platform. The bandwidth of the application cloud platform and the resource cloud platform can differ; the bandwidth of the resource cloud platform can be greater than that of the application cloud platform to save costs. For example, the 3D model can be a teaching model, a product model, or a digital twin model of a city or street. The display plan can specify the time period for playing the 3D model, the number of times the 3D model is played, and the specific position on the screen where the 3D model is played. That is, the display plan can include display time, number of displays, and display position, etc.

[0049] Step S202: In response to the real-time download speed of the 3D model file on the first cloud platform 1021 being less than a preset download speed and lasting for no more than a first preset duration, a second download request for the 3D model file is sent to at least one second terminal device. The second terminal device is connected to the first terminal device via an intranet, and both devices have the same application installed. The first terminal device can download the 3D model file by accessing a URL. The download speed can be obtained in real time during the download process. This application is used to display the 3D model based on the open-source 3D rendering engine OSG. The preset download speed can be determined according to the specific application, for example, it can be 500kb / s. The preset duration can be determined according to the specific application, for example, it can be approximately 20 seconds.

[0050] Intranet connectivity connects various computers, external devices, and databases within a certain area to form a computer communication network, enabling data transmission between connected devices. This application does not limit the type of intranet; for example, it includes wireless intranets using Bluetooth and / or Wi-Fi (wireless Fidelity) as the connection method, and wired intranets using USB (Universal Serial Bus) as the connection method. Exemplarily, intranets can also be classified according to their application scenarios, such as company internal networks, campus networks, and enterprise networks. Different types of intranets have different characteristics and application scenarios, and can be selected according to actual needs.

[0051] Step S203: Receive at least one feedback message from a second terminal device responding to the second download request, and determine a target second terminal device among the at least one responding second terminal devices through the feedback message; the target second terminal device is set to at least one, and at the current moment, the second download position of the 3D model file in the target second terminal device is greater than the first download position in the first terminal device.

[0052] Step S204: Based on the first download location and the second download location, download the second file fragment of the three-dimensional model file from the target second terminal device.

[0053] Step S205: In response to the downloaded 3D model file being a complete 3D model file, the 3D model based on the open-source 3D rendering engine OSG is displayed according to the display plan. Displaying the 3D model based on the open-source 3D rendering engine OSG according to the display plan may include: the application parsing the 3D model file using the open-source 3D rendering engine OSG, rendering the 3D model based on the parsing results, and displaying the 3D model according to the display plan.

[0054] The three-dimensional model display method provided in this application embodiment can solve the problem of slow download of three-dimensional model files by terminal device 103 (e.g., first terminal device) through edge download strategy, improve the efficiency of terminal device 103 (e.g., first terminal device) in downloading three-dimensional model files, reduce the download time of three-dimensional model files by terminal device 103 (e.g., first terminal device), and reduce the load on second cloud platform 1022 (e.g., three-dimensional resource cloud platform).

[0055] Figure 4 This is a flowchart illustrating an exemplary edge download strategy in an embodiment of this application. (Reference) Figure 4In step S202, the download speed of the 3D model file on the first terminal device can be obtained in real time during the download process, thus obtaining the real-time download speed of the 3D model file on the first terminal device. Then, it is determined in real time whether the real-time download speed of the 3D model file is less than a preset speed. If the real-time download speed is not less than the preset download speed, it can be further determined whether the duration of the real-time download speed on the first terminal device is greater than or equal to a first preset duration. If the duration is equal to or greater than the first preset duration, the download of the 3D model file continues on the second cloud platform 1022, or the edge download is stopped and the 3D model file continues to be attached to the second cloud platform 1022. If the duration is less than the first preset duration, the process returns to the step of determining whether the real-time download speed is less than the preset speed. That is, the display method further includes: in response to the real-time download speed being not less than the preset download speed and the duration being not less than the first preset duration, downloading the 3D model file on the second cloud platform 1022; or in response to the real-time download speed being not less than the preset download speed and the duration being less than the first preset duration, returning to the step of determining whether the real-time download speed is less than the preset speed.

[0056] In some embodiments, when the real-time download rate is less than a preset download rate, it can be further determined whether the duration of the real-time download rate of the first terminal device is greater than or equal to a first preset duration. If it is determined to be less than the first preset duration, the process returns to the step of determining whether the real-time download rate is less than the preset rate. If it is determined to be greater than or equal to the first preset duration, it is determined whether edge download is in progress. If yes, the process returns to the step of determining whether the real-time download rate is less than the preset rate; if no, an edge download request is sent to all other terminal devices 103 (i.e., the second terminal device) in the intranet.

[0057] In some embodiments, a second download request for the 3D model file can be sent to at least one second terminal device via UDP broadcast. The second download request may include the current download position of the 3D model file on the first terminal device.

[0058] Next, we move to the second terminal device. The second terminal device can detect in real time whether it has received an edge download request. If it detects that no edge download request has been received, it returns to the step of real-time detection of edge download request receipt. When it detects that an edge download request has been received, it responds by checking if its own CPU utilization is less than a CPU utilization threshold. If the check is negative, the detection at the second terminal device ends. If the check is positive, it proceeds to the next step: checking if the random access memory (RAM) utilization is less than a RAM utilization threshold. If the check is negative, the detection at the second terminal device ends. If the check is positive, it proceeds to the next step: checking if the second download position of the 3D model file in its own device is greater than the first download position in the first terminal device. If the check is positive, the second terminal device can send feedback. That is, the CPU utilization of the target second terminal device is less than the CPU utilization threshold, and the RAM utilization is less than the RAM utilization threshold.

[0059] In some embodiments, the second terminal device (e.g., a responding second terminal device) can send feedback via UDP broadcast. Typically, there can be at least one responding second terminal device. The feedback sent by the second terminal device may include a message name, the ID of the 3D model file being downloaded, the CPU usage of the second terminal, the second random access memory usage, the current download location of the 3D model file on the second terminal device, the IP address of the second terminal device, and the port number of the second terminal device, etc. For example, the data format of the feedback sent by the second terminal device is {"msgName":"xxxx","resId":"xxxx","cpuUsageRate","xxxx","ramUsageRate"}. The string `e":"xxxx","downloadLocation":"xxxx""ip":"xxxx""port":"xxxx"}` contains the message name, the resId field (resId of the 3D file currently being downloaded), cpuUsageRate and ramUsageRate (CPU and RAM usage of the responding device, respectively), downloadLocation (download location of the file), and ip and port (IP and port numbers of the responding device, used to establish a TCP connection between the requesting and responding devices).

[0060] Then, the process moves to the first terminal device. The first terminal device receives and parses a feedback message sent by the second terminal device (e.g., a response second terminal device). Based on the resId of the 3D file in the feedback message, it determines whether the 3D file in the second terminal device is the 3D file required by its own device. That is, determining the target second terminal device in the at least one response second terminal device through the feedback message includes: if the id of the 3D model file in the feedback message matches the id of the 3D model file in the second download request, the response second terminal device corresponding to the feedback message is determined to be the target second terminal device. Typically, after determining the target second terminal device, a TCP connection can be established with it.

[0061] In some embodiments, the number of target second terminal devices can be multiple. The second download location differs among the multiple target second terminal devices. (See reference...) Figure 5 The second file fragment of the 3D model file downloaded from the target second terminal device based on the first download location and the second download location may include: S2041, the multiple target second terminal devices are sorted according to the sequential relationship of the multiple second download positions; wherein, each of the multiple second download positions corresponds one-to-one with the multiple target second terminal devices. The multiple target second terminal devices can be sorted in ascending or descending order. For example, if there are three target second terminal devices, they can be sorted from smallest to largest according to their second download positions. For example, after sorting, target second terminal device A, target second terminal device B, and target second terminal device C are obtained, and their corresponding three second download positions are 2000b, 3000b, and 4000b, respectively.

[0062] S2042, based on the first download position and the second download position, determine the target download start position and target download end position of the file fragments of the 3D model file in the corresponding target second terminal device according to the sorting order. Typically, the target download start position cannot be before the first download position, and the target download end position cannot be after the second download position. For example, fragment downloads can be performed separately from the three target second terminal devices after the aforementioned sorting. If the first download position is 1000b, then the size of the file fragment downloaded from target second terminal device A is 2000-1001=999b, and the position of the file fragment downloaded from target second terminal device A is [1001, 2000]. The size of the file fragment downloaded from target second terminal device B is 3000-2001=999b, and the position of the file fragment downloaded from target second terminal device B is [2001, 3000]. The size of the file fragment downloaded from the target second terminal device C is 4000-3001=999b, and the location of the file fragment downloaded from the target second terminal device C is [3001,4000].

[0063] S2043, based on the target download start position and the target download end position, download the corresponding file fragments of the 3D model file to obtain multiple second file fragments of the 3D model file. For example, three second file fragments of the model file can be obtained. Once the three second file fragments of the model file have been downloaded, the fragment download is complete. Thus, the download of multiple second file fragments of the 3D model file is complete.

[0064] Next, the downloaded 3D model file can be obtained based on the first file slice corresponding to the first download location and the second file slice (e.g., multiple second file slices). Typically, the downloaded 3D model file can be obtained by combining the first and second file slices.

[0065] In some embodiments, when there are multiple second file slices, the multiple second file slices can be combined in sorted order and then combined with the first file slice of the 3D model file corresponding to the first download position to obtain the downloaded 3D model file. That is, the 3D model file display method further includes obtaining the downloaded 3D model file by: combining the multiple second file slices in sorted order; combining the combined second file slices with the first file slice to obtain the downloaded 3D model file; wherein, the first file slice is the file slice of the 3D model file corresponding to the first download position.

[0066] Next, it can be determined whether the downloaded 3D model file is a complete 3D model file. Typically, if the determination is yes, meaning the downloaded 3D model file is confirmed to be complete, the download of the 3D model file by the first terminal device is complete. If the determination is no, meaning the downloaded 3D model file is confirmed to be incomplete, the process can return to the step of real-time acquisition of the download speed of the 3D model file by the first terminal device, until the download is complete.

[0067] Next, the OSG engine can be used to load, display, and interact with the 3D model.

[0068] In some embodiments, step S205, displaying the 3D model based on the open-source OSG 3D rendering engine, may include: calling the OSG engine based on the JNI interface layer; setting vertex and fragment type shaders based on the OSG engine and the addShader method to obtain the 3D model corresponding to the 3D model file; and rendering and displaying the rendered 3D model according to the display plan based on the 3D model. This achieves the display of the 3D model according to the display plan.

[0069] During the display of 3D models, the OSG 3D rendering engine on the Android platform relies on GLSurfaceView. (Reference) Figure 6 A custom GLSurfaceView class can be instantiated through an Android application, thereby starting a GLThread for that custom GLSurfaceView instance. This allows the OSG engine to be initialized by calling the onSurfaceChanged function of the Render subclass instance. Next, the VERTEX and FRAGMENT type shaders are set using the addShader method. Then, the 3D model is loaded using the loadObject method. Finally, the onDrawFrame method of the Render subclass instance is called to render the 3D model onto a plane, thus displaying the 3D model. During the display process, it can be determined whether to exit the display interface. If so, the display ends; otherwise, the process returns to the onDrawFrame method of the Render subclass instance to refresh the screen, ensuring that user actions are reflected in the refresh.

[0070] The above process describes how to port the OSG engine to a terminal using the Android operating system through the GLSurfaceView class, enabling the terminal using the Android operating system to display 3D models based on the OSG engine. The onSurfaceChanged and onDrawFrame functions can both be processed by calling functions in the corresponding dynamic library of the OSG engine.

[0071] It should be noted that the dynamic library corresponding to the OSG engine can be pre-generated. The OSG engine entity in the Android operating system is a static library. A custom JNI interface can be used to allow the application layer (Java) to call methods of the OSG engine dynamic library (C++). The OSG engine can further call the OpenGL graphics rendering library pre-installed on the Android platform to complete functions such as loading, displaying, and interacting with 3D models.

[0072] Figure 7 This is a software architecture diagram of an exemplary terminal device 103 (e.g., a first terminal or a second terminal) according to an embodiment of this application. (Refer to...) Figure 7 The software layer of terminal device 103 can include four layers: the application layer (including applications), the JNI interface layer, the OSG engine, and the OpenGL rendering layer. Typically, the application layer (including applications) is written in Java. The OSG engine layer is based on OpenGL and has high-level functions such as scene management, resource loading, rendering optimization, and a cross-platform window system. Compared to OpenGL, it has a more convenient API, more supporting libraries, and supports more model file formats, textures, and mapping formats, making it suitable for simulation, geographic information, digital twins, and model interaction scenarios. The OSG engine source code, third-party libraries (such as OpenGL and OpenGL extension processing libraries), and local business code can be cross-compiled into a C++ dynamic library usable on the Android platform. Then, a custom JNI interface layer that can be called by the Android application layer can be written and packaged into an AAR file. This allows the OSG engine to be ported to the Android platform for use by 3D display terminals.

[0073] Next, the user can interact with the 3D model. Terminal device 103 (e.g., a first terminal device) can update and display the 3D model in response to a user's trigger operation on the model. That is, the display method further includes: in response to a trigger operation on the 3D model, mapping the trigger operation to a mouse event of the OSG engine, updating the 3D model according to the mouse event, and displaying the updated 3D model. The trigger operation can be at least one of touch operation, gesture operation, and voice operation. Updating and displaying the 3D model can include at least one of rotating and displaying the 3D model, zooming in or out of the 3D model and displaying it, and moving and displaying the 3D model.

[0074] In some embodiments, mapping the triggering operation to a mouse event in the OSG engine includes: calling the key parameters and offset parameters of the mouse event corresponding to the triggering operation, and passing the key parameters and offset parameters through to the OSG engine, whereby the mouse movement function is called in the OSG engine.

[0075] It should be noted that since the OSG engine itself does not provide interactive operations such as triggering operations (e.g., touch operations, gesture operations, and voice operations) for 3D models, but only provides triggering operations for 3D models through mouse events, it is necessary to map and convert interactive operations such as triggering operations (e.g., touch operations, gesture operations, and voice operations) to OSG mouse events to realize interaction with 3D models through screen triggering operations (e.g., touch operations, gesture operations, and voice operations).

[0076] In some embodiments, touch operations, gesture operations, and voice operations each have different operation types, and different operation types correspond to different mouse event button parameters and different 3D model update operations. For example, touch operations and gesture operations can each include three types of operations. Mouse event button parameters can include three types of button parameters. 3D model update operations can include three types of 3D model update operations. The three types of operations are set in a one-to-one correspondence with the three types of mouse event parameters. The three types of operations are set in a one-to-one correspondence with the three types of 3D model update operations. For example, the three types of button parameters can be 1, 4, and 2, respectively. Button parameter 1 is used to simulate the left mouse button controlling the rotation of the 3D model. Button parameter 4 is used to simulate the middle mouse wheel controlling the scaling of the 3D model. Button parameter 2 is used to simulate the right mouse button controlling the movement of the 3D model.

[0077] In some embodiments, updating the 3D model based on the mouse event includes updating the 3D model based on the button parameters corresponding to the mouse event and a first offset parameter. For example, the button parameters may include a first button parameter, a second button parameter, and a third button parameter. The updated 3D model corresponding to the first button parameter can be a rotated 3D model. The updated 3D model corresponding to the second button parameter can be a zoomed-in / zoomed 3D model. The updated 3D model corresponding to the first button parameter can be a moved 3D model. When the triggering operation is a touch operation or a gesture operation, the first offset parameter can be determined by the second offset parameter corresponding to the triggering operation. When the triggering operation is a voice operation, the first offset parameter can be determined by a preset offset parameter corresponding to the triggering operation.

[0078] Next, the triggering operations for touch operations will be explained accordingly. (Refer to...) Figure 8In some embodiments, the triggering operation can be a touch operation. The type of touch operation can include single-finger touch, two-finger touch, and three-finger touch. When the triggering operation is a touch operation, screen touch detection can be performed first to determine the type of touch operation. Specifically, this can include intercepting screen events, determining that the screen event type is a touch event, and then determining the event type of the touch event to obtain the type of touch operation. Specifically, after determining that the screen event type is a touch event, it is determined whether the touch operation type is a single-finger touch. If yes (i.e., in response to a single-finger touch), the 3D model is updated by rotating the finger. If no (i.e., in response to a non-single-finger touch), it is determined whether the touch operation type is a two-finger touch. If yes, the 3D model is updated by either shrinking the model inwards or enlarging the model outwards with the two fingers. If no, it is determined whether the touch operation type is a three-finger touch. If yes, the 3D model is updated by moving the three fingers in the same direction. Typically, the current touch event ends after the 3D model is updated.

[0079] Taking the Android screen as an example, this section explains the mapping and interaction scheme from touch operations to OSG mouse events. The specific implementation of the mapping and interaction between screen touch (e.g., touch operation) and the 3D model can be achieved by intercepting screen touch events in the `onTouchEvent` method of a custom `GLSurfaceView`, determining the touch type, obtaining the start and end coordinates of the touch, and then passing the touch event and information through the `mouseButtonPress`, `mouseButtonRelease`, and `mouseMotion` methods of the OSG engine, thus realizing the pass-through of touch events from Android to the OSG engine.

[0080] In some embodiments, updating the 3D model based on the mouse event includes: updating the 3D model based on a first offset parameter corresponding to the mouse event; wherein the first offset parameter is determined by a second offset parameter corresponding to the triggering operation. (See also...) Figure 9The second offset parameter can be determined by: identifying the number of touch points; determining the touch type based on the number of touch points; and determining the corresponding second offset parameter based on the touch type. Specifically, identifying the number of touch points and determining the touch type based on the number of touch points may include: identifying whether the number of touch points is a first number; in response to the number of touch points being the first number (e.g., 1), determining the touch type as a first touch type (e.g., single-finger touch); in response to the number of touch points not being the first number (e.g., 1), determining whether the number of touch points is a second number (e.g., 2); in response to the number of touch points being the second number (e.g., 2), determining the touch type as a second touch type (e.g., two-finger touch); in response to the number of touch points not being the second number (e.g., 2), determining whether the number of touch points is a third number (e.g., 3); and in response to the number of touch points being the third number (e.g., 3), determining the touch type as a third touch type (e.g., three-finger touch).

[0081] In some embodiments, the terminal device 103 (e.g., a first terminal device or a second terminal device) can identify the number of touch points at the application layer based on the getPointerCount() method of MotionEvent.

[0082] In some embodiments, when the number of touch points is 1, determining the corresponding second offset parameter based on the touch type and updating the 3D model based on the first offset parameter corresponding to the mouse event may include: On the Android side, listening to the ACTION_DOWN event callback of onTouchEvent; then calling the custom JNI methods mouseButtonReleaseEvent and mouseButtonPressEvent to invoke relevant methods of the OSG engine, specifically calling the OSG 3D rendering engine's mouseButtonRelease and mouseButtonPress methods with a button parameter of 1 to simulate a left mouse button press; next, on the Android side, listening to the ACTION_MOVE event callback of onTouchEvent, calling the custom JNI method mouseMoveEvent to invoke relevant methods of the OSG engine, specifically calling the OSG engine's mouseMotion method with a button parameter of 1 and x and y offsets (position change direction and movement distance) to simulate left mouse button control of 3D model rotation.

[0083] In some embodiments, when the number of touch points is 2, determining the corresponding second offset parameter based on the touch type and updating the 3D model based on the first offset parameter corresponding to the mouse event may include: listening to the ACTION_DOWN event of the onTouchEvent callback on the Android side; and then calling the custom JNI methods mouseButtonReleaseEvent and mouseButtonPress. The `Event` method then calls relevant methods of the OSG 3D rendering engine, specifically the `mouseButtonRelease` and `mouseButtonPress` methods, passing the parameter 4 to simulate mouse wheel operation. Next, the Android side listens for the `ACTION_MOVE` event in the `onTouchEvent` callback. Upon receiving the `ACTION_MOVE` event, the custom JNI method `mouseMoveEvent` is called, which in turn calls relevant methods of the OSG 3D rendering engine, specifically the `mouseMotion` method, passing the parameter 4 and the x and y offsets (direction and amount of position change) to simulate mouse wheel control of 3D model scaling.

[0084] In some embodiments, when the number of touch points is 3, determining the corresponding second offset parameter based on the touch type and updating the 3D model based on the first offset parameter corresponding to the mouse event may include: On the Android side, listening to the ACTION_DOWN event callback of onTouchEvent; upon detecting the ACTION_DOWN event, calling the custom JNI methods mouseButtonReleaseEvent and mouseButtonPressEvent, and then calling the relevant methods of the OSG engine; that is, calling the mouseButtonRelease and mouseButtonPress methods of the OSG 3D rendering engine, and passing the key parameter 2 to simulate a right mouse button press; then, on the Android side, listening to the ACTION_MOVE event callback of onTouchEvent; upon detecting the ACTION_MOVE event, calling the custom JNI method mouseMoveEvent, and then calling the relevant methods of the OSG engine, that is, calling the mouseMotion method of the OSG 3D rendering engine, passing the key parameter 2, and passing in the x and y direction offsets (movement direction and movement distance), thereby simulating the right mouse button controlling the movement of the 3D model.

[0085] The above explains the triggering procedures for touch operations. The following section explains the triggering procedures for gesture operations. (Refer to...) Figure 10 In some embodiments, when the triggering operation is a gesture operation, the 3D model display method further includes determining the second offset parameter by the following method: Step S2061: In response to detecting an image with a gesture and a 3D model, determine the gesture type in the image and the first pixel position corresponding to the gesture type. For example, the gesture type may include a first gesture type (e.g., a single-finger gesture), a second gesture type (e.g., a two-finger gesture), and a third gesture type (e.g., a palm gesture). The first pixel position can be the pixel position when the gesture type is first recognized in the display screen. The pixel position typically includes a horizontal coordinate position and a vertical coordinate position. The first pixel position corresponding to the first gesture type (e.g., a single-finger gesture) may include the first pixel position of the first pixel point corresponding to the fingertip of the single finger in the image. The second pixel position corresponding to the second gesture type (e.g., a two-finger gesture) may include the second pixel position of the first pixel point corresponding to the fingertip of the two fingers in the image. The first pixel position corresponding to the third gesture type (e.g., a palm gesture) may include the first pixel position of the first pixel point corresponding to the center of the palm in the image.

[0086] Step S2062: Acquire the second pixel position of the gesture type in the image every third preset time interval. Typically, the third preset time interval can be 1 second. It is understood that the second pixel position of the first gesture type (e.g., single-finger type) in the image may include the second pixel position corresponding to the fingertip of the single finger. The second pixel position of the second gesture type (e.g., two-finger type) in the image may include the second pixel position corresponding to the fingertips of both fingers. The second pixel position of the third gesture type (e.g., palm type) in the image may include the second pixel position corresponding to the center of the palm.

[0087] Step S2063: Obtain the corresponding second offset parameter based on the first pixel position and the second pixel position. The second offset parameter may include a horizontal coordinate offset parameter and a vertical coordinate offset parameter. The horizontal coordinate offset parameter can be obtained based on the difference between the horizontal coordinate of the second pixel at the second pixel position and the horizontal coordinate of the first pixel at the first pixel position, and the vertical coordinate offset parameter can be obtained based on the difference between the vertical coordinate of the second pixel at the second pixel position and the vertical coordinate of the first pixel at the first pixel position. For example, the second offset parameter corresponding to a first gesture type (e.g., single-finger type) may be x, y. The second offset parameter corresponding to a second gesture type (e.g., two-finger type) may be x1, y1. The third offset parameter corresponding to a third gesture type (e.g., palm type) may be x2, y2.

[0088] In some embodiments, the second offset parameters x, y corresponding to the detected first gesture type (e.g., single-finger type) are passed to the mouseMoveEvent of a custom JNI method. This JNI method further calls the mouseMotion method of the OSG engine, passing the button parameter 1 to simulate the left mouse button controlling the model rotation to update the 3D model, thus realizing the mapping interaction from single-finger gesture to model rotation. Alternatively, the second offset parameters x1, y1 corresponding to the detected second gesture type (e.g., two-finger type) are passed to the mouseMoveEvent of a custom JNI method. This JNI method further calls the mouseMotion method of the OSG engine, passing the button parameter 4 to simulate the middle mouse wheel controlling the model to zoom in / out to update the 3D model, thus realizing the mapping interaction from two-finger gesture to model zoom in / out. Alternatively, the third offset parameters x2, y2 corresponding to the detected third gesture type (e.g., palm type) are passed to the mouseMoveEvent of a custom JNI method. This JNI method further calls the mouseMotion method of the OSG engine, passing the button parameter 2 to simulate the right mouse button controlling the 3D model movement to update the 3D model, thus realizing the mapping interaction from palm gesture to 3D model movement.

[0089] In some embodiments, in response to the number of fingers exceeding a threshold number during the acquisition of the second pixel position, only the second pixel position of the finger corresponding to the first pixel position is acquired, and the second pixel positions corresponding to the remaining fingers are discarded. The threshold number of fingers can be 2. This can improve recognition accuracy.

[0090] In some embodiments, in response to a situation where the number of hands exceeds a threshold number during the acquisition of the second pixel position, only the second pixel position of the hand corresponding to the first pixel position is acquired, and the second pixel positions corresponding to the remaining hands are discarded. The threshold number of hands can be 1. This can improve recognition accuracy.

[0091] The triggering of gesture operations has been explained above. Next, the triggering of voice operations will be explained. In some embodiments, when the triggering operation is a voice operation, mapping the triggering operation to an OSG mouse event in response to the triggering operation on the 3D model may include: in response to the voice operation on the 3D model, and where the duration of the wake-up command is less than a second preset duration, mapping the voice operation to an OSG mouse event. The wake-up command can be triggered by a preset wake-up word. Typically, the wake-up word and the second preset duration can be set according to actual needs. The second preset duration can be configured on the control terminal 101 and can be set to within 5 minutes. For example, the wake-up word can be "model operation". For example, the second preset duration can be 5 minutes.

[0092] In some embodiments, the voice operation may include multiple voice operation types. Each of the multiple voice operation types corresponds to a different operation type on the 3D model. For example, the multiple voice operation types may include a first voice operation type (e.g., turn left / right / up / down), a second voice operation type (e.g., zoom in / zoom out), and a third voice operation type (e.g., move left / right / up / down). The first voice operation type (e.g., turn left / right / up / down) may correspond to the rotation of the 3D model (e.g., turn left / right / up / down) to update the 3D model. The second voice operation type (e.g., zoom in / zoom out) may correspond to the scaling of the 3D model (e.g., zoom in / zoom out) to update the 3D model. The third voice operation type (e.g., move left / right / up / down) may correspond to the movement of the 3D model (e.g., move left / right / up / down) to update the 3D model.

[0093] In some embodiments, updating the 3D model according to the mouse event includes updating the 3D model according to the button parameters corresponding to the mouse event and the preset offset parameters.

[0094] For example, the key parameter corresponding to the first voice operation type (e.g., turn left / turn right / turn up / turn down) can be 1, the key parameter corresponding to the second voice operation type (e.g., zoom in / zoom out) can be 4, and the key parameter corresponding to the third voice operation type (e.g., move left / move right / move up / move down) can be 2.

[0095] Each voice operation type corresponds to a preset offset parameter. That is, each of the multiple voice operation types corresponds to a different preset offset parameter. For example, the rotation parameter (e.g., left turn / right turn / up turn / down turn) of the 3D model corresponding to the first voice operation type (e.g., turn left / right turn / up turn / down turn) can be a preset angle for a single, quantitative rotation (e.g., 30°). The scaling parameter (e.g., zoom in / zoom out) of the 3D model corresponding to the second voice operation type (e.g., zoom in / zoom out) can be a preset percentage (e.g., 15%) of the original size of the 3D model for a single, quantitative scaling (e.g., zoom in / zoom out). The movement parameter (e.g., left move / right move / up move / down move) of the 3D model corresponding to the third voice operation type (e.g., move left / right move / up move / down move) can be a preset percentage (e.g., 15%) of the screen width / height for a single, quantitative movement. This achieves interaction with the 3D model through voice operation.

[0096] The embodiments of this application can enrich the user's interactive experience with the 3D model and improve user satisfaction through various interaction methods with the 3D model.

[0097] It should be noted that the method in this embodiment can be executed by a single device, such as a computer or server. The method can also be applied in a distributed scenario, where multiple devices cooperate to complete the task. In such a distributed scenario, one of these devices may execute only one or more steps of the method in this embodiment, and the multiple devices will interact with each other to complete the method described.

[0098] It should be noted that the above description describes some embodiments of this application. Other embodiments are within the scope of the appended claims. In some cases, the actions or steps recorded in the claims can be performed in a different order than that shown in the above embodiments and still achieve the desired result. Furthermore, the processes depicted in the drawings do not necessarily require a specific or sequential order to achieve the desired result. In some embodiments, multitasking and parallel processing are also possible or may be advantageous.

[0099] Based on the same inventive concept, and corresponding to any of the above embodiments, this application also provides a three-dimensional model display device.

[0100] refer to Figure 11 The three-dimensional model display device 300 may include: The first download request sending module 310 is configured to send a first download request for the three-dimensional model file to the second cloud platform 1022 in response to the three-dimensional model file and the corresponding display plan issued by the first cloud platform 1021. The second download request sending module 320, in response to the real-time download rate of the 3D model file being less than a preset download rate and the duration being not less than a first preset duration, sends a second download request for the 3D model file to at least one second terminal device; wherein, the second terminal device is connected to the first terminal device via an intranet, and the second terminal device and the first terminal device have the same application installed; The first determining module 330 is configured to receive a feedback message sent by at least one responding second terminal device in response to the second download request, and determine a target second terminal device among the at least one responding second terminal devices through the feedback message; the target second terminal device is set to at least one, and the second download position of the 3D model file in the target second terminal device at the current time is greater than the first download position in the first terminal device; Download module 340 is configured to download a second file fragment of the 3D model file from the target second terminal device based on the first download location and the second download location; Display module 350 is configured to display a 3D model based on the open-source 3D rendering engine OSG in response to the downloaded 3D model file being a complete 3D model file, according to the display plan.

[0101] In some embodiments, the number of target second terminal devices is multiple; the second download location is different among the multiple target second terminal devices; the download module 340 is configured to: Based on the sequential relationship of the multiple second download positions, the multiple target second terminal devices are sorted; wherein, each of the multiple second download positions corresponds one-to-one with the multiple target second terminal devices. Based on the first download location and the second download location, the target download start position and target download end position of the file fragment of the 3D model file in the corresponding target second terminal device are determined according to the sorting order; Based on the target download start position and the target download end position, download the corresponding file fragments of the 3D model file to obtain multiple second file fragments of the 3D model file.

[0102] In some embodiments, the 3D model file display device further includes a combination module, which is configured to: The multiple second file fragments are combined according to the sorting order; The combined second file fragment is combined with the first file fragment to obtain the downloaded 3D model file; wherein, the first file fragment is the file fragment of the 3D model file corresponding to the first download position.

[0103] In some embodiments, the three-dimensional model display device further includes a second determining module, configured to: In response to the fact that the size of the downloaded 3D model file is the same as the size of the 3D model file in the display plan, the downloaded 3D model file is determined to be a complete 3D model file.

[0104] In some embodiments, the second download request and the feedback message are respectively sent via UDP broadcast; the CPU utilization of the target second terminal device is less than a CPU utilization threshold, and the random access memory (RAM) utilization is less than a RAM utilization threshold; the feedback message includes the ID of the 3D model file, the CPU utilization of the response second terminal device, the RAM utilization of the response second terminal device, and the second download location. The first determining module 330 is configured to: Determining the target second terminal device among the at least one responding second terminal devices through the feedback message includes: If the ID of the 3D model file in the feedback message matches the ID of the 3D model file in the second download request, the responding second terminal device corresponding to the feedback message is determined to be the target second terminal device.

[0105] In some embodiments, the 3D model display device further includes an update module configured to, in response to a triggering operation on the 3D model, map the triggering operation to a mouse event of the OSG engine and update the 3D model according to the mouse event. The display module 350 is also configured to display the updated 3D model.

[0106] In some embodiments, the triggering operation includes at least one of touch operation, gesture operation, and voice operation.

[0107] In some embodiments, the update module is configured to call the key parameters and offset parameters of the mouse event corresponding to the triggering operation, and pass the key parameters and offset parameters through to the OSG engine, whereby the OSG engine calls the mouse movement function.

[0108] In some embodiments, the triggering operation includes a voice operation; the update module is configured to: in response to a voice operation on the 3D model, and if the duration of the wake-up command is less than a second preset duration, map the voice operation to an OSG mouse event.

[0109] In some embodiments, the voice operation includes multiple voice operation types; each of the multiple voice operation types corresponds to a different preset offset parameter; and the multiple preset offset parameters are all different. The update module is configured to update the 3D model based on the button parameters corresponding to the mouse event and the preset offset parameters.

[0110] In some embodiments, the triggering operation includes at least one of a touch operation and a gesture operation; the update module is configured to update the 3D model according to the button parameters corresponding to the mouse event and a first offset parameter; wherein the first offset parameter is determined by a second offset parameter corresponding to the triggering operation.

[0111] In some embodiments, the triggering operation includes a gesture operation, and the three-dimensional model display device further includes a third determining module configured to determine the gesture type in the image and the first pixel position corresponding to the gesture type in response to detecting an image having a gesture and the three-dimensional model; Every third preset time interval, the second pixel position of the gesture type in the image is obtained; The corresponding second offset parameter is obtained based on the first pixel position and the second pixel position.

[0112] In some embodiments, the triggering operation includes a touch operation, and the three-dimensional model display device further includes a third determining module configured to identify the number of touch points, determine the touch type based on the number of touch points, and determine the second offset parameter corresponding to the touch type.

[0113] For ease of description, the above devices are described in terms of function, divided into various modules. Of course, in implementing this application, the functions of each module can be implemented in one or more software and / or hardware.

[0114] The apparatus described above is used to implement the corresponding three-dimensional model display method in any of the foregoing embodiments, and has the beneficial effects of the corresponding method embodiments, which will not be repeated here.

[0115] Based on the same inventive concept, corresponding to the methods of any of the above embodiments, this application also provides a terminal device 103 (e.g., a first terminal device or a second terminal device), including a memory, a processor, and a computer program stored in the memory and executable on the processor. When the processor executes the program, it implements the three-dimensional model display method described in any of the above embodiments.

[0116] Figure 12 This embodiment illustrates a more specific hardware structure of an electronic device. The device may include a processor 1010, a memory 1020, an input / output interface 1030, a communication interface 1040, and a bus 1050. The processor 1010, memory 1020, input / output interface 1030, and communication interface 1040 are interconnected internally via the bus 1050.

[0117] The processor 1010 can be implemented using a general-purpose CPU (Central Processing Unit), microprocessor, application-specific integrated circuit (ASIC), or one or more integrated circuits, and is used to execute relevant programs to implement the technical solutions provided in the embodiments of this specification.

[0118] The memory 1020 can be implemented in the form of ROM (Read Only Memory), RAM (Random Access Memory), static storage device, dynamic storage device, etc. The memory 1020 can store the operating system and other applications. When the technical solutions provided in the embodiments of this specification are implemented by software or firmware, the relevant program code is stored in the memory 1020 and is called and executed by the processor 1010.

[0119] The input / output interface 1030 is used to connect input / output modules to enable 3D model input and output. Input / output modules can be configured as components within the device (not shown in the figure) or externally connected to the device to provide corresponding functions. Input devices may include keyboards, mice, touchscreens, microphones, various sensors, etc., while output devices may include displays, speakers, vibrators, indicator lights, etc.

[0120] The communication interface 1040 is used to connect a communication module (not shown in the figure) to enable communication between this device and other devices. The communication module can communicate via wired means (such as USB, Ethernet cable, etc.) or wireless means (such as mobile network, WIFI, Bluetooth, etc.).

[0121] Bus 1050 includes a pathway for transmitting 3D models between various components of the device, such as processor 1010, memory 1020, input / output interface 1030, and communication interface 1040.

[0122] It should be noted that although the above-described device only shows the processor 1010, memory 1020, input / output interface 1030, communication interface 1040, and bus 1050, in specific implementations, the device may also include other components necessary for normal operation. Furthermore, those skilled in the art will understand that the above-described device may only include the components necessary for implementing the embodiments of this specification, and not necessarily all the components shown in the figures.

[0123] The electronic devices described above are used to implement the corresponding three-dimensional model display methods in any of the foregoing embodiments, and have the beneficial effects of the corresponding method embodiments, which will not be repeated here.

[0124] Based on the same inventive concept, corresponding to the methods of any of the above embodiments, this application also provides a non-transitory computer-readable storage medium that stores computer instructions for causing the computer to execute the three-dimensional model display method as described in any of the above embodiments.

[0125] The computer-readable medium of this embodiment includes permanent and non-permanent, removable and non-removable media that can be implemented by any method or technology to store the three-dimensional model. The three-dimensional model can be computer-readable instructions, data structures, program modules, or other data. Examples of computer storage media include, but are not limited to, phase-change memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technologies, CD-ROM, digital versatile optical disc (DVD) or other optical storage, magnetic tape, magnetic magnetic disk storage or other magnetic storage devices, or any other non-transfer medium that can be used to store a three-dimensional model that can be accessed by a computing device.

[0126] The computer instructions stored in the storage medium of the above embodiments are used to cause the computer to execute the three-dimensional model display method as described in any of the above embodiments, and have the beneficial effects of the corresponding method embodiments, which will not be repeated here.

[0127] Based on the same inventive concept, corresponding to the three-dimensional model display method described in any of the above embodiments, this disclosure also provides a computer program product, which includes computer program instructions. In some embodiments, the computer program instructions can be executed by one or more processors of a computer to cause the computer and / or the processor to perform the three-dimensional model display method. Corresponding to the execution entity for each step in each embodiment of the three-dimensional model display method, the processor executing the corresponding step can belong to the corresponding execution entity.

[0128] The computer program product of the above embodiments is used to cause the computer and / or the processor to execute the three-dimensional model display method as described in any of the above embodiments, and has the beneficial effects of the corresponding method embodiments, which will not be repeated here.

[0129] Those skilled in the art should understand that the discussion of any of the above embodiments is merely exemplary and is not intended to imply that the scope of this application (including the claims) is limited to these examples; within the framework of this application, the technical features of the above embodiments or different embodiments can also be combined, the steps can be implemented in any order, and there are many other variations of different aspects of the embodiments of this application as described above, which are not provided in the details for the sake of brevity.

[0130] Additionally, to simplify the description and discussion, and to avoid obscuring the embodiments of this application, the well-known power / ground connections to integrated circuit (IC) chips and other components may or may not be shown in the provided drawings. Furthermore, the apparatus may be shown in block diagram form to avoid obscuring the embodiments of this application, and this also takes into account the fact that the details of the implementation of these block diagram apparatuses are highly dependent on the platform on which the embodiments of this application will be implemented (i.e., these details should be fully understood by those skilled in the art). While specific details (e.g., circuits) have been set forth to describe exemplary embodiments of this application, it will be apparent to those skilled in the art that the embodiments of this application can be implemented without these specific details or with variations thereof. Therefore, these descriptions should be considered illustrative rather than restrictive.

[0131] Although this application has been described in conjunction with specific embodiments thereof, many substitutions, modifications, and variations of these embodiments will be apparent to those skilled in the art from the foregoing description. For example, other memory architectures (e.g., dynamic RAM (DRAM)) may be used with the embodiments discussed.

[0132] The embodiments of this application are intended to cover all such substitutions, modifications, and variations that fall within the broad scope of the appended claims. Therefore, any omissions, modifications, equivalent substitutions, improvements, etc., made within the spirit and principles of the embodiments of this application should be included within the protection scope of this application.

Claims

1. A method for displaying a three-dimensional model, characterized in that, Applied to the first terminal device, including: In response to receiving the download link and corresponding display plan for the 3D model file issued by the first cloud platform, a first download request for the 3D model file is sent to the second cloud platform based on the download link; In response to the real-time download rate of the 3D model file being less than a preset download rate and the duration being not less than a first preset duration, a second download request for the 3D model file is sent to at least one second terminal device; wherein the second terminal device is connected to the first terminal device via an intranet; Receive at least one feedback message sent by a second terminal device in response to the second download request, and determine a target second terminal device among the at least one responding second terminal devices through the feedback message; the target second terminal device is set to at least one, and the second download position of the 3D model file in the target second terminal device at the current time is greater than the first download position in the first terminal device; Based on the first download location and the second download location, download the second file fragment of the three-dimensional model file from the target second terminal device; Since the downloaded 3D model file is a complete 3D model file, the 3D model based on the open-source 3D rendering engine OSG is displayed according to the display plan.

2. The three-dimensional model display method according to claim 1, characterized in that, The number of target second terminal devices is multiple; the second download location is different among the multiple target second terminal devices; the second file fragment for downloading the 3D model file from the target second terminal device based on the first download location and the second download location includes: Based on the sequential relationship of the multiple second download positions, the multiple target second terminal devices are sorted; wherein, each of the multiple second download positions corresponds one-to-one with the multiple target second terminal devices. Based on the first download location and the second download location, the target download start position and target download end position of the file fragment of the 3D model file in the corresponding target second terminal device are determined according to the sorting order; Based on the target download start position and the target download end position, download the corresponding file fragments of the 3D model file to obtain multiple second file fragments of the 3D model file.

3. The three-dimensional model display method according to claim 2, characterized in that, The method for displaying the 3D model file also includes obtaining the downloaded 3D model file through the following method: The multiple second file fragments are combined according to the sorting order; The combined second file fragment is combined with the first file fragment to obtain the downloaded 3D model file; wherein, the first file fragment is the file fragment of the 3D model file corresponding to the first download position.

4. The three-dimensional model display method according to claim 3, characterized in that, The 3D model display method also includes determining whether the downloaded 3D model file is a complete 3D model file by the following method: In response to the fact that the size of the downloaded 3D model file is the same as the size of the 3D model file in the display plan, the downloaded 3D model file is determined to be a complete 3D model file.

5. The three-dimensional model display method according to claim 1, characterized in that, The second download request and the feedback message are sent via UDP broadcast respectively; the CPU utilization rate of the target second terminal device is less than the CPU utilization rate threshold, and the random access memory utilization rate is less than the random access memory utilization rate threshold; The feedback message includes the ID of the 3D model file, the CPU usage rate of the second terminal device, the random access memory usage rate of the second terminal device, and the second download location. Determining the target second terminal device among the at least one responding second terminal devices through the feedback message includes: If the ID of the 3D model file in the feedback message matches the ID of the 3D model file in the second download request, the responding second terminal device corresponding to the feedback message is determined to be the target second terminal device.

6. The three-dimensional model display method according to claim 1, characterized in that, The display method further includes: In response to a trigger operation on the 3D model, the trigger operation is mapped to a mouse event of the OSG engine, the 3D model is updated according to the mouse event, and the updated 3D model is displayed.

7. The three-dimensional model display method according to claim 6, characterized in that, The triggering operation includes at least one of touch operation, gesture operation, and voice operation.

8. The three-dimensional model display method according to claim 7, characterized in that, Mapping the triggering operation to mouse events in the OSG engine includes: The button parameters and offset parameters of the mouse event corresponding to the triggering operation are called, and the button parameters and offset parameters are passed through to the OSG engine, where the mouse movement function is called.

9. The three-dimensional model display method according to claim 8, characterized in that, The triggering operation includes a voice operation; the step of mapping the triggering operation to a mouse event of the OSG in response to the triggering operation on the 3D model includes: in response to a voice operation on the 3D model, and the duration of the wake-up command is less than a second preset duration, mapping the voice operation to a mouse event of the OSG.

10. The three-dimensional model display method according to claim 9, characterized in that, The voice operation includes various voice operation types; Each of the various voice operation types corresponds to a different preset offset parameter; The various preset offset parameters are different; Updating the 3D model based on the mouse event includes updating the 3D model based on the button parameters corresponding to the mouse event and the preset offset parameters.

11. The three-dimensional model display method according to claim 8, characterized in that, The triggering operation includes at least one of touch operation and gesture operation; updating the 3D model according to the mouse event includes: The 3D model is updated based on the button parameters corresponding to the mouse event and the first offset parameter; wherein the first offset parameter is determined by the second offset parameter corresponding to the trigger operation.

12. The three-dimensional model display method according to claim 11, characterized in that, The triggering operation includes a gesture operation, and the three-dimensional model display method further includes determining the second offset parameter by the following method: in response to detecting an image with a gesture and the three-dimensional model, determining the gesture type in the image and the first pixel position corresponding to the gesture type; Every third preset time interval, the second pixel position of the gesture type in the image is obtained; Based on the first pixel position and the second pixel position, the corresponding second offset parameter is obtained; and / or The triggering operation includes a touch operation, and the three-dimensional model display method further includes determining the second offset parameter by: identifying the number of touch points, determining the touch type based on the number of touch points, and determining the second offset parameter corresponding to the touch type.

13. A three-dimensional model display device, characterized in that, The three-dimensional model display device includes: The first download request sending module is configured to send a first download request for the 3D model file to the second cloud platform in response to the 3D model file and the corresponding display plan issued by the first cloud platform. The second download request sending module, in response to the real-time download rate of the 3D model file being less than a preset download rate and the duration being not less than a first preset duration, sends a second download request for the 3D model file to at least one second terminal device; wherein, the second terminal device is connected to the first terminal device via an intranet, and the second terminal device and the first terminal device have the same application installed; The first determining module is configured to receive feedback messages sent by at least one responding second terminal device in response to the second download request, and determine a target second terminal device among the at least one responding second terminal devices through the feedback messages; the target second terminal device is set to at least one, and the second download position of the 3D model file in the target second terminal device at the current time is greater than the first download position in the first terminal device; The download module is configured to download a second file fragment of the 3D model file from the target second terminal device based on the first download location and the second download location; The display module is configured to display a 3D model based on the open-source 3D rendering engine OSG in response to the downloaded 3D model file being a complete 3D model file, according to the display plan.

14. A terminal device comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the processor, when executing the program, implements the method as described in any one of claims 1 to 12.

15. A non-transitory computer-readable storage medium storing computer instructions for causing a computer to perform the method of any one of claims 1 to 12.

16. A computer program product comprising computer program instructions that, when executed on a computer, cause the computer to perform the method as described in any one of claims 1 to 12.

17. A three-dimensional model display system, characterized in that, The system includes a control terminal, a first cloud platform, a terminal device as described in claim 14, and a second cloud platform; wherein... The control terminal is configured to send the 3D model file and the corresponding display plan to the first cloud platform; The first cloud platform is configured to receive the 3D model file and the corresponding display plan sent by the control terminal, send the 3D model file to the second cloud platform, and send the download link of the 3D model file and the corresponding display plan to the terminal device and the second cloud platform; The second cloud platform is configured to receive and store the 3D model file sent by the first cloud platform for download by the terminal device.