Three-dimensional data acquisition method and related device
By using edge nodes to acquire and cache three-dimensional model data nearby in the content distribution network, the problem of inefficient three-dimensional data distribution and sharing is solved, and efficient and low-cost three-dimensional data distribution and sharing is achieved.
Patent Information
- Application Number
- CN202410050383.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2023-10-13
- Filing Date
- 2024-01-12
- Publication Date
- 2025-04-15
AI Technical Summary
The prior art is difficult to realize the rapid distribution and sharing of three-dimensional data, resulting in low efficiency of user terminals to acquire three-dimensional data and high network transmission costs.
Through the content distribution network (CDN), edge nodes are used to obtain and cache the three-dimensional model data required by the user terminal nearby, and return data from other nodes to the source when necessary, to achieve rapid distribution and sharing of three-dimensional data.
It improves the distribution speed of three-dimensional data and the acquisition efficiency of user terminals, reduces network transmission costs, and increases the way of data return to the source to meet different needs.
Smart Images

Figure CN119835269A_ABST
Abstract
Description
[0001] This application claims priority to Chinese patent application No. 202311330056.9 filed on October 13, 2023, with invention name “A data distribution method, apparatus and computing device cluster”, the entire contents of which are incorporated by reference into this application. Technical Field
[0002] The present application relates to the field of Internet technology, and in particular to a three-dimensional data acquisition method and related devices. Background Art
[0003] Three-dimensional (3D) technology has the characteristics of virtual reality, instant interaction, lean efficiency and emotional sustenance. Therefore, 3D technology has been widely explored and applied in representative areas of the tertiary industry such as retail, culture, education, and entertainment. At the same time, 3D technology has gradually become a general technology in more industries. For example, in the fields of agriculture, manufacturing, and construction, an information exchange and sharing platform with 3D data as the core has emerged. This information exchange and sharing platform has the advantages of visualization, parameterization, and full-cycle interaction. Therefore, how to obtain 3D data has become one of the current focuses. Summary of the invention
[0004] The present application provides a three-dimensional data acquisition method and related devices, which can realize the rapid distribution and sharing of three-dimensional data. The technical solution is as follows:
[0005] In a first aspect, a three-dimensional data acquisition method is provided, which is applied to a first node in a content distribution network, wherein the content distribution network includes multiple nodes, and the first node is an edge node among the multiple nodes; the method includes: receiving a data acquisition request sent by a user terminal, the data acquisition request carrying a target uniform resource locator URL and three-dimensional indication information, the target URL being the URL of a target virtual space, and the three-dimensional indication information indicating a target three-dimensional model in the target virtual space; acquiring data of the target three-dimensional model based on the target URL and the three-dimensional indication information; and sending the data of the target three-dimensional model to the user terminal.
[0006] Since the content distribution network can obtain the data required by the user nearby, that is, the data of the target three-dimensional model, the data of the target three-dimensional model is sent to the user terminal through the content distribution network, which can improve the distribution speed of the three-dimensional data. Moreover, the edge node closest to the user terminal is used as the first node. After the first node obtains the data of the target three-dimensional model, the data of the target three-dimensional model is stored and sent to the user terminal. Compared with the method of storing all data in the same node, this application can improve the efficiency of the user terminal in obtaining three-dimensional data, while saving the network transmission cost of the three-dimensional data.
[0007] Optionally, obtaining the data of the target three-dimensional model based on the target URL and the three-dimensional indication information includes: if all the data of the target three-dimensional model is not cached in the first node, determining a second node from the multiple nodes based on characteristics of the target three-dimensional model, and obtaining the data of the target three-dimensional model from the three-dimensional data cached by the second node based on the target URL and the three-dimensional indication information.
[0008] In the case that all the data of the target 3D model is not cached in the first node, the first node can obtain the data of the target 3D model from the 3D data cached by the second node, that is, the second node can share the 3D data with the first node, thus realizing the sharing of the 3D data. Moreover, by obtaining the data of the target 3D model from the second node, the reliability of obtaining the 3D data can be ensured.
[0009] Optionally, the content distribution network also includes a scheduling node; determining a second node from the multiple nodes based on the characteristics of the target three-dimensional model includes: if the first node has back-to-source scheduling information cached in it, then determining the second node from the back-to-source scheduling information based on the characteristics of the target three-dimensional model, the back-to-source scheduling information being used to indicate nodes for data back-to-source for three-dimensional models with different characteristics; if the back-to-source scheduling information is not cached in the first node, obtaining the back-to-source scheduling information from the scheduling node, and determining the second node from the back-to-source scheduling information based on the characteristics of the target three-dimensional model.
[0010] Based on whether the first node has the back-to-source scheduling information cached, different methods are selected to determine the second node, which can quickly determine the second node. Moreover, the second node can be a node at the same level or a node at an upper level connected to the first node. Therefore, the present application can perform downward data back-to-source, as well as left and right data back-to-source, increasing the way of performing data back-to-source.
[0011] Optionally, the target virtual space is divided into multiple three-dimensional slices, and the data of the multiple three-dimensional slices are stored in a target data structure in a hierarchical manner; obtaining the data of the target three-dimensional model based on the target URL and the three-dimensional indication information includes: determining at least one slice index based on the target URL and the three-dimensional indication information, the at least one slice index referring to the index of at least one three-dimensional slice constituting the target three-dimensional model; and performing a hierarchical search in the target data structure based on the at least one slice index to obtain the data of the at least one three-dimensional slice.
[0012] Dividing the target virtual space into multiple three-dimensional slices and storing the data of the multiple three-dimensional slices in layers can reduce the storage space occupied; at the same time, based on at least one slice index of the target three-dimensional model, performing layered search in the target data structure can improve the query speed and optimize the query performance.
[0013] Optionally, the three-dimensional indication information includes a three-dimensional coordinate range; determining at least one slice index based on the target URL and the three-dimensional indication information includes: determining the at least one slice index from a coordinate mapping relationship based on the target URL and the three-dimensional coordinate range, and the coordinate mapping relationship is used to store the mapping relationship between the URL, three-dimensional coordinates and slice index.
[0014] When the three-dimensional indication information includes a three-dimensional coordinate range, at least one slice index can be determined based on the target URL and the three-dimensional coordinates. For example, the three-dimensional indication information can be "3DRange: coords = [(x-x1, y-y1, z-z1)]", wherein 3DRange represents a three-dimensional area, coords represents a coordinate range, x-x1 represents the coordinate range of the target three-dimensional model on the x-axis, y-y1 represents the coordinate range of the target three-dimensional model on the y-axis, z-z1 represents the coordinate range of the target three-dimensional model on the z-axis, and x1 is greater than x, y1 is greater than y, and z1 is greater than z. Based on the target URL and three-dimensional coordinates (x, y, z), the slice index corresponding to the three-dimensional coordinates (x, y, z) can be determined from the coordinate mapping relationship as (i, j, k). Based on the target URL and three-dimensional coordinates (x1, y1, z1), the slice index corresponding to the three-dimensional coordinates (x1, y1, z1) can be determined from the coordinate mapping relationship as (i1, j1, k1). Similarly, the slice indexes corresponding to other three-dimensional coordinates in the three-dimensional coordinate range can be determined from the coordinate mapping relationship.
[0015] Optionally, the target three-dimensional model is a cone-shaped model, and the three-dimensional indication information includes cone parameters; determining at least one slice index based on the target URL and the three-dimensional indication information includes: determining the three-dimensional coordinate range corresponding to the target three-dimensional model based on the cone parameters; determining the at least one slice index from a coordinate mapping relationship based on the target URL and the three-dimensional coordinate range, and the coordinate mapping relationship is used to store the mapping relationship between the URL, three-dimensional coordinates and slice index.
[0016] The cone-shaped three-dimensional model can be a cone-shaped model or a light cone-shaped model. If the target three-dimensional model is a cone-shaped model, the cone parameters include the vertical field of view angle, the aspect ratio of the end face, the coordinates of the near end face, and the coordinates of the far end face; wherein the vertical field of view angle refers to the angle between the two end faces in the vertical direction, the aspect ratio of the end face refers to the aspect ratio of the end face perpendicular to the specified coordinate axis, and the coordinates of the near end face and the coordinates of the far end face are the coordinates on the specified coordinate axis. If the target three-dimensional model is a light cone-shaped model, the cone parameters include the angle of the cone angle, the diameter of the near end face, and the diameter of the far end face. In this way, the user terminal can determine the cone parameters contained in the three-dimensional indication information according to the type of cone of the target three-dimensional model, thereby improving the flexibility of the user terminal in obtaining the target three-dimensional model.
[0017] Optionally, before receiving the data acquisition request sent by the user terminal, the method also includes: dividing the target virtual space into the multiple three-dimensional slices; setting the indexes of the multiple three-dimensional slices to obtain multiple slice indexes; storing the data of the multiple three-dimensional slices in the target data structure according to the multiple slice indexes; and storing the target URL, the three-dimensional coordinates of the multiple three-dimensional slices and the multiple slice indexes in the coordinate mapping relationship.
[0018] The target virtual space is divided into multiple three-dimensional slices, and the data of the multiple three-dimensional slices are stored in the target data structure according to the corresponding slice indexes, which can reduce the storage space occupied; at the same time, the target URL, the three-dimensional coordinates of the multiple three-dimensional slices and the multiple slice indexes are stored in the coordinate mapping relationship, and the corresponding slice index can be quickly determined from the coordinate mapping relationship based on the target URL and the three-dimensional coordinates, thereby improving the efficiency of determining the slice index.
[0019] Optionally, the three-dimensional indication information includes query conditions; determining at least one slice index based on the target URL and the three-dimensional indication information includes: based on the target URL and the query conditions, determining the slice index that meets the query conditions from a conditional mapping relationship to obtain the at least one slice index, and the conditional mapping relationship is used to store the mapping relationship between URL, slice attributes and slice index.
[0020] When the three-dimensional indication information includes a query condition, at least one slice index can be obtained based on the target URL and the query condition. For example, the three-dimensional indication information is "3DRange:queries=(xxxxx)", where 3DRange represents a three-dimensional area and queries represents a query condition. Based on the target URL and the query condition, a slice index whose slice attribute meets the query condition can be determined from the condition mapping relationship. For example, if the three-dimensional indication information is "3DRange:queries=(cube)", then based on the "cube" in the query condition and the target URL, a slice index of a three-dimensional slice with a shape of "cube" can be determined from the condition mapping relationship. It can meet the different needs of user terminals.
[0021] Optionally, before receiving the data acquisition request sent by the user terminal, the method also includes: dividing the target virtual space into the multiple three-dimensional slices; setting the indexes of the multiple three-dimensional slices to obtain multiple slice indexes; storing the data of the multiple three-dimensional slices in the target data structure according to the multiple slice indexes; and storing the target URL, the attribute information of the multiple three-dimensional slices and the multiple slice indexes in the conditional mapping relationship.
[0022] The target virtual space is divided into multiple three-dimensional slices, and the data of the multiple three-dimensional slices are stored in the target data structure according to the corresponding slice indexes, which can reduce the storage space occupied; at the same time, the target URL, the attribute information of the multiple three-dimensional slices and the multiple slice indexes are stored in the conditional mapping relationship, and the corresponding slice index can be quickly determined in the conditional mapping relationship based on the target URL and the attribute information of the three-dimensional slice, thereby improving the efficiency of determining the slice index.
[0023] Optionally, the target virtual space is divided into multiple three-dimensional slices, and the data and attribute information of the multiple three-dimensional slices are stored in a hierarchical manner in a target data structure; the three-dimensional indication information includes a query condition; obtaining the data of the target three-dimensional model based on the target URL and the three-dimensional indication information includes: determining multiple slice indexes based on the target URL, and the multiple slice indexes refer to indexes of the multiple three-dimensional slices; based on the multiple slice indexes, performing a hierarchical search in the target data structure to obtain the data of the multiple three-dimensional slices and the attribute information of each three-dimensional slice; based on the attribute information of the multiple three-dimensional slices, filtering out the three-dimensional slices that meet the query condition from the multiple three-dimensional slices, and using the data of the filtered three-dimensional slices as the data of the target three-dimensional model.
[0024] The data and attribute information of the three-dimensional slice are stored in a hierarchical manner in the target data structure, which can reduce the storage space occupied. Moreover, when the three-dimensional indication information includes a query condition, it is not necessary to query the attribute information of the three-dimensional slice from the conditional mapping relationship, and the attribute information of the three-dimensional slice can be obtained while obtaining the data of the three-dimensional slice from the target data structure. Of course, the attribute information of the three-dimensional slice does not need to be stored in the conditional mapping relationship, thereby reducing the storage space occupied by the conditional mapping relationship.
[0025] In a second aspect, a three-dimensional data acquisition device is provided, which has the function of implementing the three-dimensional data acquisition method in the first aspect. The three-dimensional data acquisition device includes at least one module, which is used to implement the three-dimensional data acquisition method provided in the first aspect.
[0026] In a third aspect, a computing device cluster is provided, the computing device cluster comprising at least one computing device, each computing device comprising a processor and a memory, the memory of the at least one computing device being used to store a computer program for executing the three-dimensional data acquisition method provided in the first aspect. The processor of the at least one computing device is configured to execute the computer program stored in the memory of the at least one computing device to implement the three-dimensional data acquisition method described in the first aspect.
[0027] Optionally, the computing device cluster may further include a communication bus, where the communication bus is used to establish a connection between a processor and a memory of the at least one computing device.
[0028] In a fourth aspect, a computer-readable storage medium is provided, wherein the storage medium stores instructions, and when the instructions are executed by a computing device cluster, the computing device cluster executes the steps of the three-dimensional data acquisition method described in the first aspect.
[0029] In a fifth aspect, a computer program product comprising instructions is provided, and when the instructions are executed by a computing device cluster, the computing device cluster executes the steps of the three-dimensional data acquisition method described in the first aspect. In other words, a computer program is provided, and when the computer program is executed on a computer, the computer executes the steps of the three-dimensional data acquisition method described in the first aspect.
[0030] The technical effects obtained by the above-mentioned second, third, fourth and fifth aspects are similar to the technical effects obtained by the corresponding technical means in the first aspect, and will not be repeated here. BRIEF DESCRIPTION OF THE DRAWINGS
[0031] Figure 1 It is a structural diagram of an implementation environment provided by an embodiment of the present application;
[0032] Figure 2 It is a structural diagram of another implementation environment provided by an embodiment of the present application;
[0033] Figure 3 is a schematic diagram of the structure of a computing device provided in an embodiment of the present application;
[0034] Figure 4 is a flow chart of a three-dimensional data acquisition method provided in an embodiment of the present application;
[0035] Figure 5 This is a schematic diagram of the structure of an HTTP request message provided by an embodiment of the present application;
[0036] Figure 6 It is a structural schematic diagram of a cone-shaped model provided in an embodiment of the present application;
[0037] Figure 7 It is a structural schematic diagram of a light cone-shaped model provided in an embodiment of the present application;
[0038] Figure 8 is a schematic diagram of a tree data structure provided in an embodiment of the present application;
[0039] Fig. 9 It is a schematic diagram of a LevelDB data structure provided in an embodiment of the present application;
[0040] Fig.10 is a structural schematic diagram of a three-dimensional data acquisition device provided in an embodiment of the present application;
[0041] Fig.11 is a schematic diagram of the structure of a computing device cluster provided in an embodiment of the present application;
[0042] Fig.12 It is a structural diagram of another computing device cluster provided in an embodiment of the present application. DETAILED DESCRIPTION
[0043] In order to make the objectives, technical solutions and advantages of the embodiments of the present application clearer, the implementation methods of the present application will be further described in detail below in conjunction with the accompanying drawings.
[0044] Before explaining in detail the three-dimensional data acquisition method provided in the embodiment of the present application, the terms, application scenarios and implementation environment involved in the embodiment of the present application are first introduced.
[0045] First, the terms involved in the embodiments of the present application are introduced.
[0046] Content delivery network (CDN): An intelligent virtual network built on the existing network. It relies on edge servers deployed in various places and uses the load balancing, content distribution, and scheduling functions of the central platform to enable users to obtain the required content nearby, reduce network congestion, and improve user access response speed and hit rate. The key technologies of CDN mainly include content storage and distribution technologies.
[0047] Uniform Resource Locator (URL): A method of identifying the address of a web page or other resource on the Internet, also known as a "web address". All resources on the Internet have a unique URL address, which can be accessed by entering the URL in the address bar.
[0048] Index: A data structure that can improve the efficiency of database queries. It is built according to specific rules and algorithms. The index is equivalent to the directory of a dictionary, which helps to quickly find the corresponding records. Therefore, when searching for data, you can follow the index rules to quickly find the corresponding node storing the data, thereby achieving the effect of quickly finding data.
[0049] Secondly, the application scenarios involved in the embodiments of the present application are introduced.
[0050] 3D technology has the characteristics of virtual reality, instant interaction, lean efficiency and emotional sustenance. Therefore, 3D technology has been widely explored and applied in representative fields of the tertiary industry such as retail, culture, education, and entertainment. At the same time, 3D technology has gradually become a general technology in more industries. For example, in the fields of agriculture, manufacturing, and construction, an information exchange and sharing platform with 3D data as the core has emerged. This information exchange and sharing platform has the advantages of visualization, parameterization, and full-cycle interaction. For example, 3D fitting technology can create a 3D model of clothing. When a user wants to try on clothes, a 3D intelligent scanner measures the human body data. Then, the 3D fitting system will generate a 3D intelligent human body model based on the 3D model of the clothing and the human body data, thereby achieving the effect of 3D fitting. However, because different users have different body shapes and different requirements for clothing, there is a large amount of 3D model data. Therefore, how to share massive 3D data with multiple people has become an urgent problem to be solved.
[0051] Based on this, an embodiment of the present application provides a three-dimensional data acquisition method, which is based on a content distribution network and can provide high-performance, low-cost rapid distribution and sharing of three-dimensional data. Moreover, based on the network transmission protocol used, it can adapt to various business scenarios so that users can quickly obtain the required three-dimensional data.
[0052] Finally, the implementation environment involved in the embodiments of the present application is introduced.
[0053] Figure 1 This is a schematic diagram of the structure of an implementation environment provided by the embodiment of the present application. Figure 1 The implementation environment includes a content source station 101, multiple central nodes 102, multiple edge nodes 103, and multiple user terminals 104. The multiple central nodes 102 and the multiple edge nodes 103 are nodes included in a content distribution network.
[0054] The content source station 101 can be connected to multiple central nodes 102 for communication, multiple central nodes 102 can be connected to multiple edge nodes 103 for communication, multiple edge nodes 103 can be connected to multiple user terminals 104 for communication, and multiple central nodes 102 can also be connected to each other for communication. The communication connection can be a wired connection or a wireless connection, which is not limited in the embodiments of the present application.
[0055] The content source station 101 is used to provide a three-dimensional model and transmit the data of the three-dimensional model to the central node 102. The central node 102 distributes the data of the three-dimensional model in the content distribution network.
[0056] The edge node 103 refers to a node on the edge side of the network close to the user. The edge node 103 receives a data acquisition request sent by the user terminal 104. If the edge node 103 stores the data of the three-dimensional model, the data of the three-dimensional model can be directly sent to the user terminal 104; if the edge node 103 does not store the data of the three-dimensional model, the data of the three-dimensional model can be requested from the central node 102. When the central node 102 stores the data of the three-dimensional model, the data of the three-dimensional model is transmitted to the edge node 104. When the central node 102 does not store the data of the three-dimensional model, the data of the three-dimensional model is requested from other central nodes 102 or the content source station 101. After the edge node 103 obtains the data of the three-dimensional model required by the user terminal 104, the data of the three-dimensional model is cached and sent to the user terminal 104.
[0057] In some embodiments, please refer to Figure 2 The implementation environment further includes a plurality of secondary nodes 105, which are nodes included in the content distribution network and are used to receive data acquisition requests sent by the user terminal 104. The plurality of secondary nodes 105 can be communicatively connected with the plurality of edge nodes 103, and the plurality of edge nodes 103 can also be communicatively connected with each other, and the plurality of secondary nodes 105 can also be communicatively connected with each other. The communication connection can be a wired connection or a wireless connection, which is not limited in the embodiment of the present application.
[0058] exist Figure 2 In the implementation environment shown, if the edge node 103 does not store the data of the three-dimensional model, in addition to requesting the data of the three-dimensional model from the central node 102, it can also request the data of the three-dimensional model from other edge nodes 103. When other edge nodes 103 store the data of the three-dimensional model, the data is transmitted to the edge node 103. When other edge nodes 103 do not store the data of the three-dimensional model, the data of the three-dimensional model can be requested from the central node 102. After the edge node 103 obtains the data of the three-dimensional model required by the user terminal 104, the data of the three-dimensional model is cached and sent to the secondary node 105, so that the secondary node 105 sends the data of the three-dimensional model to the user terminal 104.
[0059] In some embodiments, the above implementation environment also includes a scheduling node, which is used to store back-to-source scheduling information. The back-to-source scheduling information is used to determine the node that needs to perform data back-to-source when the edge node 103 or the secondary node 105 does not store the data of the three-dimensional model. That is, the node for data back-to-source is determined through the back-to-source scheduling information, and then the data of the three-dimensional model is obtained from the node for data back-to-source.
[0060] It should be noted that the implementation environment described in the embodiments of the present application is for more clearly illustrating the technical solutions of the embodiments of the present application, and does not constitute a limitation on the technical solutions provided in the embodiments of the present application. A person of ordinary skill in the art can know that with the evolution of the system architecture, the technical solutions provided in the embodiments of the present application are also applicable to similar technical problems.
[0061] Please refer to Figure 3 , Figure 3 is a schematic diagram of a computing device according to an embodiment of the present application, and the computing device may be any computing device in a computing device cluster. The computing device may be Figure 1 The content source station 101, the central node 102, the edge node 103, and the user terminal 104 shown in FIG. Figure 2 The computing device includes at least one processor 301, a communication bus 302, a memory 303, and at least one communication interface 304. The computing device may be a server, a terminal device, or a network device. It should be understood that the present application does not limit the number of processors and memories in the computing device.
[0062] The processor 301 may be a general-purpose central processing unit (CPU), a network processor (NP), a microprocessor, or may be one or more integrated circuits for implementing the solution of the present application, such as an application-specific integrated circuit (ASIC), a programmable logic device (PLD) or a combination thereof. The above-mentioned PLD may be a complex programmable logic device (CPLD), a field-programmable gate array (FPGA), a generic array logic (GAL) or any combination thereof.
[0063] The communication bus 302 is used to transmit information between the above components. The communication bus 302 can be a peripheral component interconnect (PCI) bus or an extended industry standard architecture (EISA) bus. The communication bus 302 can be divided into an address bus, a data bus, a control bus, etc. For ease of representation, only one thick line is used in the figure, but it does not mean that there is only one bus or one type of bus.
[0064] The memory 303 may be a read-only memory (ROM), a random access memory (RAM), an electrically erasable programmable read-only memory (EEPROM), an optical disc (including a compact disc read-only memory (CD-ROM), a compressed optical disc, a laser disc, a digital versatile disc, a Blu-ray disc, etc.), a magnetic disk storage medium or other magnetic storage device, or any other medium that can be used to carry or store the desired program code in the form of instructions or data structures and can be accessed by a computer, but is not limited thereto. The memory 303 may exist independently and be connected to the processor 301 via the communication bus 302. The memory 303 may also be integrated with the processor 301.
[0065] The communication interface 304 uses any transceiver-like device for communicating with other devices or communication networks. The communication interface 304 includes a wired communication interface and may also include a wireless communication interface. Among them, the wired communication interface may be, for example, an Ethernet interface. The Ethernet interface may be an optical interface, an electrical interface, or a combination thereof. The wireless communication interface may be a wireless local area network (WLAN) interface, a cellular network communication interface, or a combination thereof, etc.
[0066] In some embodiments, the memory 303 is used to store program codes for executing the solution of the present application, and the processor 301 can execute the program codes stored in the memory 303. The program code 310 may include one or more modules, such as the functions of the receiving module, the acquiring module, and the sending module described below. The computing device may implement the following by means of the processor 301 and the program codes in the memory 303: Figure 4 The embodiment provides a method for acquiring three-dimensional data.
[0067] Figure 4 is a flowchart of a three-dimensional data acquisition method provided by an embodiment of the present application, the method is applied to a first node in a content distribution network, the content distribution network includes multiple nodes, and the first node is an edge node in the multiple nodes. Figure 4 , the method comprises the following steps.
[0068] Step 401: receiving a data acquisition request sent by a user terminal, the data acquisition request carrying a target URL and three-dimensional indication information, the target URL being the URL of a target virtual space, and the three-dimensional indication information indicating a target three-dimensional model in the target virtual space.
[0069] The target virtual space is the virtual space where the target three-dimensional model is located. The target virtual space can be a virtual three-dimensional space. The virtual three-dimensional space can be a virtual world or other virtual space. The target three-dimensional model can be a part or all of the three-dimensional area in the target virtual space. The target three-dimensional model can be a point, line, surface or polyhedron in the target virtual space. The embodiment of the present application does not limit the target virtual space and the target three-dimensional model.
[0070] The target URL is used to identify the target virtual space, and the three-dimensional indication information is used to identify the target three-dimensional model. If the user terminal needs to obtain data of a part of the three-dimensional area in the target virtual space, that is, the target three-dimensional model is a part of the three-dimensional area in the target virtual space, then the data acquisition request carries the target URL and the three-dimensional indication information; if the user terminal needs to obtain all the three-dimensional areas in the target virtual space, that is, the target three-dimensional model is all the three-dimensional areas in the target virtual space, then the data acquisition request can carry the target URL and the three-dimensional indication information, or can only carry the target URL without carrying the three-dimensional indication information. That is to say, in the case where the data acquisition request carries the target URL and the three-dimensional indication information, the target three-dimensional model can be part or all of the three-dimensional area in the target virtual space, and in the case where the data acquisition request carries the target URL but does not carry the three-dimensional indication information, the target three-dimensional model is the entire three-dimensional area in the target virtual space.
[0071] The data acquisition request may be a hypertext transfer protocol (HTTP) request, that is, the user terminal may use the HTTP network transmission protocol to acquire the three-dimensional data. Of course, the data acquisition request may also be a request of other transmission protocols, such as a file transfer protocol (FTP) request, which is not limited in the present embodiment of the application.
[0072] Take HTTP network transmission protocol as an example. Please refer to Figure 5 , the data acquisition request includes a request line, a request header and a blank line. The request line is located in the first line of the request message, and includes a request method, a request target and a version number, which are separated by spaces. The request method indicates what operation is performed on the target three-dimensional model, and commonly used ones are such as get (GET) and send (POST). The request method of the data acquisition request in the embodiment of the present application is GET, the request target is used to carry the target URL, and the version number indicates the HTTP protocol version used; the request header is located after the request line, and is used to carry three-dimensional indication information, and can also be used to carry other attribute information. In some embodiments, for example, when the request method is POST, the HTTP request also includes request data, and the request data indicates the data to be transmitted by HTTP.
[0073] It should be noted that in Figure 1 In the implementation environment shown, the first node is an edge node that is connected to the user terminal for communication. Figure 2 In the implementation environment shown, the first node is a secondary node that is communicatively connected to the user terminal. Of course, in other implementation environments, the first node may also be other nodes that are communicatively connected to the user terminal, and this embodiment of the present application does not limit this.
[0074] Step 402: Based on the target URL and the three-dimensional indication information, data of the target three-dimensional model is obtained.
[0075] In some embodiments, the target virtual space is divided into multiple three-dimensional slices, and the data of the multiple three-dimensional slices are stored in layers in a target data structure. The data of the target three-dimensional model can be obtained through the following steps (1)-(2).
[0076] (1) Based on the target URL and the three-dimensional indication information, at least one slice index is determined, where the at least one slice index refers to an index of at least one three-dimensional slice constituting the target three-dimensional model.
[0077] The target three-dimensional model can be a point, line, surface or polyhedron. When the target three-dimensional model is a point, a very short line segment, a very small surface or a very small polyhedron, a slice index may be determined based on the target URL and the three-dimensional indication information, that is, the target three-dimensional model includes a three-dimensional slice; when the target three-dimensional model is a long line segment, a large surface or a large polyhedron, multiple slice indexes may be determined based on the target URL and the three-dimensional indication information, that is, the target three-dimensional model includes multiple three-dimensional slices.
[0078] In an embodiment of the present application, the three-dimensional indication information can be represented in a variety of ways, such as a three-dimensional coordinate range, vertebral parameters, query conditions, etc. Next, taking the three-dimensional coordinate range, vertebral parameters, and query conditions as an example, the process of determining the at least one slice index is introduced through the following three implementation methods.
[0079] In a first implementation method, the three-dimensional indication information includes a three-dimensional coordinate range. At this time, based on the target URL and the three-dimensional coordinate range, at least one slice index is determined from the coordinate mapping relationship, and the coordinate mapping relationship is used to store the mapping relationship between the URL, the three-dimensional coordinates and the slice index.
[0080] Since the three-dimensional indication information includes a three-dimensional coordinate range, the three-dimensional coordinate range includes at least one three-dimensional coordinate, and the coordinate mapping relationship stores the mapping relationship between the URL, the three-dimensional coordinate and the slice index, it is possible to determine at least one corresponding slice index from the coordinate mapping relationship based on the target URL and at least one three-dimensional coordinate in the three-dimensional coordinate range.
[0081] As an example, if the target three-dimensional model is a partial three-dimensional area in the target virtual space, the three-dimensional coordinate range is a partial coordinate range in the target virtual space. For example, the three-dimensional indication information may be "3DRange: coords = [(x-x1, y-y1, z-z1)]", where 3DRange represents the three-dimensional area, coords represents the coordinate range, x-x1 represents the coordinate range of the target three-dimensional model on the x-axis, y-y1 represents the coordinate range of the target three-dimensional model on the y-axis, z-z1 represents the coordinate range of the target three-dimensional model on the z-axis, and x1 is greater than x, y1 is greater than y, and z1 is greater than z. Based on the target URL and three-dimensional coordinates (x, y, z), the slice index corresponding to the three-dimensional coordinates (x, y, z) can be determined from the coordinate mapping relationship as (i, j, k). Based on the target URL and three-dimensional coordinates (x1, y1, z1), the slice index corresponding to the three-dimensional coordinates (x1, y1, z1) can be determined from the coordinate mapping relationship as (i1, j1, k1). Similarly, the slice indexes corresponding to other three-dimensional coordinates in the three-dimensional coordinate range can be determined from the coordinate mapping relationship.
[0082] As another example, if the target three-dimensional model is the entire three-dimensional area in the target virtual space, the three-dimensional coordinate range is the entire coordinate range in the target virtual space. For example, the three-dimensional indication information can be "3DRange: coords = [(0-∞, 0-∞, 0-∞)]", or "3DRange: coords = [(0-x0, 0-y0, 0-z0)]", where 0-x0 represents the entire range of the target virtual space on the x axis, 0-y0 represents the entire range of the target virtual space on the y axis, and 0-z0 represents the entire range of the target virtual space on the z axis, that is, the entire three-dimensional coordinate range of the target virtual space included in the three-dimensional indication information.
[0083] The above three-dimensional coordinates may be coordinates in a world space position coordinate system (worldcoordinate) in the target virtual space, which is also called a measurement coordinate system and is a three-dimensional rectangular coordinate system. The world space position coordinate system may be freely determined according to actual conditions. Of course, the above three-dimensional coordinates may also be other coordinate systems, which are not limited in the embodiments of the present application.
[0084] In a second implementation method, the target three-dimensional model is a cone-shaped model, and the three-dimensional indication information includes cone parameters. At this time, based on the cone parameters, the three-dimensional coordinate range corresponding to the target three-dimensional model is determined. Based on the target URL and the three-dimensional coordinate range, at least one slice index is determined from the coordinate mapping relationship, and the coordinate mapping relationship is used to store the mapping relationship between the URL, three-dimensional coordinates and slice index.
[0085] Since the three-dimensional indication information includes cone parameters, indicating that the target three-dimensional model is cone-shaped, and the coordinate mapping relationship stores the mapping relationship between the URL, three-dimensional coordinates and slice index, but does not store the relationship between the cone parameters and the slice index, it is necessary to determine the three-dimensional coordinate range corresponding to the target three-dimensional model based on the cone parameters, and then determine at least one slice index from the coordinate mapping relationship based on the target URL and the three-dimensional coordinate range.
[0086] The cone-shaped three-dimensional model can be a cone-shaped model or a light cone-shaped model. Of course, it can also be other cone-shaped models. If the target three-dimensional model is a cone-shaped model, the cone parameters include the vertical field of view angle, the end face aspect ratio, the coordinates of the proximal face, and the coordinates of the distal face; wherein the vertical field of view angle refers to the angle between the two end faces in the vertical direction, the end face aspect ratio refers to the aspect ratio of the end face perpendicular to the specified coordinate axis, and the coordinates of the proximal face and the coordinates of the distal face are the coordinates on the specified coordinate axis. If the target three-dimensional model is a light cone-shaped model, the cone parameters include the angle of the cone angle, the diameter of the proximal face, and the diameter of the distal face.
[0087] For example, if the target 3D model is Figure 6 The cone-shaped model shown is also called a cone, which includes an upper end face, a lower end face, a left end face, a right end face, a near end face and a far end face. Please refer to Figure 6 , taking the direction from the origin to the viewing cone as the reference direction, the surface located on the upper side of the reference direction is the upper end surface, the surface located on the lower side of the reference direction is the lower end surface, the surface located on the left side of the reference direction is the left end surface, the surface located on the right side of the reference direction is the right end surface, the surface closer to the origin in the reference direction is the near end surface, and the surface farther from the origin in the reference direction is the far end surface. The three-dimensional indication information may be "3DRange: frustum = (fov, width / height, near, far)", where 3DRange represents the three-dimensional area, frustum represents the viewing cone, fov represents the vertical field of view angle of the viewing cone, that is, the angle between the upper end surface and the lower end surface, width / height represents the aspect ratio of the end surface, the end surface may be the near end surface, the far end surface and the end surface parallel to the near end surface of the viewing cone, near represents the coordinates of the near end surface of the viewing cone, and far represents the coordinates of the far end surface of the viewing cone. The coordinates of the proximal surface and the distal surface refer to the coordinates on a specified coordinate axis. The specified coordinate axis may be any coordinate axis in the three-dimensional coordinate axis, which may usually be set by default, but may also be specified by the user.
[0088] For example, if the three-dimensional indication information is "3DRange:frustum=(45, 1, 1, 1000)", assuming that the specified coordinate axis is the x-axis, it means that the vertical field of view angle of the viewing cone is 45 degrees, and the aspect ratio of its end faces is 1, that is, the near face, the far face, and the end faces parallel to the near face and the far face are all squares, the coordinate of the near face on the x-axis is 1, and the coordinate of the far face on the x-axis is 1000, that is, the near face and the far face of the viewing cone are 999 unit lengths apart.
[0089] For example, if the target 3D model is Figure 7 The light cone-shaped model shown is also called a light cone. The light cone includes a proximal surface, a distal surface and a side surface. Please refer to Figure 7 , taking the direction from the origin to the light cone as the reference direction, the surface closer to the origin in the reference direction is the proximal surface, the surface farther from the origin in the reference direction is the distal surface, and the surface connecting the proximal surface and the distal surface is the side surface. The three-dimensional indication information may be "3DRange:cone=(taper,near,far)", wherein 3DRange represents a three-dimensional area, cone represents the light cone, taper represents the angle of the cone angle of the light cone, also called the taper, near represents the diameter of the proximal surface of the light cone, and far represents the diameter of the distal surface of the light cone. For example, if the three-dimensional indication information is "3DRange:cone=(45,10,100)", it means that the taper of the light cone is 45 degrees, the diameter of the proximal surface is 10 unit lengths, and the diameter of the distal surface is 100 unit lengths.
[0090] The vertebral parameters can characterize the 3D region where the target 3D model is located. Therefore, the 3D coordinate range of the target 3D model can be determined by the vertebral parameters. Then, referring to the first implementation method mentioned above, at least one slice index is determined according to the target URL and the 3D coordinate range.
[0091] For the first and second implementations described above, before determining the at least one slice index from the coordinate mapping relationship, the target virtual space may be divided into multiple three-dimensional slices; the indexes of the multiple three-dimensional slices are set to obtain multiple slice indexes; according to the multiple slice indexes, the data of the multiple three-dimensional slices are stored in a target data structure; and the target URL, the three-dimensional coordinates of the multiple three-dimensional slices and the multiple slice indexes are stored in the coordinate mapping relationship.
[0092] The three-dimensional slice may be a three-dimensional volume element, also called a voxel. It may be divided according to the volume of the target virtual space to obtain a plurality of three-dimensional slices. Of course, in practical applications, the target virtual space may also be divided according to other dimensions, which is not limited in the embodiments of the present application. The indexes of the plurality of three-dimensional slices may be set according to certain rules, as long as the indexes of different three-dimensional slices are different, which is not specifically limited in the embodiments of the present application.
[0093] The target data structure can be Figure 8 The tree data structure shown can also be Fig. 9 That is, the data of the multiple three-dimensional slices can be Figure 8 The tree-like data structure shown in FIG. 1 is hierarchically stored. The format of the three-dimensional slice data stored in this structure can also be called volumetric data blocks (VDB) format. The multiple three-dimensional slices can also be stored in the following manner: Fig. 9 The data structure shown is stored in layers, and the format of the three-dimensional slice data stored in this structure can also be called a level data block (LevelDB) format.
[0094] It should be noted that the target data structure can be Figure 8 The tree data structure shown or Fig. 9 In addition to the data structure shown, other data structures capable of hierarchical storage may also be used. The format of the three-dimensional slice data may be in other formats besides the VDB format or the LevelDB format, and the embodiments of the present application do not limit this.
[0095] Since the target data structure is used to store data in a hierarchical manner, in this hierarchical data storage structure, the last layer structure is usually used to store specific data content, and other layer structures are used to store the pointing relationship between the current layer and the next layer, and data from different virtual spaces can be stored in the same data structure. Therefore, storing data through a hierarchical storage structure can reduce the storage space occupied.
[0096] In a third implementation method, the three-dimensional indication information includes a query condition. In this case, based on the target URL and the query condition, a slice index satisfying the query condition is determined from a conditional mapping relationship to obtain at least one slice index. The conditional mapping relationship is used to store a mapping relationship among URLs, slice attributes, and slice indexes.
[0097] The query condition is used to indicate the conditions satisfied by the target three-dimensional model, and the condition mapping relationship stores the mapping relationship between the URL, slice attributes and slice index. Therefore, based on the target URL and the query condition, the slice index whose slice attributes satisfy the query condition can be directly determined from the condition mapping relationship.
[0098] As an example, the three-dimensional indication information is "3DRange:queries=(xxxxx)", where 3DRange represents a three-dimensional region, queries represents a query condition, and based on the target URL and the query condition, a slice index whose slice attribute satisfies the query condition can be determined from the condition mapping relationship. For example, if the three-dimensional indication information is "3DRange:queries=(cube)", then based on the "cube" in the query condition and the target URL, a slice index of a three-dimensional slice with a shape of "cube" can be determined from the condition mapping relationship.
[0099] The conditional mapping relationship can be in the same mapping relationship as the above-mentioned coordinate mapping relationship, that is, the mapping relationship stores the mapping relationship of the URL, three-dimensional coordinates, slice attributes and slice indexes. Therefore, when determining at least one slice index through the above three implementation methods, it is only necessary to determine the at least one slice index from the same mapping relationship, and there is no need to determine it from different mapping relationships according to the representation of the three-dimensional indication information. Moreover, the two mapping relationships are integrated together to avoid repeated storage of some information, thereby reducing the storage space occupied. Of course, the conditional mapping relationship and the above-mentioned coordinate mapping relationship can also be two different mapping relationships. Therefore, the at least one slice index can be determined from different mapping relationships based on the representation of the three-dimensional indication information. Moreover, each mapping relationship stores less data, which can improve the query speed of the mapping relationship.
[0100] For the third implementation method mentioned above, before determining the at least one slice index from the conditional mapping relationship, the target virtual space can also be divided into multiple three-dimensional slices; the indexes of the multiple three-dimensional slices are set to obtain multiple slice indexes; according to the multiple slice indexes, the data of the multiple three-dimensional slices are stored in the target data structure; the target URL, the attribute information of the multiple three-dimensional slices and the multiple slice indexes are stored in the conditional mapping relationship.
[0101] The attribute information of the 3D slice may be the volume size, shape, type, etc. of the 3D model to which the 3D slice belongs. Moreover, the attribute information of some of the multiple 3D slices may be the same, or the attribute information of each 3D slice may be different. Of course, the attribute information of the multiple 3D slices may also be other attributes of the 3D slice, which is not limited in the embodiment of the present application.
[0102] For information about the division of three-dimensional slices, the setting of slice indexes, and the target data structure, please refer to the above description and will not be repeated here.
[0103] Through the above three implementation methods, three-dimensional indication information with different representation methods can be used to determine at least one slice index, thereby enhancing the flexibility of determining the slice index. At the same time, since the representation methods of the three-dimensional indication information sent by different user terminals may be different, based on the above three implementation methods, various needs of different user terminals can be met, and the scope of application is wider.
[0104] (2) Based on the at least one slice index, a hierarchical search is performed in the target data structure to obtain data of the at least one three-dimensional slice.
[0105] Since the target virtual space is divided into multiple three-dimensional slices, and the target data structure is used to hierarchically store the data of the multiple three-dimensional slices, and based on the above description, the target three-dimensional model may include one three-dimensional slice or multiple three-dimensional slices. If the target three-dimensional model includes one three-dimensional slice, a hierarchical search is performed in the target data structure according to the slice index to obtain the data of one three-dimensional slice as the data of the target three-dimensional model; if the target three-dimensional model includes multiple three-dimensional slices, a hierarchical search is performed in the target data structure according to the multiple slice indexes to respectively obtain the data of multiple three-dimensional slices corresponding to the multiple slice indexes, and the data corresponding to the data of the multiple three-dimensional slices are integrated to obtain the data of the target three-dimensional model.
[0106] The above content is to store the data of the three-dimensional slice in the target data structure, store the three-dimensional coordinates of the three-dimensional slice in the coordinate mapping relationship or store the attribute information of the three-dimensional slice in the condition mapping relationship, so as to achieve the acquisition of the data of the target three-dimensional model. Of course, the attribute information of the three-dimensional slice can also be stored in the target data structure. In this way, when the three-dimensional indication information includes the query condition, not only can at least one slice index be determined by the third implementation method mentioned above, so as to obtain the data of the target three-dimensional model according to the above step (2), but also the data of the target three-dimensional model can be obtained by other methods.
[0107] That is, in some other embodiments, the target virtual space is divided into multiple three-dimensional slices, and the data and attribute information of the multiple three-dimensional slices are stored in a hierarchical manner in a target data structure; the three-dimensional indication information includes a query condition; at this time, based on the target URL and the three-dimensional indication information, the implementation process of obtaining the data of the target three-dimensional model includes: determining multiple slice indexes based on the target URL, and the multiple slice indexes refer to indexes of multiple three-dimensional slices; based on the multiple slice indexes, performing a hierarchical search in the target data structure to obtain the data of the multiple three-dimensional slices and the attribute information of each three-dimensional slice; based on the attribute information of the multiple three-dimensional slices, filtering out the three-dimensional slices that meet the query condition from the multiple three-dimensional slices, and using the data of the filtered three-dimensional slices as the data of the target three-dimensional model.
[0108] Among them, the implementation process of determining multiple slice indexes based on the target URL includes: based on the target URL, determining the multiple slice indexes from the conditional mapping relationship. At this time, the conditional mapping relationship stores the mapping relationship between the target URL and the slice indexes of all three-dimensional slices in the target virtual space.
[0109] Since the data and attribute information of the multiple three-dimensional slices are hierarchically stored in the target data structure, and the three-dimensional indication information includes the query condition, it is not necessary to query the attribute information of the three-dimensional slice from the conditional mapping relationship, and the attribute information of the three-dimensional slice can be obtained while obtaining the data of the three-dimensional slice from the target data structure. Of course, the attribute information of the three-dimensional slice may not be stored in the conditional mapping relationship, thereby reducing the storage space occupied by the conditional mapping relationship.
[0110] Since the three-dimensional indication information includes a query condition, and the query condition is used to indicate the attribute satisfied by the target three-dimensional model, the attribute information of the multiple three-dimensional slices can be compared with the query condition to screen out the three-dimensional slices whose attribute information satisfies the query condition. If only one three-dimensional slice satisfies the query condition, the data of the three-dimensional slice is used as the data of the target three-dimensional model; if multiple three-dimensional slices satisfy the query condition, the data of the multiple three-dimensional slices are integrated into the data of the target three-dimensional model.
[0111] Continuing with the above description, before obtaining the data of the multiple three-dimensional slices and the attribute information of each three-dimensional slice from the target data structure, the target virtual space can also be divided into multiple three-dimensional slices; the indexes of the multiple three-dimensional slices are set to obtain multiple slice indexes; and according to the multiple slice indexes, the data of the multiple three-dimensional slices and the attribute information of each three-dimensional slice are stored in the target data structure.
[0112] For information about the division of three-dimensional slices, setting of slice indexes, attribute information, and target data structure, please refer to the above description, which will not be repeated here.
[0113] Step 403: Send the data of the target three-dimensional model to the user terminal.
[0114] After receiving the data of the target three-dimensional model, the user terminal may render and display the target three-dimensional model, and may also perform other operations based on the data of the target three-dimensional model, which is not limited in this embodiment of the present application.
[0115] The above is the implementation process of the first node obtaining the data of the target three-dimensional model from the cached three-dimensional data. However, based on the above description, the first node is a node in the content distribution network that is connected to the user terminal for communication, and is not a central node that is connected to the content source station for communication. In this way, it may happen that the first node does not cache the data of the target three-dimensional model. Therefore, in some embodiments, if the data of the target three-dimensional model is cached in the first node, the data of the target three-dimensional model is obtained from the three-dimensional data cached by the first node based on the target URL and the three-dimensional indication information; if all the data of the target three-dimensional model is not cached in the first node, then based on the characteristics of the target three-dimensional model, the second node is determined from the multiple nodes included in the content distribution network, and based on the target URL and the three-dimensional indication information, the data of the target three-dimensional model is obtained from the three-dimensional data cached by the second node.
[0116] Based on the above description, the first node is an edge node or a secondary node in the content distribution network. Usually, the edge node or the secondary node is closer to the user terminal. Therefore, when the data of the target three-dimensional model is cached in the first node, the data of the target three-dimensional model is directly obtained from the first node, which can improve the efficiency of data acquisition. When the data of the target three-dimensional model is not cached in the first node, in order to quickly and accurately obtain the data of the target three-dimensional model, the second node can be determined from multiple nodes other than the first node based on the characteristics of the target three-dimensional model, and then the data of the target three-dimensional model can be obtained through the second node.
[0117] In some embodiments, the content distribution network also includes a scheduling node; the implementation process of determining the second node from multiple nodes included in the content distribution network based on the characteristics of the target three-dimensional model includes: if the first node has source return scheduling information cached, then based on the characteristics of the target three-dimensional model, the second node is determined from the source return scheduling information, and the source return scheduling information is used to indicate the nodes for data return to the source for three-dimensional models with different characteristics; if the first node does not have the source return scheduling information cached, the source return scheduling information is obtained from the scheduling node, and based on the characteristics of the target three-dimensional model, the second node is determined from the source return scheduling information.
[0118] In order to quickly determine the second node from the back-to-source scheduling information, therefore, when the back-to-source scheduling information is cached in the first node, the second node can be determined from the back-to-source scheduling information based on the characteristics of the target three-dimensional model. In the case where the first node does not cache the back-to-source scheduling information, the back-to-source scheduling information can be obtained from the scheduling node so that the first node caches the back-to-source scheduling information and determines the second node from the back-to-source scheduling information based on the characteristics of the target three-dimensional model. Of course, in the case where the first node does not cache the back-to-source scheduling information, a second node determination request can also be sent to the scheduling node, and the second node determination request carries the characteristics of the target three-dimensional model, so that the scheduling node determines the second node from the back-to-source scheduling information based on the characteristics of the target three-dimensional model, and sends the identifier of the second node to the first node.
[0119] The first node is a node that is connected to the user terminal for communication. If the first node does not cache the data of the target three-dimensional model, it is necessary to return the data to the source, that is, determine the second node, and obtain the data of the target three-dimensional model through the second node. The second node can be a node connected to the first node and located at the same layer as the first node, or a node connected to the first node and located at the upper layer of the first node. For example, if the first node is an edge node in a content distribution network, the second node can be other edge nodes connected to the edge node, or a central node connected to the edge node and located at the upper layer of the edge node; if the first node is a secondary node in a content distribution network, the second node can be other secondary nodes connected to the secondary node, or an edge node connected to the secondary node and located at the upper layer of the secondary node.
[0120] Since the back-to-source scheduling information is used to indicate the nodes for data back-to-source of three-dimensional models with different characteristics, that is, when the characteristics of the three-dimensional model are different, the nodes for data back-to-source may be different. The characteristics of the three-dimensional model may be the volume of the three-dimensional model, the hot and cold properties of the data, and so on. For example, if the characteristic of the three-dimensional model is the volume of the three-dimensional model, the back-to-source scheduling information may indicate: the data back-to-source node of the three-dimensional model whose volume is greater than the volume threshold is the node of the previous layer, and the data back-to-source node of the three-dimensional model whose volume is not greater than the volume threshold is the node of the same layer. If the characteristic of the three-dimensional model is the hot and cold properties of the data, the back-to-source scheduling information may indicate: the data back-to-source node of the three-dimensional model belonging to cold data is the node of the previous layer, and the data back-to-source node of the three-dimensional model belonging to hot data is the node of the same layer.
[0121] As an example, if the volume of the target 3D model is greater than the volume threshold, the node connected to the first node and located on the upper layer of the first node is determined as the second node through the back-source scheduling information. If the volume of the target 3D model is not greater than the volume threshold, the node connected to the first node and located on the same layer is determined as the second node through the back-source scheduling information.
[0122] When the volume of the target 3D model is large, compared with the nodes on the same layer connected to the first node, the nodes on the upper layer connected to the first node store more 3D data and have a lower load, and can respond to the first node in a timely manner. Therefore, the node on the upper layer connected to the first node can be determined as the second node. When the volume of the target 3D model is small, in order to reduce the transmission delay of the data of the target 3D model, the nodes on the same layer connected to the first node can be determined as the second node.
[0123] As another example, if the data of the target 3D model is cold data, the node connected to the first node and located in the upper layer of the first node is determined as the second node through the back-source scheduling information. If the data of the target 3D model is hot data, the node connected to the first node and located in the same layer is determined as the second node through the back-source scheduling information.
[0124] When the data of the target three-dimensional model is cold data, it can be inferred that the nodes on the same layer connected to the first node have a high probability of not receiving a data acquisition request for the target three-dimensional model, that is, the nodes on the same layer have a high probability of not caching the data of the target three-dimensional model. Therefore, the upper node connected to the first node can be determined as the second node to improve the efficiency of data acquisition. When the data of the target three-dimensional model is hot data, it can be inferred that the nodes on the same layer connected to the first node have a high probability of receiving a data acquisition request for the target three-dimensional model, that is, the nodes on the same layer have a high probability of caching the data of the target three-dimensional model. Therefore, the nodes on the same layer connected to the first node can be determined as the second node to reduce the transmission delay of the three-dimensional model data.
[0125] It should be noted that cold data is data that is requested less frequently by a user terminal, and hot data is data that is requested more frequently by a user terminal. The characteristics of a three-dimensional model may include not only volume and data hot and cold properties, but also other characteristics. The storage medium for caching three-dimensional data in multiple nodes of a content distribution network may be a memory, a solid state drive (SSD), a disk, etc., which is not limited in the embodiments of the present application.
[0126] When obtaining the data of the target three-dimensional model through the second node, it can be determined whether the data of the target three-dimensional model is cached in the second node. If the data of the target three-dimensional model is cached in the second node, the data of the target three-dimensional model is directly obtained from the second node. If the data of the target three-dimensional model is not cached in the second node, the second node can also determine the third node based on the characteristics of the target three-dimensional model, and so on, until the data of the target three-dimensional model is obtained. Among them, the method of determining the third node is the same as the method of determining the second node mentioned above, and will not be repeated here.
[0127] After the first node obtains the data of the target three-dimensional model through the second node, the first node can cache the data of the target three-dimensional model, so that when the first node receives the data acquisition request of the target three-dimensional model sent by the user terminal again, the data can be directly sent to the user terminal without the need to return the data to the source, thereby enabling the user terminal to quickly obtain the data of the target three-dimensional model.
[0128] If, during the process of returning data to the source through the above method, it is determined that the data of the target 3D model is not cached in all nodes of the content distribution network, the data of the target 3D model can be obtained at the content source station.
[0129] In the embodiment of the present application, since the content distribution network can obtain the data required by the user nearby, sending three-dimensional data to the user terminal through the content distribution network can improve the distribution speed of the three-dimensional data. Moreover, the edge node closest to the user terminal is used as the first node, and the three-dimensional data required by the user is cached in the first node, which can improve the efficiency of the user terminal in obtaining three-dimensional data. Since the three-dimensional indication information can be represented in a variety of different ways, the user terminal can obtain the required three-dimensional model data according to its own needs, reducing the limitations of the data acquisition request; at the same time, the data acquisition request can be based on a variety of network transmission protocols to obtain three-dimensional data. Therefore, the method provided in the embodiment of the present application is adapted to various business scenarios and has a wide range of applications. In addition, the target virtual space is divided into multiple three-dimensional slices, and the data of the multiple three-dimensional slices are stored in layers according to the corresponding slice indexes, which can reduce the storage space occupied; hierarchical search of three-dimensional slices based on slice indexes can improve the query speed and optimize the query performance; when the data of the target three-dimensional model is cached in the first node, the user terminal directly obtains the data of the target three-dimensional model from the first node, which can improve the data acquisition efficiency and save network transmission costs; when the data of the target three-dimensional model is not cached in the first node, the second node can be determined based on the characteristics of the three-dimensional model, and the second node can be a node of the same layer or an upper layer connected to the first node. Therefore, the embodiment of the present application can not only return data upward, but also return data to the left and right, which increases the way of returning data to the source. In summary, the embodiment of the present application provides a high-performance, low-cost method for rapid distribution and sharing of three-dimensional data.
[0130] Fig.10 is a schematic diagram of the structure of a three-dimensional data acquisition device provided in an embodiment of the present application. The three-dimensional data acquisition device can be implemented by software, hardware or a combination of both to become part or all of the first node. The first node can be Figure 3 The computing device shown. Fig.10 The device includes: a receiving module 1001, an acquiring module 1002 and a sending module 1003.
[0131] The receiving module 1001 is used to receive a data acquisition request sent by a user terminal. The data acquisition request carries a target uniform resource locator URL and three-dimensional indication information. The target URL is the URL of the target virtual space. The three-dimensional indication information indicates the target three-dimensional model in the target virtual space. For detailed implementation process, please refer to the above Figure 4 The relevant description in step 401 in the illustrated embodiment.
[0132] The acquisition module 1002 is used to acquire the data of the target 3D model based on the target URL and the 3D indication information; please refer to the above for the detailed implementation process Figure 4 The relevant description in step 402 in the illustrated embodiment.
[0133] The sending module 1003 is used to send the data of the target three-dimensional model to the user terminal. Please refer to the above for the detailed implementation process Figure 4 The relevant description in step 403 in the illustrated embodiment.
[0134] Optionally, the acquisition module 1002 includes:
[0135] The first determination submodule is used to determine the second node from multiple nodes based on the characteristics of the target three-dimensional model if all the data of the target three-dimensional model is not cached in the first node, and obtain the data of the target three-dimensional model from the three-dimensional data cached by the second node based on the target URL and the three-dimensional indication information.
[0136] Optionally, the content distribution network further includes a scheduling node; and the first determining submodule is specifically configured to:
[0137] If the first node has back-to-source scheduling information cached in it, then based on the characteristics of the target three-dimensional model, a second node is determined from the back-to-source scheduling information, where the back-to-source scheduling information is used to indicate nodes for data back-to-source for three-dimensional models with different characteristics;
[0138] If the back-to-source scheduling information is not cached in the first node, the back-to-source scheduling information is obtained from the scheduling node, and the second node is determined from the back-to-source scheduling information based on the characteristics of the target three-dimensional model.
[0139] Optionally, the target virtual space is divided into a plurality of three-dimensional slices, and the data of the plurality of three-dimensional slices are stored in layers in a target data structure; the acquisition module 1002 includes:
[0140] A second determination submodule is configured to determine at least one slice index based on the target URL and the three-dimensional indication information, where the at least one slice index refers to an index of at least one three-dimensional slice constituting the target three-dimensional model;
[0141] The first search submodule is used to perform a hierarchical search in the target data structure based on the at least one slice index to obtain data of the at least one three-dimensional slice.
[0142] Optionally, the three-dimensional indication information includes a three-dimensional coordinate range; and the second determining submodule is specifically configured to:
[0143] Based on the target URL and the three-dimensional coordinate range, the at least one slice index is determined from a coordinate mapping relationship, where the coordinate mapping relationship is used to store a mapping relationship between the URL, the three-dimensional coordinates, and the slice index.
[0144] Optionally, the target three-dimensional model is a vertebral model, and the three-dimensional indication information includes vertebral parameters; the second determination submodule is specifically used to:
[0145] Based on the vertebral body parameters, determine the three-dimensional coordinate range corresponding to the target three-dimensional model;
[0146] Based on the target URL and the three-dimensional coordinate range, at least one slice index is determined from a coordinate mapping relationship, and the coordinate mapping relationship is used to store a mapping relationship between the URL, the three-dimensional coordinates and the slice index.
[0147] Optionally, the device further comprises:
[0148] A first division module, used for dividing the target virtual space into a plurality of three-dimensional slices;
[0149] A first setting module, used for setting the indexes of the plurality of three-dimensional slices to obtain a plurality of slice indexes;
[0150] A first storage module, configured to store the data of the plurality of three-dimensional slices into a target data structure according to the plurality of slice indexes;
[0151] The second storage module is used to store the target URL, the three-dimensional coordinates of the multiple three-dimensional slices and the multiple slice indexes in the coordinate mapping relationship.
[0152] Optionally, the three-dimensional indication information includes a query condition; and the second determining submodule is specifically configured to:
[0153] Based on the target URL and the query condition, the slice index that meets the query condition is determined from the conditional mapping relationship to obtain at least one slice index. The conditional mapping relationship is used to store the mapping relationship between the URL, slice attributes and slice index.
[0154] Optionally, the device further comprises:
[0155] A second division module is used to divide the target virtual space into a plurality of three-dimensional slices;
[0156] A second setting module, used for setting the indexes of the plurality of three-dimensional slices to obtain a plurality of slice indexes;
[0157] A third storage module, configured to store the data of the plurality of three-dimensional slices into a target data structure according to the plurality of slice indexes;
[0158] The fourth storage module is used to store the target URL, the attribute information of the multiple three-dimensional slices and the multiple slice indexes in the conditional mapping relationship.
[0159] Optionally, the target virtual space is divided into a plurality of three-dimensional slices, and the data and attribute information of the plurality of three-dimensional slices are hierarchically stored in a target data structure; the three-dimensional indication information includes a query condition; the acquisition module 1002 includes:
[0160] A third determination submodule is used to determine a plurality of slice indexes based on the target URL, where the plurality of slice indexes refer to indexes of a plurality of three-dimensional slices;
[0161] A second search submodule is used to perform hierarchical search in the target data structure based on the multiple slice indexes to obtain data of the multiple three-dimensional slices and attribute information of each three-dimensional slice;
[0162] The screening submodule is used to screen out three-dimensional slices that meet the query condition from the multiple three-dimensional slices based on the attribute information of the multiple three-dimensional slices, and use the data of the screened three-dimensional slices as the data of the target three-dimensional model.
[0163] In the embodiment of the present application, the edge node closest to the user terminal is used as the first node, and the data required by the user is cached in the first node, which can improve the efficiency of the user terminal in obtaining three-dimensional data. Since the three-dimensional indication information can be represented in a variety of different ways, the user terminal can obtain the required three-dimensional model data according to its own needs, reducing the limitations of the data acquisition request; at the same time, the data acquisition request can be based on a variety of network transmission protocols to obtain three-dimensional data. Therefore, the method provided in the embodiment of the present application is adapted to various business scenarios and has a wide range of applications. In addition, the target virtual space is divided into multiple three-dimensional slices, and the data of the multiple three-dimensional slices are stored in layers according to the corresponding slice indexes, which can reduce the storage space occupied; hierarchical search of three-dimensional slices based on slice indexes can improve the query speed and optimize the query performance; when the data of the target three-dimensional model is cached in the first node, the user terminal directly obtains the data of the target three-dimensional model from the first node, which can improve the data acquisition efficiency and save network transmission costs; when the data of the target three-dimensional model is not cached in the first node, the second node can be determined based on the characteristics of the three-dimensional model, and the second node can be a node of the same layer or an upper layer connected to the first node. Therefore, the embodiment of the present application can not only return data upward, but also return data to the left and right, which increases the way of returning data to the source. In summary, the embodiment of the present application provides a high-performance, low-cost method for rapid distribution and sharing of three-dimensional data.
[0164] It should be noted that: the three-dimensional data acquisition device provided in the above embodiment only uses the division of the above functional modules as an example to illustrate when acquiring three-dimensional data. In actual applications, the above functions can be assigned to different functional modules as needed, that is, the internal structure of the device is divided into different functional modules to complete all or part of the functions described above. In addition, the three-dimensional data acquisition device provided in the above embodiment and the three-dimensional data acquisition method embodiment belong to the same concept. The specific implementation process is detailed in the method embodiment and will not be repeated here.
[0165] In some embodiments, the receiving module 1001, the acquisition module 1002 and the sending module 1003 can be implemented by software or by hardware. Exemplarily, the implementation of the receiving module 1001 is described below by taking the receiving module 1001 as an example. Similarly, the implementation of the acquisition module 1002 and the sending module 1003 can refer to the implementation of the receiving module.
[0166] As an example of a software functional unit, a receiving module may include code running on a computing instance. The computing instance may include at least one of a physical host (computing device), a virtual machine, and a container. Furthermore, the computing instance may be one or more. For example, the receiving module may include code running on multiple hosts / virtual machines / containers. It should be noted that the multiple hosts / virtual machines / containers used to run the code may be distributed in the same region or in different regions. Furthermore, the multiple hosts / virtual machines / containers used to run the code may be distributed in the same availability zone (AZ) or in different AZs, each AZ including one data center or multiple data centers with similar geographical locations. Generally, a region may include multiple AZs.
[0167] Similarly, multiple hosts / virtual machines / containers used to run the code can be distributed in the same virtual private cloud (VPC) or in multiple VPCs. Usually, a VPC is set up in a region. For cross-region communication between two VPCs in the same region and between VPCs in different regions, a communication gateway needs to be set up in each VPC to achieve interconnection between VPCs through the communication gateway.
[0168] As an example of a hardware functional unit, the receiving module may include at least one computing device, such as a server, etc. Alternatively, the receiving module may also be a device implemented using an application-specific integrated circuit (ASIC) or a programmable logic device (PLD). The PLD may be a complex programmable logical device (CPLD), a field-programmable gate array (FPGA), a generic array logic (GAL) or any combination thereof.
[0169] The multiple computing devices included in the receiving module can be distributed in the same region or in different regions. The multiple computing devices included in the receiving module can be distributed in the same AZ or in different AZs. Similarly, the multiple computing devices included in the receiving module can be distributed in the same VPC or in multiple VPCs. The multiple computing devices can be any combination of computing devices such as servers, ASICs, PLDs, CPLDs, FPGAs, and GALs.
[0170] It should be noted that, in other embodiments, the steps that the receiving module, the acquisition module, and the sending module are responsible for implementing can be specified as needed, and the full functions of the three-dimensional data acquisition device can be realized by respectively implementing different steps in the three-dimensional data acquisition method through the receiving module, the acquisition module, and the sending module.
[0171] The embodiment of the present application also provides a computing device cluster. The computing device cluster includes at least one computing device. The computing device can be a server, such as a central server, an edge server, or a local server in a local data center. In some embodiments, the computing device can also be a terminal device such as a desktop computer, a laptop computer, or a smart phone.
[0172] like Fig.11 As shown, the computing device cluster includes at least one computing device. The memory 303 in one or more computing devices in the computing device cluster may store the same instructions for executing the three-dimensional data acquisition method.
[0173] In some possible implementations, the memory 303 of one or more computing devices in the computing device cluster may also store partial instructions for executing the three-dimensional data acquisition method. In other words, a combination of one or more computing devices may jointly execute instructions for executing the three-dimensional data acquisition method.
[0174] It should be noted that the memory 303 in different computing devices in the computing device cluster can store different instructions, which are respectively used to execute part of the functions of the three-dimensional data acquisition device. That is, the instructions stored in the memory 303 in different computing devices can implement the functions of one or more modules among the receiving module, the acquisition module and the sending module.
[0175] In some possible implementations, one or more computing devices in the computing device cluster may be connected via a network, which may be a wide area network or a local area network. Fig.12 A possible implementation is shown. Fig.12 As shown, the two computing devices are connected via a network. Specifically, the network is connected via a communication interface in each computing device. In this type of possible implementation, the memory 303 in one of the computing devices stores instructions for executing the functions of the receiving module. At the same time, the memory 303 in the other computing device stores instructions for executing the functions of the acquisition module and the receiving module.
[0176] Fig.12 The connection method between the computing device clusters shown may be that considering that the three-dimensional data acquisition method provided in the present application requires a large amount of data storage and acquisition, it is considered to hand over the functions implemented by the acquisition module and the receiving module to another computing device for execution.
[0177] It should be understood that Fig.12 The functions of the computing device shown in the figure may also be performed by multiple computing devices.
[0178] The present application embodiment also provides another computing device cluster. The connection relationship between the computing devices in the computing device cluster can be similar to that of Fig.11 and Fig.12 The connection mode of the computing device cluster is different in that the memory 303 in one or more computing devices in the computing device cluster may store the same instructions for executing the three-dimensional data acquisition method.
[0179] In some possible implementations, the memory 303 of one or more computing devices in the computing device cluster may also store partial instructions for executing the three-dimensional data acquisition method. In other words, a combination of one or more computing devices may jointly execute instructions for executing the three-dimensional data acquisition method.
[0180] It should be noted that the memory 303 in different computing devices in the computing device cluster can store different instructions for executing some functions of the content distribution network. That is, the instructions stored in the memory 303 in different computing devices can implement the functions of one or more devices in the edge node, the secondary node, and the central node.
[0181] The embodiment of the present application also provides a computer-readable storage medium. The computer-readable storage medium can be any available medium that can be stored by the computing device cluster or a data storage device such as a data center containing one or more available media. The available medium can be a magnetic medium (e.g., a floppy disk, a hard disk, a tape), an optical medium (e.g., a DVD), or a semiconductor medium (e.g., a solid-state hard disk). The computer-readable storage medium includes instructions that instruct the computing device cluster to execute the above-mentioned three-dimensional data acquisition method.
[0182] The embodiment of the present application also provides a computer program product including instructions. The computer program product may be a software or program product including instructions that can be run on a computing device cluster or stored in any available medium. When the computer program product is run on a computing device cluster, the computing device cluster executes the above-mentioned three-dimensional data acquisition method.
[0183] In the above embodiments, it can be implemented in whole or in part by software, hardware, firmware or any combination thereof. When implemented using software, it can be implemented in whole or in part in the form of a computer program product. The computer program product includes one or more computer instructions. When the computer instructions are loaded and executed on a computer, the process or function described in the embodiment of the present application is generated in whole or in part. The computer can be a general-purpose computer, a special-purpose computer, a computer network or other programmable device. The computer instructions can be stored in a computer-readable storage medium, or transmitted from one computer-readable storage medium to another computer-readable storage medium. For example, the computer instructions can be transmitted from a website site, computer, server or data center by wired (e.g., coaxial cable, optical fiber, digital subscriber line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) mode to another website site, computer, server or data center. The computer-readable storage medium can be any available medium that a computer can access, or a data storage device such as a server or data center that includes one or more available media integrated. The available medium may be a magnetic medium (e.g., a floppy disk, a hard disk, a magnetic tape), an optical medium (e.g., a digital versatile disc (DVD)), or a semiconductor medium (e.g., a solid state disk (SSD)). It is worth noting that the computer-readable storage medium mentioned in the embodiment of the present application may be a non-volatile storage medium, in other words, a non-transient storage medium.
[0184] It should be understood that the "multiple" mentioned herein refers to two or more. In the description of the embodiments of the present application, unless otherwise specified, " / " means or, for example, A / B can mean A or B; "and / or" in this article is only a description of the association relationship of the associated objects, indicating that there can be three relationships, for example, A and / or B can mean: A exists alone, A and B exist at the same time, and B exists alone. In addition, in order to facilitate the clear description of the technical solution of the embodiments of the present application, in the embodiments of the present application, the words "first", "second" and the like are used to distinguish between the same items or similar items with basically the same functions and effects. Those skilled in the art can understand that the words "first", "second" and the like do not limit the quantity and execution order, and the words "first", "second" and the like do not limit them to be necessarily different.
[0185] It should be noted that the information (including but not limited to user device information, user personal information, etc.), data (including but not limited to data used for analysis, stored data, displayed data, etc.) and signals involved in the embodiments of the present application are all authorized by the user or fully authorized by all parties, and the collection, use and processing of relevant data need to comply with relevant laws, regulations and standards of relevant countries and regions.
[0186] The above-mentioned embodiments are provided for the present application and are not intended to limit the present application. Any modifications, equivalent substitutions, improvements, etc. made within the spirit and principles of the present application shall be included in the protection scope of the present application.
Claims
1. A three-dimensional data acquisition method, characterized in that: The method is applied to a first node in a content distribution network, wherein the content distribution network includes a plurality of nodes, and the first node is an edge node among the plurality of nodes; the method includes: receiving a data acquisition request sent by a user terminal, the data acquisition request carrying a target uniform resource locator URL and three-dimensional indication information, the target URL being a URL of a target virtual space, and the three-dimensional indication information indicating a target three-dimensional model in the target virtual space; Based on the target URL and the three-dimensional indication information, acquiring data of the target three-dimensional model; The data of the target three-dimensional model is sent to the user terminal.
2. The method according to claim 1, characterized in that The acquiring the data of the target three-dimensional model based on the target URL and the three-dimensional indication information includes: If all the data of the target three-dimensional model is not cached in the first node, a second node is determined from the multiple nodes based on the characteristics of the target three-dimensional model, and the data of the target three-dimensional model is obtained from the three-dimensional data cached by the second node based on the target URL and the three-dimensional indication information.
3. The method according to claim 2, characterized in that The content distribution network further includes a scheduling node; and determining a second node from the plurality of nodes based on the characteristics of the target three-dimensional model includes: If the first node has back-to-source scheduling information cached therein, the second node is determined from the back-to-source scheduling information based on the characteristics of the target three-dimensional model, where the back-to-source scheduling information is used to indicate nodes for data back-to-source of three-dimensional models with different characteristics; If the first node does not cache the back-to-source scheduling information, the back-to-source scheduling information is obtained from the scheduling node, and the second node is determined from the back-to-source scheduling information based on the characteristics of the target three-dimensional model.
4. The method according to any one of claims 1 to 3, characterized in that: The target virtual space is divided into a plurality of three-dimensional slices, and data of the plurality of three-dimensional slices are hierarchically stored in a target data structure; The acquiring the data of the target three-dimensional model based on the target URL and the three-dimensional indication information includes: Determine at least one slice index based on the target URL and the three-dimensional indication information, where the at least one slice index refers to an index of at least one three-dimensional slice constituting the target three-dimensional model; Based on the at least one slice index, a hierarchical search is performed in the target data structure to obtain data of the at least one three-dimensional slice.
5. The method according to claim 4, characterized in that The three-dimensional indication information includes a three-dimensional coordinate range; and determining at least one slice index based on the target URL and the three-dimensional indication information includes: Based on the target URL and the three-dimensional coordinate range, the at least one slice index is determined from a coordinate mapping relationship, where the coordinate mapping relationship is used to store a mapping relationship between a URL, a three-dimensional coordinate, and a slice index.
6. The method according to claim 4, characterized in that The target three-dimensional model is a cone-shaped model, and the three-dimensional indication information includes cone parameters; and determining at least one slice index based on the target URL and the three-dimensional indication information includes: Based on the vertebral body parameters, determining a three-dimensional coordinate range corresponding to the target three-dimensional model; Based on the target URL and the three-dimensional coordinate range, the at least one slice index is determined from a coordinate mapping relationship, where the coordinate mapping relationship is used to store a mapping relationship between a URL, a three-dimensional coordinate, and a slice index.
7. The method according to claim 5 or 6, characterized in that Before receiving the data acquisition request sent by the user terminal, the method further includes: dividing the target virtual space into the plurality of three-dimensional slices; Setting the indexes of the plurality of three-dimensional slices to obtain a plurality of slice indexes; According to the plurality of slice indices, storing the data of the plurality of three-dimensional slices into the target data structure; The target URL, the three-dimensional coordinates of the multiple three-dimensional slices, and the multiple slice indexes are stored in the coordinate mapping relationship.
8. The method according to claim 4, characterized in that The three-dimensional indication information includes a query condition; and determining at least one slice index based on the target URL and the three-dimensional indication information includes: Based on the target URL and the query condition, the slice index that meets the query condition is determined from the conditional mapping relationship to obtain at least one slice index, and the conditional mapping relationship is used to store the mapping relationship between the URL, slice attributes and slice index.
9. The method according to claim 8, characterized in that Before receiving the data acquisition request sent by the user terminal, the method further includes: dividing the target virtual space into the plurality of three-dimensional slices; Setting the indexes of the plurality of three-dimensional slices to obtain a plurality of slice indexes; According to the plurality of slice indices, storing the data of the plurality of three-dimensional slices into the target data structure; The target URL, the attribute information of the plurality of three-dimensional slices, and the plurality of slice indexes are stored in the conditional mapping relationship.
10. The method according to any one of claims 1 to 3, characterized in that: The target virtual space is divided into a plurality of three-dimensional slices, and data and attribute information of the plurality of three-dimensional slices are hierarchically stored in a target data structure; The three-dimensional indication information includes query conditions; The acquiring the data of the target three-dimensional model based on the target URL and the three-dimensional indication information includes: Determine a plurality of slice indexes based on the target URL, wherein the plurality of slice indexes refer to indexes of the plurality of three-dimensional slices; Based on the multiple slice indexes, performing hierarchical search in the target data structure to obtain data of the multiple three-dimensional slices and attribute information of each three-dimensional slice; Based on the attribute information of the multiple three-dimensional slices, three-dimensional slices that meet the query condition are screened out from the multiple three-dimensional slices, and data of the screened out three-dimensional slices are used as data of the target three-dimensional model.
11. A three-dimensional data acquisition device, characterized in that: A first node included in a content distribution network, the content distribution network includes a plurality of nodes, the first node is an edge node among the plurality of nodes; the device includes: A receiving module, configured to receive a data acquisition request sent by a user terminal, wherein the data acquisition request carries a target uniform resource locator URL and three-dimensional indication information, wherein the target URL is a URL of a target virtual space, and the three-dimensional indication information indicates a target three-dimensional model in the target virtual space; An acquisition module, used for acquiring data of the target three-dimensional model based on the target URL and the three-dimensional indication information; A sending module is used to send the data of the target three-dimensional model to the user terminal.
12. The device according to claim 11, characterized in that The acquisition module comprises: The first determination submodule is used to determine a second node from the multiple nodes based on the characteristics of the target three-dimensional model if all the data of the target three-dimensional model is not cached in the first node, and obtain the data of the target three-dimensional model from the three-dimensional data cached by the second node based on the target URL and the three-dimensional indication information.
13. The device according to claim 12, characterized in that The content distribution network further includes a scheduling node; the first determining submodule is specifically configured to: If the first node has back-to-source scheduling information cached therein, the second node is determined from the back-to-source scheduling information based on the characteristics of the target three-dimensional model, where the back-to-source scheduling information is used to indicate nodes for data back-to-source of three-dimensional models with different characteristics; If the first node does not cache the back-to-source scheduling information, the back-to-source scheduling information is obtained from the scheduling node, and the second node is determined from the back-to-source scheduling information based on the characteristics of the target three-dimensional model.
14. The device according to any one of claims 11 to 13, characterized in that: The target virtual space is divided into a plurality of three-dimensional slices, and data of the plurality of three-dimensional slices are hierarchically stored in a target data structure; The acquisition module comprises: A second determination submodule is configured to determine at least one slice index based on the target URL and the three-dimensional indication information, wherein the at least one slice index refers to an index of at least one three-dimensional slice constituting the target three-dimensional model; The first search submodule is used to perform a hierarchical search in the target data structure based on the at least one slice index to obtain data of the at least one three-dimensional slice.
15. The device according to claim 14, characterized in that The three-dimensional indication information includes a three-dimensional coordinate range; the second determination submodule is specifically used for: Based on the target URL and the three-dimensional coordinate range, the at least one slice index is determined from a coordinate mapping relationship, where the coordinate mapping relationship is used to store a mapping relationship between a URL, a three-dimensional coordinate, and a slice index.
16. The device according to claim 14, characterized in that The target three-dimensional model is a vertebral model, and the three-dimensional indication information includes vertebral parameters; the second determination submodule is specifically used for: Based on the vertebral body parameters, determining a three-dimensional coordinate range corresponding to the target three-dimensional model; Based on the target URL and the three-dimensional coordinate range, the at least one slice index is determined from a coordinate mapping relationship, where the coordinate mapping relationship is used to store a mapping relationship between a URL, a three-dimensional coordinate, and a slice index.
17. The device according to claim 15 or 16, characterized in that The device also includes: A first division module, used for dividing the target virtual space into the plurality of three-dimensional slices; A first setting module, used for setting the indexes of the plurality of three-dimensional slices to obtain a plurality of slice indexes; A first storage module, configured to store the data of the plurality of three-dimensional slices into the target data structure according to the plurality of slice indexes; The second storage module is used to store the target URL, the three-dimensional coordinates of the multiple three-dimensional slices and the multiple slice indexes in the coordinate mapping relationship.
18. The device according to claim 14, characterized in that The three-dimensional indication information includes a query condition; and the second determination submodule is specifically used for: Based on the target URL and the query condition, the slice index that meets the query condition is determined from the conditional mapping relationship to obtain at least one slice index, and the conditional mapping relationship is used to store the mapping relationship between the URL, slice attributes and slice index.
19. The device according to claim 18, characterized in that The device also includes: A second division module, used for dividing the target virtual space into the multiple three-dimensional slices; A second setting module, used to set the indexes of the plurality of three-dimensional slices to obtain a plurality of slice indexes; A third storage module, configured to store the data of the plurality of three-dimensional slices into the target data structure according to the plurality of slice indexes; The fourth storage module is used to store the target URL, the attribute information of the multiple three-dimensional slices and the multiple slice indexes in the conditional mapping relationship.
20. The device according to any one of claims 11 to 13, characterized in that The target virtual space is divided into a plurality of three-dimensional slices, and data and attribute information of the plurality of three-dimensional slices are hierarchically stored in a target data structure; The three-dimensional indication information includes query conditions; The acquisition module comprises: A third determination submodule is used to determine a plurality of slice indexes based on the target URL, wherein the plurality of slice indexes refer to indexes of the plurality of three-dimensional slices; A second search submodule, configured to perform hierarchical search in the target data structure based on the multiple slice indexes to obtain data of the multiple three-dimensional slices and attribute information of each three-dimensional slice; The screening submodule is used to screen out three-dimensional slices that meet the query condition from the multiple three-dimensional slices based on the attribute information of the multiple three-dimensional slices, and use the data of the screened three-dimensional slices as the data of the target three-dimensional model.
21. A computing device cluster, characterized in that: comprising at least one computing device, each computing device comprising a memory and a processor; The memory of the at least one computing device is used to store computer instructions, and the processor of the at least one computing device is used to execute the instructions stored in the memory of the at least one computing device, so that the computing device cluster executes the method according to any one of claims 1 to 10.
22. A computer-readable storage medium, characterized in that: The storage medium stores instructions, and when the instructions are executed by the computing device cluster, the computing device cluster executes the method according to any one of claims 1 to 10.
23. A computer program product comprising instructions, characterized in that When the instructions are executed by a computing device cluster, the computing device cluster executes the method according to any one of claims 1 to 10.
Citation Information
Cited By
Three-dimensional data acquisition method and related device
EP4783552A1
Three-dimensional data acquisition method and related device
WO2025077191A1