3D model processing system and method and storage circuit
Patent Information
- Application Number
- TW113124652
- Authority / Receiving Office
- TW · TW
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2023-07-03
- Filing Date
- 2024-07-02
- Publication Date
- 2026-10-01
- Estimated Expiration
- 2044-07-01
Smart Images

Figure TWG2TB001913534_001 
Figure TWG2TB001913534_002 
Figure TWG2TB001913534_003
Abstract
Description
3D Model Processing System, Method, and Storage Circuit The present invention relates to a three-dimensional (3D) model processing system, and particularly to a 3D model processing system, method, and storage circuit. In order to bring an immersive experience to users, technologies related to extended reality (XR) such as augmented reality (AR), virtual reality (VR), and mixed reality (MR) are constantly being developed. AR technology enables users to bring virtual elements into the real world. VR technology enables users to enter a completely new virtual world to experience different lives. MR technology combines the real world and the virtual world. In addition, in order to bring a complete immersive experience to users, visual content, audio content, or other sensory content can be provided to users through the network. The present disclosure provides a 3D model processing system, a 3D model processing method, and a storage circuit to provide XR content to users in an efficient and low-latency manner. The 3D model processing system of the present disclosure includes a storage circuit and a processor. The storage circuit is configured to store program code. The processor is coupled to the storage circuit and is configured to access the program code to perform the following operations: obtaining a plurality of nodes of a 3D model; based on position or material, dividing the 3D model into a first original partition and a second original partition, where the first original partition includes a first set of nodes and the second original partition includes a second set of nodes; based on the first set of nodes, generating a plurality of first hierarchical partitions with different levels of detail (LoD) for the first original partition; and based on the second set of nodes, generating a plurality of second hierarchical partitions with different levels of detail for the second original partition. The 3D model processing method of the present disclosure includes: obtaining a plurality of nodes of a 3D model; based on position or material, dividing the 3D model into a first original partition and a second original partition, where the first original partition includes a first set of nodes and the second original partition includes a second set of nodes; based on the first set of nodes, generating a plurality of first hierarchical partitions with different levels of detail for the first original partition; and based on the second set of nodes, generating a plurality of second hierarchical partitions with different levels of detail for the second original partition. The storage circuit disclosed herein is configured to store code, and the code is configured to cause a processor to perform the following operations: obtaining a plurality of nodes of a 3D model; dividing the 3D model into a first original partition and a second original partition based on position or material, wherein the first original partition includes a first set of nodes and the second original partition includes a second set of nodes; generating a plurality of first hierarchical partitions with different levels of detail for the first original partition based on the first set of nodes; and generating a plurality of second hierarchical partitions with different levels of detail for the second original partition based on the second set of nodes. Based on the above, according to the 3D model processing system, the 3D model processing method, and the storage circuit, a 3D model can be provided to a user in an efficient and low-latency manner. Now, reference will be made in detail to the exemplary embodiments of the disclosure, and examples of the exemplary embodiments are shown in the accompanying drawings. As much as possible, the same reference numerals are used in the drawings and the description to refer to the same or similar components. Throughout the specification and the appended claims of the disclosure, certain terms are used to refer to specific components. Those skilled in the art should understand that electronic device manufacturers may refer to the same components by different names. This document does not aim to distinguish between those components that have the same function but different names. In the following description and claims, words such as "comprise" and "include" are open-ended terms and should be construed as "including but not limited to...". The term "coupling" (or "connection") used throughout the specification of this application (including the appended claims) may refer to any direct or indirect connection method. For example, if it is stated herein that a first device is coupled (or connected) to a second device, it should be interpreted that the first device can be directly connected to the second device, or the first device can be indirectly connected to the second device through other devices to be connected or certain connection methods. Throughout the specification of this application (including the appended claims), the terms "first", "second", and similar terms are only used to name discrete elements or to distinguish different embodiments or scopes. Therefore, these terms should not be regarded as limiting the upper or lower limits of the number of elements and should not be used to limit the arrangement order of the elements. Additionally, as much as possible, elements / components / steps with the same reference numerals in the drawings and embodiments represent the same or similar parts. In different embodiments, the same reference numerals may be used or the same terms may be used to refer to the relevant descriptions of elements / components / steps. It should be noted that in the following embodiments, the technical features of several different embodiments can be replaced, recombined, and mixed without departing from the spirit of the present disclosure to complete other embodiments. As long as the features of each embodiment do not violate the spirit of the present disclosure or conflict with each other, the embodiments can be arbitrarily mixed and used together. To bring an immersive experience to users, technologies related to extended reality (XR), such as augmented reality (AR), virtual reality (VR), and mixed reality (MR), are constantly being developed. AR technology enables users to bring virtual elements into the real world. VR technology enables users to enter a completely new virtual world to experience different lives. MR technology combines the real world and the virtual world. In addition, to bring a complete immersive experience to users, visual content, audio content, or other sensory content can be provided to users through the network. When streaming XR content (such as 3D geometric data) to users over the Internet, it is important that users do not have to wait a long time before entering the virtual world. Therefore, at the stage of creating XR content, the size and composition of the XR content are important. In addition, when sending XR content (such as 3D geometric data) over the network, it is important to store the mesh (including a set of triangles) of the XR content with as few bytes as possible to make data transmission faster. At the same time, it is important that the performance of decoding the data must be high enough so that there is no obvious delay for users when the system retrieves the data. In addition, when users view XR content through a user device (such as a computer, smartphone, etc.), the traditional method of loading the virtual world by the user device over the network often loads all the data at once at startup (which results in a long loading time), or loads the data when the user's user representative object (such as an avatar) walks near a virtual object (the virtual object appears and disappears in the scene). Therefore, the user experience can be interrupted due to the waiting time or delay of loading. In view of the above, those skilled in the art strive to provide an efficient and low-latency way to provide XR content to users. To provide XR content (such as 3D models) to users in an efficient and low-latency manner, three aspects related to 3D models will be described in combination with several embodiments. First, how to prepare, create, or partition 3D models. Second, how to compress 3D models. Third, how to load 3D models from the user side (such as the user's user device). These three aspects can be used separately or together to provide XR content to users, and the present disclosure is not limited thereto. FIG. 1 is a schematic diagram of a 3D model processing system according to an embodiment of the present disclosure. Referring to FIG. 1, a 3D model processing system 100 is illustrated. In different embodiments, the 3D model processing system 100 may be implemented as various intelligent devices and / or computer devices, but is not limited thereto. In FIG. 1, the 3D model processing system 100 includes a (non-transitory) storage circuit 102 and a processor 104. The storage circuit 102 is, for example, any type of fixed or removable random access memory (RAM), read-only memory (ROM), flash memory, hard disk, other similar devices, or a combination of these devices, and can be used to record multiple codes or modules. The processor 104 is coupled to the storage circuit 102 and can be a general-purpose processor, a dedicated processor, a conventional processor, a digital signal processor, multiple microprocessors, one or more microprocessors combined with a digital signal processor core, a controller, a microcontroller, an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), any other type of integrated circuit, a state machine, a processor based on a reduced instruction set computer (RISC) machine (advanced RISC machine, ARM), and similar processors. In an embodiment of the present invention, the processor 104 can access the modules and codes recorded in the storage circuit 102 to implement the 3D model processing proposed by the present disclosure, and the details thereof will be described below. FIG. 2 is a schematic flowchart of a 3D model processing method according to an embodiment of the present disclosure. Referring to FIGS. 1 and 2, the 3D model processing method 200 of this embodiment can be executed by the 3D model processing system 100 in FIG. 1, and the details of each step in FIG. 2 will be described below in conjunction with the components shown in FIG. 1. First, in step S210, multiple nodes of the 3D model can be obtained. In one embodiment, a node is a fundamental building block of the 3D model. That is, multiple nodes can form geometric shapes (e.g., triangles), and multiple geometric shapes can form the 3D model. Next, in step S220, the 3D model can be split into a first original partition and a second original partition based on position or material. In addition, the first original partition can include a first group of nodes, and the second original partition can include a second group of nodes. That is, the 3D model can include multiple positions and multiple materials, and the 3D model can be divided into multiple blocks (e.g., the first original partition, the second original partition, etc.) based on the position or material of each region of the 3D model. Thereafter, in step S230, the multiple nodes can be divided into a first group of nodes and a second group of nodes based on the first original partition and the second original partition. It is worth mentioning that step S220 and step S230 can be executed simultaneously, and step S220 can define the shape of a piece of the 3D model, and step S230 can define which nodes belong to the piece of the 3D model. However, the present disclosure is not limited thereto. In addition, in step S240, multiple first graded partitions with different levels of detail can be generated for the first original partition based on the first group of nodes. In addition, in step S250, multiple second graded partitions with different levels of detail can be generated for the second original partition based on the second group of nodes. It should be noted that although the 3D model is described as including a first original partition and a second original partition for ease of illustration, the 3D model can include multiple original partitions. In addition, multiple graded partitions can correspond to the multiple original partitions. However, the present disclosure is not limited thereto. Based on the above, by partitioning the 3D model based on material or position, the size of each partition of the 3D model can be reduced. Therefore, based on a request from a user device at the user end, only a part of the original model can be loaded as needed, rather than loading the entire original model at once, thereby reducing waiting time and enhancing the user experience. In addition, the implementation details of the 3D model processing system 100 and the 3D model processing method 200 can refer to the following description of FIGS. 3A to 6 to obtain sufficient teachings, suggestions, and implementation examples. In some embodiments, the functions of the 3D model processing system 100 and the 3D model processing method 200 can be executed by the processor 104, but the present disclosure is not limited thereto. FIG. 3A is a schematic diagram of a partitioned scene of a 3D model according to an embodiment of the present disclosure. FIG. 3B is another schematic diagram of a partitioned scene of a 3D model according to an embodiment of the present disclosure. Referring to FIGS. 3A and 3B, the partitioned scene 300A includes an original model 310 and a plurality of original partitions 320, and the partitioned scene 300B includes an original model 310 and a plurality of original partitions 330. In the stage of preparing a 3D model, how to cut the 3D model into multiple chunks will not only affect the efficiency of streaming the 3D model over the Internet, but also affect the speed of loading the 3D model at the user end. That is to say, in order to improve the speed and performance of loading and rendering a 3D model, it is important how to cut the 3D model into multiple chunks. In one embodiment, a smaller chunk of a 3D model may be referred to as a partition. First, refer to FIG. 3A. In one embodiment, the 3D model may be divided into smaller chunks (i.e., partitions) based on the material of each chunk or region of the 3D model. For example, the original model 310 of a robot may include different parts, such as a head, a body, arms, wheels, etc. These parts may be designed to be made of different materials (such as metal, plastic, rubber, etc.). As shown in FIG. 3A, the original model 310 of the robot may be categorized into different materials and divided into multiple chunks based on the material (e.g., the material index of each chunk). In one embodiment, the material index of each chunk may be predefined according to design requirements. For example, a chunk of material with a material index of 1 may be metal. The material indexes of all chunks may be associated with the UV map corresponding to the 3D model. However, the present disclosure is not limited thereto. That is to say, partitions with the same material may be grouped together. In other words, the first original partition may belong to the first material, and the second original partition may belong to the second material. The mode of the process of dividing the original model 310 into multiple chunks based on the material of each chunk may be referred to as the "material mode", and these divided chunks may be referred to as a plurality of original partitions 320. Now refer to FIG. 3B. In one embodiment, the 3D model may be divided into smaller chunks based on the position of each chunk of the 3D model. For example, the original model 310 of a robot may include an upper part, a lower part, a left side part, a right side part, a front side part, a rear side part, etc. The original model 310 of the robot may be classified into different positions or quadrants in space and divided into multiple chunks based on the position as shown in FIG. 3B. That is to say, partitions that are close to each other may be grouped together. In other words, the first original partition may belong to the first position, and the second original partition may belong to the second position. The mode of the process of dividing the original model 310 into multiple chunks based on the position of each chunk may be referred to as the "space mode", and these divided chunks may be referred to as a plurality of original partitions 330. FIG. 3C is a schematic diagram of a partitioned scene of a 3D model according to an embodiment of the present disclosure. Referring to FIG. 3C, the partitioned scene 300C includes a partitioned scene 301C and a partitioned scene 302C. The partitioned scene 301C depicts an original model 310 partitioned using a material mode, and the partitioned scene 302C depicts the original model 310 partitioned using a spatial mode. In one embodiment, the original model 310 can be divided into multiple blocks by creating the multiple original partitions 320 using a material mode or creating the multiple original partitions 330 using a spatial model, but the present disclosure is not limited thereto. That is to say, the partition mode can be determined first. Then, based on the partition mode, the original model 310 can be divided into multiple partitions. In one embodiment, a bounding box can represent the partition of the original model 310, but it is not limited thereto. For example, as shown in FIG. 3C, each of the partitioned scene 301C and the partitioned scene 302C can include multiple bounding boxes, and the multiple bounding boxes can respectively represent the multiple original partitions 320 or the multiple original partitions 330. It should be noted that a larger partition can be divided into smaller partitions. That is to say, the original model 310 can be divided into smaller partitions so that each part of the original model 310 can change the visual quality independently of each other. The partitioning process can be completed using a recursive algorithm. That is to say, the partitioning process can be repeatedly executed until a specific condition is met. Therefore, the original model 310 can be stored as independent triangles, and the original model 310 can be parsed triangle by triangle without storing the entire original model 310 in memory at one time. In one embodiment, a triangle can be referred to or stored as a soup file, and the soup file can be a collection file of independent triangles. For example, after determining the partitioning mode and performing partitioning, the bounding box of each partition can be divided into multiple parts, and then a new soup file can be created for the triangles that fall within the new bounding box. This division process can be performed recursively. For example, in the first iteration of the division process, all the triangles of the plurality of original partitions 320 or the plurality of original partitions 330 can be divided into two or more groups (also referred to as children). Then, the division process can be performed again on these groups to create two or more subgroups for each group. This division process can be repeated until a specific condition is met. For example, each subgroup in all subgroups is below the triangle threshold. The triangle threshold can be adjusted according to design requirements. In one embodiment, the triangle threshold can be determined based on the maximum of the computing power or connection speed of the user device. That is, after the last iteration of the division process, the number of triangles in each group of triangles is less than the triangle threshold. After the division process, the partitions that have been created together can form a tree or hierarchy of the original model 310. That is, the 3D model can be loaded partition by partition instead of loading all the 3D models at once. In this way, by partitioning the 3D model based on materials or locations, the size of each partition of the 3D model can be reduced. Therefore, based on the request from the user device, only a part of the original model 310 can be loaded as needed instead of loading the entire original model 310 at once, thereby reducing the waiting time and enhancing the user experience. FIG. 3D is a schematic diagram of a partitioning scenario of a 3D model according to an embodiment of the present disclosure. Referring to FIG. 3D, the partitioning scenario 300D includes a hierarchical partition 340. In one embodiment, after partitioning the original model 310, the original model 310 can be divided into multiple blocks, such as the original partition 320 or the original partition 330. That is, when the user device loads the original model 310, the original model 310 can be loaded partition by partition, and the size of each partition can be determined based on the computing power of the user side. However, in some cases, it may be necessary to load all the 3D models at once instead of loading the 3D models partition by partition. That is, the total number of triangles of the original model 310 needs to be less than the triangle threshold for the user device to process all the triangles at once. For example, the triangle threshold can be determined based on the maximum of the computing power of the user device. In one embodiment, a decimation algorithm (selected from the prior art according to design requirements) can be used to remove triangles until the total number of triangles is less than the triangle threshold. Meanwhile, when the user is viewing a part of the 3D model instead of the entire 3D model, the said part of the 3D model should provide the user with an optimal visual experience. That is to say, when the user is viewing a part (e.g., a partition) of the original model 310 instead of the entire model, the number of triangles in the said part should also meet the triangle threshold. In other words, some triangles containing key features (e.g., visually distinct features) can be put back into the said part to increase the number of triangles in the said part, thereby providing an optimal visual experience. Meanwhile, when the user is viewing a portion of the said part of the 3D model, the said portion of the said part should also provide the user with an optimal visual experience. That is to say, when the user is viewing a portion of the said part of the original model 310 (e.g., a portion of a partition), the number of triangles in the said portion should also meet the triangle threshold. Similarly, some triangles containing key features can be put back into the said portion to increase the number of triangles in the said portion, thereby providing an optimal visual experience. In one embodiment, the partition or the said portion of the partition can be defined by the partitioning process of the original model 310 in the material mode or the spatial mode. However, the present disclosure is not limited thereto. In summary, the original model 310 can include multiple partitions (e.g., the original partition 320 or the original partition 330), and each partition can be processed to include different amounts of triangles for different display scenarios to provide an optimal visual experience. That is to say, each partition can be processed to generate multiple hierarchical partitions for individual display. Each of the hierarchical partitions can belong to a level of partitioning. That is to say, each partition of the original model 310 can belong to a different level of partitioning of the hierarchical partitions. In one embodiment, each partition may include three partition levels, such as level 0, level 1, and level 2. The partition levels can define how many parts or groups a 3D model or a partition of a 3D model can be divided into, and a higher partition level represents more groups. That is to say, when the partition level is higher, more groups of triangles can be included in the partition of the original model 310. For example, as shown in FIG. 3D, for the level 0 partition, the triangles of the partition of the original model 310 (e.g., monkey head) or the triangles of the original model 310 can belong to the same group. More specifically, a group of triangles can include 50,000 triangles, and the total number of triangles of the partition of the level 0 partition or the triangles of the original model 310 can be 50,000. In addition, for the level 1 partition, the triangles of the partition or the triangles of the original model 310 can belong to two groups for separate display. More specifically, each group of triangles can include 50,000 triangles, and the total number of triangles of the partition of the level 1 partition or the triangles of the original model 310 can be 100,000. In addition, for the level 2 partition, the triangles of the partition or the triangles of the original model 310 can belong to four groups for separate display. More specifically, each group of triangles can include 50,000 triangles, and the total number of triangles of the partition of the level 2 partition or the triangles of the original model 310 can be 200,000. However, the present disclosure is not limited thereto. Now referring back to FIG. 3D again, in one embodiment, for each partition level, different levels of detail (LoD) can be created. That is to say, each of the original partitions 320 or each of the original partitions 330 can include different LoDs. The purpose is to ensure that the triangles of each of the hierarchical partitions are less than different triangle thresholds. For example, for different types of user devices on the user side, the computing power of each of the user devices may be different. Therefore, different triangle thresholds can be applied to different user devices. In order to generate different levels of detail for each of the hierarchical partitions, an extraction algorithm (selected from the prior art according to design requirements) can be used to remove triangles until the triangle count is lower than a certain limit. This limit can be determined based on the computing power of the user device. In one embodiment, each partition level may include three levels of detail (LoD), such as LoD 0, LoD 1, and LoD 2. That is to say, the hierarchical partitions can at least include partitions of level of detail 0, partitions of level of detail 1, and partitions of level of detail 2. The LoD can define how many triangles each group of triangles should include, and a lower LoD represents more triangles. That is to say, when the level of detail is lower, more triangles can be included in each group of triangles. In other words, the higher the level of detail, the higher the compression ratio. For example, for LoD 0, the triangle count limit may be 50,000. That is to say, a set of triangles may include 50,000 triangles. For LoD 1, the triangle count limit may be 12,500. That is to say, a set of triangles may include 12,500 triangles. For LoD 2, the triangle count limit may be 4,000. That is to say, a set of triangles may include 4,000 triangles. The triangle count limit may be determined according to design requirements or based on the computing power of the user device. However, the present disclosure is not limited thereto. It is worth mentioning that the groups (i.e., partitions) at each partitioning level may together form the original model 310 or a partition of the original model 310. That is to say, the original model 310 of the level 0 partition or the partition of the original model 310 of the level 0 partition may include 50,000 triangles of LoD 0, the original model 310 of the level 1 partition or the partition of the original model 310 of the level 1 partition may include 100,000 triangles of LoD 0, and the original model 310 of the level 2 partition or the partition of the original model 310 of the level 2 partition may include 200,000 triangles of LoD 0. It should be noted that one purpose of different levels of detail is to provide options to the user when viewing the model, so that an ideal visual result can still be provided to the user when some unimportant details are not fully presented. That is to say, each partition of the original model 310 can be rendered at a higher or lower quality when needed. For example, only the part of the original model 310 close to the viewer can be rendered with higher detail, while other parts of the original model 310 that are farther away can be rendered with lower detail. These different levels of detail for each partition help to improve the rendering performance, while the original model 310 can still provide an ideal visual result to the user because it does not have to render all the details in all 3D models at once. In this way, the 3D model processing system 100 or the 3D model processing method 200 can provide a powerful way to improve the speed and performance of loading and rendering 3D models. Figure 4 is a schematic diagram of a baking scene of a 3D model according to an embodiment of the present disclosure. Referring to Figure 4, the baking scene 400 illustrates how to apply textures to the mesh (e.g., triangles) of a 3D model using the baking process. In one embodiment, if a partition of a 3D model contains large textures, not only can the mesh (e.g., triangles) include several levels of detail, but multiple levels of detail can also be generated for the textures. For example, if a partition has a texture with 2048×2048 pixels, the partition can be divided into more blocks, such as four blocks. That is to say, four partitions each having 1024×1024 pixels can be created. In this way, according to a request from a user device, only a part of the texture is loaded instead of loading the entire texture of the partition at once, thereby reducing the waiting time and enhancing the user experience. In one embodiment, the baking process is a process of transferring detailed information from a high-resolution 3D model to a low-resolution 3D model. This is usually done to improve performance or reduce the file size. The baking process involves creating texture maps to capture the details of the high-resolution model, such as lighting, shadows, and surface defects. Then, these texture maps are applied to the low-resolution model, enabling the low-resolution model to have the appearance of the high-resolution model without the computational cost of rendering all polygons. It is worth mentioning that if the texture coordinates of the texture map of a 3D model occupy too much space in the texture image, the texture coordinates can be recalculated and the texture can be rebaked, as shown in FIG. 4. For example, the texture of the original model 410 can be captured and stored as multiple texture maps 420 in the UV coordinate system. For example, as shown in FIG. 4, the original model 410 can correspond to four texture maps 420. The texture maps 420 can be compressed to generate multiple compressed texture maps 422. For example, as shown in FIG. 4, the four texture maps 420 can be compressed to one-fourth of their original size to form four compressed maps 422. Next, the baking process can be performed on each of the compressed texture maps to generate multiple baked texture maps 424. Thereafter, each of the multiple baked texture maps 424 can be applied to the corresponding mesh of the original model 410 to form (bake out) a baked partition 430. That is to say, the 3D model can be unwrapped into a two-dimensional (2D) plane (e.g., texture map 420). In addition, a baked texture can be created (bake out) by transferring the high-resolution model of the texture of the 3D model to the low-resolution model. In other words, the baked texture can contain the key features (e.g., visually distinct features) of the high-resolution model of the texture. In addition, the baked texture can be applied to the mesh of the 3D model. In this way, the baking process can enable more efficient storage and rendering of the original model 410. In one embodiment, if the mesh can be stored more efficiently by baking the texture, the baking process can be executed to recalculate the texture coordinates and rebake the texture. To determine if the texture coordinates occupy too much space, the total area of the texture coordinates can be divided by the total area of the texture. If the result of the division is not lower than a certain threshold, the texture coordinates can be recalculated and the texture can be rebaked. The threshold can be a value set by the user. The lower the threshold, the greater the likelihood of recalculating the texture coordinates. FIG. 5 is a schematic diagram of a flattening scenario of a 3D model according to an embodiment of the present disclosure. Referring to FIG. 5, the flattening scenario 500 may include an unflattened model level 510 and a flattened model level 520. In one embodiment, a 3D model may be composed of many different parts called levels. These levels may be nested such that one part may contain other parts. It should be noted that when the 3D model is flattened, all levels are removed and the 3D model is converted into a flat array of triangles. For example, by performing the flattening process, by removing all levels in the structure of the 3D model and ensuring that only a flat array of triangles is retained, the unflattened model level 510 may become the flattened model level 520. This does not change the appearance of the 3D model but does make it easier to process. That is, there is no visual change between the unflattened model corresponding to the unflattened model level 510 and the flattened model corresponding to the flattened model level 520. These files storing the flat array of triangles may be referred to as or stored as SU files, and the SU files may be a collection file of independent triangles. In one embodiment, each triangle in the flat array may store three pieces of information: the positions of the vertices that make up the triangle, the texture coordinates of the triangle, and the material index number of the triangle. The texture coordinates may tell the renderer of the 3D model where to find the texture image for rendering the triangle. The material index number may tell the renderer which material to use to render the triangle. It is worth mentioning that storing all the data of the 3D model in the flat array of triangles makes it easier to process, especially for large 3D models. This is because the renderer can quickly access the required data without traversing the levels. In this way, 3D models larger than the available memory of the computer can be processed. FIG. 6 is a schematic diagram of the file format of a 3D model processing system according to an embodiment of the present disclosure. Referring to FIG. 6, the file format 600 illustrates exemplary contents of a 3D model, but the present disclosure is not limited thereto. In one embodiment, when all the meshes and textures of all levels of detail have been generated, the meshes and textures can be stored in the file format as shown in FIG. 6. The file format 600 can be an Extended Reality Geometry (XRG) file format or an Extended Reality Geometry Compressed (XRGC) file format. The XRG file or XRGC file can be a data container for storing other files with common file types (such as JPG and PNG). However, the present disclosure is not limited thereto. In one embodiment, the file format 600 may include a header file, a JavaScript Object Notation (JSON) file, the meshes (e.g., triangles) of the 3D model, the textures of the 3D model, and so on. The header file can be configured to store general information about the files within the container file. For example, the header file can elaborate on some basic information and the location of the JSON file. In addition, the JSON file can be configured to elaborate on some basic information (such as the complete layout and hierarchy of the 3D model), and the location of the JSON file. The client application can use the JSON file to read the model description and perform optimized queries on the desired geometry. The queries can be optimized based on different factors (such as the position of the user's user representative object in the 3D space (e.g., the virtual world of XR) and the distance between the user representative object and the 3D model). It is worth mentioning that the user representative object can be, for example, the user's avatar, a virtual object representing the user, a virtual object representing the head-mounted display (HMD) device worn by the user, or other similar objects. However, the present disclosure is not limited thereto. In this way, based on the file format 600, the data of the 3D model can be stored or compressed in an efficient manner, allowing the data of the 3D model to be streamed in real time according to requirements, which is crucial for XR applications, thus enhancing the user experience. FIG. 7 is a schematic flowchart of a 3D model processing method according to an embodiment of the present disclosure. Referring to FIGS. 1 and 7, the 3D model processing method 700 of this embodiment can be executed by the 3D model processing system 100 in FIG. 1, and the details of each step in FIG. 7 will be elaborated below in conjunction with the components shown in FIG. 1. First, in step S710, a request to view a 3D model from a user device can be determined. For example, a user may want to view a 3D model in a virtual world, and the user's user representative object is at a certain distance from the 3D model in the virtual world. In addition, the 3D model can be divided into two parts, a first part is close to the user representative object, and a second part is relatively far from the avatar. In addition, the first part can belong to the first original partition, and the second part can belong to the second original partition. In addition, as shown in FIG. 3D, multiple first hierarchical partitions with different LoDs can be generated for the first original partition, and multiple second hierarchical partitions with different LoDs can be generated for the second original partition. Next, in step S720, based on the state of the user's user device, the first level of detail of the multiple first hierarchical partitions can be determined. For example, since the first part is closer to the user representative object (compared to the second part), the first LoD can be determined as LoD 0 to provide more details to the user device. Thereafter, in step S730, based on the state of the user device, the second level of detail of the multiple second hierarchical partitions can be determined. For example, since the second part is farther from the user representative object (compared to the first part), the second LoD can be determined as LoD 2 to provide fewer details to the user device. In addition, in step S740, based on the first level of detail, one of the multiple first hierarchical partitions can be provided to the user device. For example, when the computer power of the user device is high, the hierarchical partition of the level 2 partition of the multiple first hierarchical partitions can be provided to the user device. On the contrary, when the computer power is low, the hierarchical partition of the level 0 partition of the multiple first hierarchical partitions can be provided to the user device. In addition, in step S750, based on the second level of detail, one of the multiple second hierarchical partitions can be provided to the user device. For example, when the computer power of the user device is high, the hierarchical partition of the level 2 partition of the multiple second hierarchical partitions can be provided to the user device. On the contrary, when the computer power is low, the hierarchical partition of the level 0 partition of the multiple second hierarchical partitions can be provided to the user device. However, the present disclosure is not limited thereto. Based on the above, based on the state of the user device, an appropriate level of detail is determined, and the corresponding content of the 3D model is provided to the user device in a manner with low latency. In addition, the implementation details of the 3D model processing system 100 and the 3D model processing method 700 can refer to the following description of FIG. 8 to obtain sufficient teachings, suggestions, and implementation examples. In some embodiments, the functions of the 3D model processing system 100 and the 3D model processing method 700 can be executed by the processor 104, but the present disclosure is not limited thereto. FIG. 8 is a schematic diagram of a viewing scenario of a 3D model according to an embodiment of the present disclosure. Referring to FIG. 8, the viewing scenario 800 illustrates how to load a 3D model according to the state of the user device. In one embodiment, during the stage of creating the model, the 3D model is divided into multiple partitions, and these partitions can be stored at different levels of detail. Thereafter, when the user is viewing the 3D model, the 3D model can be rendered based on the state of the user device. The state of the user device is, for example, the distance between the user representative object and the 3D model, the user's eye sight, the user's eye gaze, the (Internet) connection speed of the user device, the computing power of the user device, and so on. For example, the part of the 3D model close to the user representative object can be rendered with higher detail, while the part far from the user representative object can be rendered with lower detail. These different levels of detail for each partition help to improve the rendering performance, while the 3D model can still provide an ideal visual result for the user, because it does not have to render all the details in all 3D models at once. That is to say, similar to the user's feeling in the real world, a thing closer to the user may be clearer, while another thing not so close to the user may be blurrier. Therefore, the computing power used to render the farther part of the 3D model can be saved, thereby improving the performance of rendering the 3D model. In summary, the client logic algorithm can be considered based on the position of the user representative object in the virtual world. More specifically, the client logic algorithm can be configured to determine which partitions will be provided to the user device at what level of detail to give the best visual result. When the user representative object walks around in the virtual world and the user's position or field of view (i.e., eye sight or eye gaze) changes accordingly, the client logic algorithm can be continuously updated in real time. In addition, the user's eye sight can be represented as the field of view (FOV) of a camera or viewer in the virtual world. In addition, in some embodiments, a part of the 3D model in the FOV or close to the FOV can be defined as the visible partition of the 3D model, while another part of the 3D model can be defined as the invisible partition of the 3D model. Only when the partition of the 3D model becomes a visible partition can the partition of the 3D model be provided to the user device. However, the present disclosure is not limited thereto. Specifically, when the user device wants to start displaying (i.e., viewing) a 3D model, the user device can first download the metadata about the 3D model. This metadata may include the layout of the virtual world and the hierarchy of nodes in the 3D model. The structure of the 3D model can then be replicated in memory as a tree of nodes. Each node in the tree may contain one or more levels of detail. Based on the tree of nodes and the state of the user device, the client logic algorithm is then used to find the optimal tree of nodes so that the optimal tree of nodes is visible. The algorithm can consider the position and field of view of the user representative object to determine which nodes need to be visible to provide the best visual experience. It should be noted that in the existing methods, there may be 3D models with multiple levels of detail. However, each time in order to present different levels of detail, the mesh is always loaded from the entire 3D model, and only fewer triangles are used to represent the mesh. In the present disclosure, the 3D model is divided into levels, so the elements in the levels can switch between levels of detail independently of each other. That is to say, each time in order to present different levels of detail, the mesh can be loaded from a part of the entire 3D model rather than the entire 3D model. For example, as described in the 3D model processing method 200 shown in FIG. 2, the 3D model may include a first original partition and a second original partition, and multiple first hierarchical partitions and multiple second hierarchical partitions can be generated based on the first original partition and the second original partition. In addition, as described in the 3D model processing method 700 shown in FIG. 7, the state of the user device can be used to determine the level of detail of the first hierarchical partition and the level of detail of the second hierarchical partition. That is to say, the user device can load only a part of the 3D model instead of loading the entire 3D model at once, thereby reducing the waiting time and increasing the user experience. In addition, the algorithm can use a variety of strategies to find the optimal tree of nodes for displaying the 3D model. One strategy is to determine the level of detail of each partition or make the node visible based on a threshold of the distance from the user representative object to the partition. Another strategy is to start from the root node of the lowest level of detail to make the node visible and gradually improve the tree of nodes. In one embodiment, the distance threshold policy may calculate the size of a partition in the view of the user device and attempt to provide the partition to the user device with the highest level of detail. If the size of the partition is greater than a certain threshold, the 3D model processing system 100 may simplify the level of detail to make the size of the partition smaller. If the size of the partition is less than a certain threshold, the system may refine the level of detail to make the size of the partition larger. That is to say, as long as the computing power of the user device is sufficient, the 3D model processing system 100 may attempt to provide the 3D model with as much detail (large) as possible. In addition, the view of the user device may include the distance between the user representative object and the 3D model or the angle at which the user views the 3D model, but the present disclosure is not limited thereto. As shown in FIG. 8, if the partition is close to the user representative object, the 3D model processing system 100 may render the partition with a higher level of detail (e.g., LoD 0 shown in FIG. 3D), while the partition far from the user representative object may be rendered with a lower level of detail (e.g., LoD 2 shown in FIG. 3D). In other words, in the 3D model processing method 700, in response to the distance between the user representative object and the 3D model becoming smaller, the first level of detail or the second level of detail may be upgraded (e.g., from LoD 2 shown in FIG. 3D to LoD 0) to provide more details of the 3D model. On the contrary, in response to the distance between the user representative object and the 3D model becoming larger, the first level of detail or the second level of detail may be downgraded (e.g., from LoD 0 shown in FIG. 3D to LoD 2) to provide fewer details of the 3D model. In one embodiment, the root node policy may start from the root node of the lowest level of detail (e.g., LoD 2 shown in FIG. 3D) to provide a visual result to the user device. It should be noted that the closer the partition of the 3D model is to the root node, the higher the visual recognition (e.g., key features) of the 3D model of the partition may be. Then, the system gradually improves the tree by replacing the nodes of its subgroups and gradually increasing the level of detail of the nodes. This policy allows the system to comply with the limit on the number of triangles loaded at a given time. That is to say, compared with the 3D model processing method 700, the level of detail of the partition provided to the user device may start from the lowest level of detail, rather than determining the level of detail of the partition provided to the user device based on the state of the user device. In other words, in response to a request from the user device to view the 3D model being determined, the lowest level of detail (e.g., LoD 2 shown in FIG. 3D) may be determined as the first level of detail of the first hierarchical partition and / or the second level of detail of the second hierarchical partition. Next, based on the first level of detail and / or the second level of detail, the lowest level of detail of the first hierarchical partition and / or the lowest level of detail of the second hierarchical partition may be provided to the user device. In one embodiment, the connection speed of the user device or the computing power of the user device can be used to determine the level of detail of the partition provided to the user device. That is to say, in response to the connection speed of the user device being greater than the speed threshold or the computing power of the user device being greater than the computing threshold, the first level of detail or the second level of detail can be upgraded to provide more details of the 3D model. On the contrary, in response to the connection speed of the user device being less than the speed threshold or the computing power of the user device being less than the computing threshold, the first level of detail or the second level of detail can be downgraded to provide fewer details of the 3D model. Based on the above, at least one of these strategies can be used to determine when to refine or simplify the level of detail of the 3D model. It should be noted that the best strategy to be used may depend on the specific application or according to the design requirements, and the present disclosure is not limited thereto. Therefore, by utilizing at least one of these strategies, viewer logic (such as the viewer's distance, eye field of view or line of sight) can be considered during the stage of viewing the 3D model to provide better visual results to the user device with low latency. FIG. 9 is a schematic flowchart of a 3D model processing method according to an embodiment of the present disclosure. Referring to FIGS. 1 and 9, the 3D model processing method 900 of this embodiment can be executed by the 3D model processing system 100 in FIG. 1, and the details of each step in FIG. 9 will be described below in combination with the components shown in FIG. 1. First, in step S910, a first original spatial value and a second original spatial value of the 3D model can be obtained. Next, in step S920, the difference between the first original spatial value and the second original spatial value can be obtained. Thereafter, in step S930, a compressed spatial value corresponding to the second original spatial value can be generated based on the difference. Based on the above, the data of the 3D model can be compressed in an efficient manner, so that the data of the 3D model can be streamed in real time, which is essential for XR applications, thereby enhancing the user experience. In addition, the implementation details of the 3D model processing system 100 and the 3D model processing method 900 can refer to the following description of FIGS. 10 to 11 to obtain sufficient teachings, suggestions and implementation examples. In some embodiments, the functions of the 3D model processing system 100 and the 3D model processing method 900 can be executed by the processor 104, but the present disclosure is not limited thereto. FIG. 10 is a schematic diagram of a compression scenario of a 3D model according to an embodiment of the present disclosure. Referring to FIG. 10, the compression scenario 1000 includes a compression algorithm 1010. In one embodiment, after partitioning the 3D model, each partition can be compressed to reduce the data size, thereby improving the transmission and loading speeds. The compression can be specifically designed for fast decompression so that the system can quickly load the required partitions of the 3D model. For example, the XRGC format is a compressed data format designed for streaming 3D models, which enables a good balance to be established between the decoding speed and the file size. It is important to be able to quickly decode XRGC data so that the 3D model can be rendered as quickly as possible. This is particularly important for real-time applications such as games and virtual reality. Now refer to FIG. 10. A compression algorithm 1010 can be employed to reduce the data size. That is, by performing the compression algorithm 1010 on the original data, compressed data can be generated, and the size of the compressed data can be smaller than the original data. The compression algorithm can include, for example, grouping triangles in an intelligent manner, baking textures, flattening levels, compressing position data (e.g., coordinates), compressing triangle data (e.g., vertex indices), compressing vectors, and so on. In one embodiment, the 3D model can include multiple spatial values, such as coordinates, vertex indices, and so on. It is worth mentioning that when the spatial value is a point (e.g., the coordinates of a mesh), the difference between consecutive coordinates can be stored instead of storing the multiple coordinates (e.g., data points) individually. For example, the sequence 2, 5, 4, 6, 8 can be stored by converting it into the sequence 2, 3, -1, 2, 2. That is, the relative values (i.e., differences / distances) between each coordinate can be stored instead of the absolute values of each coordinate. By using this strategy, the compression ratio can be greatly improved. In addition, the strategy can be applied to the 3D model processing method 900, and the first original spatial value can be the first coordinate of the 3D model, and the second original spatial value can be the second coordinate of the 3D model. The first coordinate and the second coordinate can belong to the same mesh, but the present disclosure is not limited thereto. That is, the compressed spatial value of the second original spatial value can be generated by replacing the second original spatial value with the difference between the first original spatial value and the second original spatial value. In another embodiment, when the spatial value is the vertex index of a triangle and when the plurality of vertex indexes belong to a continuous sequence, there may be no value to store or only a specific value (e.g., 0) needs to be stored, rather than storing the plurality of vertex indexes individually. On the other hand, only when the next vertex index is not continuous with the current vertex index, it may be necessary to store the value of the next vertex index. For example, the vertex index sequence V1, V2, V3, V4, V6 can be stored by converting it into the sequence 0, 0, 0, 0, V6. By using this strategy, the compression ratio can be greatly improved. In addition, the strategy can be applied to the 3D model processing method 900, where the first original spatial value can be the first vertex index of the triangle of the 3D model, and the second original spatial value can be the second vertex index of the triangle of the 3D model. That is to say, in response to the second vertex index being continuous with the first vertex index, the compressed spatial value of the second original spatial value can be generated by replacing the second original spatial value with a specific value (e.g., 0). Based on the above, whether the spatial value is the coordinate of a grid or the vertex index of a triangle, the spatial value can be compressed and the file size can be reduced. However, the compression algorithm 1010 can include not only these strategies but also some other strategies to be elaborated below. In one embodiment, position data (e.g., coordinates) can generally be stored as Cartesian coordinates. For example, a list of three values (X, Y, and Z) for each point can be stored. The data will be placed in an array such as [{x, y, z}, {x, y, z}, {x, y, z}]. In one embodiment, each channel (e.g., X, Y, or Z) can be processed separately. In other words, there is a separate list for each channel. However, the resulting compressed streams may still be interleaved with each other. In one embodiment, the position data can include vertex positions and texture coordinates. The vertex position is the coordinate of the vertex in the 3D model. The texture coordinate is the coordinate of the texture pixel mapped to each vertex. It should be noted that the triangle index can be stored separately, and the triangle index is the identification number used to identify each triangle. For the compression of position data, there may be two steps: (1) storing the numbers as integers with N bits precision, and (2) compressing the sequence of integers. To store the numbers as integers with N bits precision, in one embodiment, a sequence of numbers can be assumed, with the minimum value being MIN and the maximum value being MAX. The numerical range between MIN and MAX can be divided into 2 NN points, where N is an integer indicating the number of bits of precision utilized. For each number in the sequence, the number can be stored as an index of the nearest discretized point. For example, when N is 11, the value range between the minimum value (MIN) and the maximum value (MAX) of the number sequence can be divided into 2048 points. That is to say, as shown in the following table, MIN can be stored as 0 and MAX can be stored as 2047. However, the present disclosure is not limited thereto. Table 1 It should be noted that storing numbers in this way means that some precision may be lost. For example, if the range of the original numbers is from 0 to 8000, a range of 8001 numbers can be represented by only 2048 discrete points (numbers). Therefore, if the number in the sequence is 4001, it can be stored as the index of the 1024th discrete point, even though it may actually be closer to the 1023rd discrete point. The amount of precision lost depends on the value of N. The higher the value of N, the more precision is retained. However, the higher the value of N, the more space is required to store the data. Therefore, it is important to choose the value of N depending on the quality requirements. If the quality requirements are high, a higher value of N can be used. On the contrary, if the quality requirements are not so high, a lower value of N can be used to save space. To compress an integer sequence, three steps may be required: (1) store the uncompressed numbers in full precision, (2) calculate the offset (difference) of the next number, and (3) check the range of the offset. For example, if the number sequence is 2, 5, 4, 6, 8, these numbers can be directly stored in memory. In addition, by calculating the offset between each number, the number sequence can be converted into the sequence 2, 3, -1, 2, 2. If there is still a next number in the sequence, step (2) can be performed again. In addition, after calculating an offset or all offsets, the value / range of the offset can be checked to determine whether the offset is within a predetermined range. For example, if the offset is within -127 to 127, 127 can be added to the offset to store the result as an unsigned byte (i.e., remove the sign bit). The purpose is to remove the negative sign. That is, in the 3D model processing method 900, in response to the difference between the first spatial value and the second spatial value being negative, a compensation value can be added to ensure that the difference between the first spatial value and the second spatial value is positive. Therefore, the number sequence can be represented as an unsigned byte, thereby reducing one bit (i.e., the bit used to represent the sign) when storing data. On the contrary, if the offset is outside the predetermined range (e.g., -127 to 127), the binary value 255 can be stored to indicate that the next number will be stored in full precision. However, the present disclosure is not limited thereto. It should be noted that the strategy for position data takes advantage of the fact that geometric data is often stored very locally. Vertex positions are usually close to their neighbors, so most of the time only the offset needs to be stored. If the data provided jumps continuously from MIN to MAX, compression will be worse than storing the uncompressed numbers. However, in most cases, the compression is better than expected, thus reducing the file size of the 3D model. In one embodiment, the vertex indices of the triangles of a 3D model may often be stored in order. For example, the first triangle may have vertex indices V1, V2, V3, the second triangle may have vertex indices V4, V5, V6, and so on. To take advantage of this, the system may store only a single bit to indicate that the index of the next vertex is also the index of the next consecutive index. Specifically, as shown in Table 2 below, if triangle T1 with vertices V1, V2, and V3 has been stored, the index of the current vertex may be V3 (i.e., the most recently stored vertex), and the index of the next vertex of the next triangle T2 may be V4. Then, a single bit of the index of the next vertex (i.e., V4) may be stored as 0 to indicate that the next index is the next consecutive index (i.e., 4 immediately following 3). Thus, this can save space compared to storing all the data of the next vertex, because it only requires a single bit to store the next index of the next vertex. Table 2 On the other hand, if the index of the next vertex is not the next consecutive index, but it is one of the indices used by the previous three, the system may store 1 as the first bit of the index of the next vertex. Then, the next two bits of the index of the next vertex may be used to store the three previously used indices. That is, three bits may be used instead of a single bit to represent the index of the vertex. For example, if the current index of the vertex is V4 and the next index of the vertex is V1 (i.e., the first index among the previously used indices), the index of the next vertex may be stored as 100. Similarly, if the next index of the vertex is V2 (i.e., the second index among the previously used indices) or V3 (i.e., the third index among the previously used indices), the index of the next vertex may be stored as 101 or 110. However, the present disclosure is not limited to this. Additionally, if the index of the next vertex is not one of the indices used by the previous three, the index of the next vertex may be stored as 111 and the actual index may be stored as the subsequent bits of the index of the next vertex. For example, the third vertex of triangle T2 may be stored as 111 and V6. Therefore, by storing only a single bit to indicate whether the next index is the next consecutive index, triangle data can be stored in an efficient manner. In addition, when the next index is not the next consecutive index but it is one of the indices used by the previous three, only three bits are stored. In this way, the next index can be stored using a relatively small amount of space, thereby reducing the loading time of the 3D model. In one embodiment, in addition to position data and triangle data, a normal may be a vector that describes the angle and curvature of the mesh at each vertex position. To increase the compression ratio, a similar algorithm may be used to encode or compress the normals, and the details are not elaborated here. Based on the above, the compression algorithm 1010 may include different strategies for different components in the 3D model. Thus, by performing the compression algorithm 1010 on the original data of the 3D model, compressed data of the 3D model can be generated, and the size of the compressed data may be smaller than the original data, thereby reducing the loading time of the 3D model. FIG. 11 is a schematic diagram of a compression scenario of a 3D model according to an embodiment of the present disclosure. Referring to FIG. 11, the compression scenario 1100 illustrates how to group together triangles of a 3D model to reduce the size of the 3D model. In one embodiment, to improve the predictability of the mesh data (i.e., increase the compression ratio), the mesh of the 3D model can be subdivided into multiple groups of triangles. That is to say, in the 3D model processing method 900, before step S910, the meshes of nearby 3D models can be grouped into multiple groups of triangles. It should be noted that when forming groups, the triangles can be selected and share as many vertices and edges as possible based on being adjacent to each other. For example, as shown in FIG. 11, nearby triangles (e.g., triangles sharing an edge or adjacent triangles) are grouped together to reduce the amount of data. Since the data of each group is more similar than the data of the entire mesh, this helps to increase the compression ratio. In addition, once the triangle groups have been formed, the compression algorithm 1010 can be applied to the 3D model to further compress the data of each group of triangles individually. For example, the position data, triangle indices, vertex indices of the triangles, or normals can be compressed to reduce the size of the file of the 3D model, thereby reducing the loading time of the 3D model and enabling real-time streaming transmission of the 3D model. In summary, according to the 3D model processing system 100, the 3D model processing method 200, the 3D model processing method 700, and the 3D model processing method 900, when creating, compressing, or loading a 3D model, the loading time from the user side is considered simultaneously. Therefore, the 3D model can be streamed to the user device in real time, thereby enhancing the user experience. It will be apparent to those skilled in the art that various modifications and variations can be made to the disclosed embodiments without departing from the scope or spirit of the present disclosure. In summary, the present disclosure is intended to cover modifications and variations that fall within the scope of the following claims and their equivalents. 100: 3D model processing system 102: Storage circuit 104: Processor 200, 700, 900: 3D model processing methods 300A, 300B, 300C, 300D, 301C, 302C: Partitioned scenes 310, 410: Original models 320, 330: Original partitions 340: Hierarchical partitions 400: Baking scene 420: Texture map 422: Compressed map / compressed texture map 424: Baked texture map 430: Baked partition 500: Flattening scene 510, 520: Model levels 600: File format 800: Viewing scene 1000, 1100: Compression scenes 1010: Compression algorithm S210, S220, S230, S240, S250, S710, S720, S730, S740, S750, S910, S920, S930: Steps FIG. 1 is a schematic diagram of a 3D model processing system according to an embodiment of the present disclosure. FIG. 2 is a schematic flowchart of a 3D model processing method according to an embodiment of the present disclosure. FIG. 3A is a schematic diagram of a partitioned scene of a 3D model according to an embodiment of the present disclosure. FIG. 3B is a schematic diagram of a partitioned scene of a 3D model according to an embodiment of the present disclosure. FIG. 3C is a schematic diagram of a partitioned scene of a 3D model according to an embodiment of the present disclosure. FIG. 3D is a schematic diagram of a partitioned scene of a 3D model according to an embodiment of the present disclosure. FIG. 4 is a schematic diagram of a baking scene of a 3D model according to an embodiment of the present disclosure. FIG. 5 is a schematic diagram of a flattening scene of a 3D model according to an embodiment of the present disclosure. FIG. 6 is a schematic diagram of a file format of a 3D model processing system according to an embodiment of the present disclosure. FIG. 7 is a schematic flowchart of a 3D model processing method according to an embodiment of the present disclosure. FIG. 8 is a schematic diagram of a viewing scene of a 3D model according to an embodiment of the present disclosure. FIG. 9 is a schematic flowchart of a 3D model processing method according to an embodiment of the present disclosure. FIG. 10 is a schematic diagram of a compression scene of a 3D model according to an embodiment of the present disclosure. FIG. 11 is a schematic diagram of a compression scene of a 3D model according to an embodiment of the present disclosure. 200: 3D model processing method S210, S220, S230, S240, S250: Steps
Claims
1. A three-dimensional model processing system, comprising: Storage circuit, stored program code; The processor, coupled to the storage circuit, accesses the code to perform the following operations: obtaining multiple nodes of a 3D model; dividing the 3D model into a first original partition and a second original partition based on the material, wherein the first original partition includes a first set of nodes and the second original partition includes a second set of nodes; generating multiple first hierarchical partitions of different levels of detail for the first original partition based on the first set of nodes; and generating multiple second hierarchical partitions of different levels of detail for the second original partition based on the second set of nodes.
2. The 3D model processing system as claimed in claim 1, wherein the processor further performs the following operations: determining a request to view the 3D model; determining a first level of detail of the plurality of first hierarchical partitions based on the state of the user device; determining a second level of detail of the plurality of second hierarchical partitions based on the state of the user device; providing one of the plurality of first hierarchical partitions to the user device based on the first level of detail; and providing one of the plurality of second hierarchical partitions to the user device based on the second level of detail.
3. The three-dimensional model processing system as described in claim 2, wherein the state of the user device includes: The distance between the user representative object and the 3D model, the user's field of vision, the user's line of sight, the connection speed of the user device, or the computing power of the user device.
4. The three-dimensional model processing system as claimed in claim 2, wherein the processor further performs the following operations: in response to a decrease in the distance between a user representative object and the three-dimensional model, upgrades the first level of detail or the second level of detail to provide more detail to the three-dimensional model.
5. The three-dimensional model processing system as claimed in claim 2, wherein the processor further performs the following operations: in response to an increase in the distance between a user-represented object and the three-dimensional model, downgrading the first level of detail or the second level of detail to provide less detail to the three-dimensional model.
6. The 3D model processing system of claim 1, wherein the processor further performs the following operations: determining a request to view the 3D model; determining the lowest level of detail as a first level of detail of the plurality of first hierarchical partitions; determining the lowest level of detail as a second level of detail of the plurality of second hierarchical partitions; providing one of the plurality of first hierarchical partitions to a user device based on the first level of detail; and providing one of the plurality of second hierarchical partitions to the user device based on the second level of detail.
7. The three-dimensional model processing system as described in claim 1, wherein the first original partition belongs to a first material and the second original partition belongs to a second material.
8. The three-dimensional model processing system of claim 1, wherein the processor further performs the following operations: unfolding the three-dimensional model into a texture map; baking a baked texture by transferring a high-resolution model of the texture of the three-dimensional model to a low-resolution model; and applying the baked texture to a mesh of the three-dimensional model.
9. The three-dimensional model processing system as claimed in claim 1, wherein the processor further performs the following operations: performing a flattening process to remove all layers in the three-dimensional model.
10. A method for processing three-dimensional models, comprising: Obtain multiple nodes of the 3D model; Based on the material, the 3D model is divided into a first original partition and a second original partition, wherein the first original partition includes a first set of nodes and the second original partition includes a second set of nodes; based on the first set of nodes, multiple first hierarchical partitions with different levels of detail are generated for the first original partition; and based on the second set of nodes, multiple second hierarchical partitions with different levels of detail are generated for the second original partition.
11. The three-dimensional model processing method as described in claim 10 further includes: Determine the request to view the 3D model; Based on the state of the user device, determine the first level of detail of the plurality of first hierarchical partitions; Based on the state of the user device, determine the second level of detail of the plurality of second hierarchical partitions; based on the first level of detail, provide the user device with one of the plurality of first hierarchical partitions; And based on the second level of detail, provide one of the plurality of second hierarchical partitions to the user device.
12. The three-dimensional model processing method as described in claim 11, wherein the state of the user device includes: The distance between the user representative object and the 3D model, the user's field of vision, the user's line of sight, the connection speed of the user device, or the computing power of the user device.
13. The three-dimensional model processing method as described in claim 11 further includes: In response to a decrease in the distance between the user-represented object and the 3D model, the first level of detail or the second level of detail is upgraded to provide more detail to the 3D model.
14. The three-dimensional model processing method as described in claim 11 further includes: In response to an increase in the distance between the user-represented object and the 3D model, the first level of detail or the second level of detail is downgraded to provide less detail to the 3D model.
15. The three-dimensional model processing method as described in claim 10 further includes: Determine the request to view the 3D model; The lowest level of detail is determined to be the first level of detail of the plurality of first hierarchical partitions; The lowest level of detail is determined as the second level of detail of the plurality of second hierarchical partitions; based on the first level of detail, one of the plurality of first hierarchical partitions is provided to the user device; and based on the second level of detail, one of the plurality of second hierarchical partitions is provided to the user device.
16. The three-dimensional model processing method as described in claim 10, wherein the first original partition belongs to a first material and the second original partition belongs to a second material.
17. The three-dimensional model processing method as described in claim 10 further includes: The 3D model is unfolded into a texture map; Baked textures are produced by transferring the high-resolution model of the texture of the 3D model to a low-resolution model. And the baked texture is applied to the mesh of the three-dimensional model.
18. A non-transitory storage circuit for storing code, the code being configured to cause a processor to perform the following operations: obtaining a plurality of nodes of a three-dimensional model; dividing the three-dimensional model into a first original partition and a second original partition based on a material, wherein the first original partition includes a first set of nodes and the second original partition includes a second set of nodes; generating a plurality of first hierarchical partitions of different levels of detail for the first original partition based on the first set of nodes; and generating a plurality of second hierarchical partitions of different levels of detail for the second original partition based on the second set of nodes.
Citation Information
Patent Citations
Three-dimensional indoor map multi-detail-level visualization method based on CityGML extension
CN112000406A
Three-dimensional scene synthesis method and device
CN115713583A
Streaming method of multi-level design features for a three-dimensional model CAD drawing file
TW200915118A
Integration of three dimensional scene hierarchy into two dimensional compositing system
US20050243086A1
Encoding and decoding of texture mapping data in textured 3D mesh models
US20180253867A1
