Model tile loading method and apparatus, and storage medium

By judging the user's browsing status and controlling the loading method of model tiles, the problem of resource waste in fast browsing is solved, achieving effective network resource management and reducing CPU consumption, thus improving the frame rate of VR space.

CN116796090BActive Publication Date: 2026-05-05REALSEE (BEIJING) TECHNOLOGY CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
REALSEE (BEIJING) TECHNOLOGY CO LTD
Filing Date
2023-06-19
Publication Date
2026-05-05

AI Technical Summary

Technical Problem

When users move quickly, the loading of model tiles in existing technologies leads to resource waste and loading lag, and cannot effectively determine the user's browsing status, resulting in invalid loading.

Method used

By determining whether the user's browsing state is fast browsing or normal browsing, the dequeue operation of the network resource loading queue is controlled accordingly. In fast browsing, no visible tiles are loaded, while in normal browsing, tiles that are still visible in the current frame are loaded.

Benefits of technology

It reduced the amount of invalid downloads of network resources, reduced CPU consumption, and improved the frame rate in VR space.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116796090B_ABST
    Figure CN116796090B_ABST
Patent Text Reader

Abstract

This disclosure provides a model tile loading method, apparatus, and storage medium. The method includes: determining the user's browsing state based on first and second information; abandoning the dequeueing operation of tile identifier information in the network resource loading queue in response to the browsing state being fast browsing; performing the dequeueing operation of tile identifier information in the network resource loading queue in response to the browsing state being normal browsing; loading the tile identified by the dequeueed tile identifier information in response to the tile being visible in the current frame; and abandoning the loading of the tile identified by the dequeueed tile identifier information in response to the tile being not visible in the current frame. This disclosure can avoid invalid downloads of network resources and avoid CPU consumption caused by parsing downloaded resources, indirectly improving the frame rate of browsing VR space.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This disclosure relates to the field of three-dimensional texture and image processing technology, and in particular to a model tile loading method, apparatus and storage medium. Background Technology

[0002] Currently, the Web Graphics Library (WebGL) provides technical support for displaying and developing scene models (such as indoor space models) in browsers. One related technology involves dividing the scene model into an octree or quadtree. This allows for the selection of whether to load a 3D tile based on the distance between the camera and the model tile when the scene model is large, thus avoiding slow loading and stuttering issues caused by loading the entire scene model. However, when a user moves quickly in the scene, a tile that was visible in the previous frame may no longer be visible in the current frame. This results in the user stopping to observe carefully in the current frame, even though the tile seen in the previous frame has been loaded, it is no longer needed, leading to invalid loading of tile resources and wasting resources. Summary of the Invention

[0003] One technical problem to be solved by the embodiments of this disclosure is to provide a model tile loading method, apparatus and storage medium.

[0004] According to one aspect of the present disclosure, a model tile loading method is provided, applied to a scenario where a user browses a 3D model space in a browser client, the method comprising:

[0005] Based on the first information and the second information, the user's browsing status is determined. The first information is the information used to determine the visible tiles of the current frame, and the second information is the information used to determine the visible tiles of the previous frame.

[0006] In response to the browsing state being a fast browsing state, the dequeue operation of the tile identifier information in the network resource loading queue is abandoned. The fast browsing state is a browsing state in which network resources do not need to be loaded. The network resource loading queue records the tile identifier information of the identified visible tiles.

[0007] In response to the browsing state being a normal browsing state, a dequeue operation is performed on the tile identifier information in the network resource loading queue, where the normal browsing state is a browsing state that requires loading network resources;

[0008] In response to the tile identified by the dequeued tile identification information being a visible tile in the current frame, the tile identified by the tile identification information is loaded;

[0009] In response to the tile identified by the dequeued tile identification information not being a visible tile in the current frame, the loading of the tile identified by the tile identification information is abandoned.

[0010] In one embodiment of this disclosure, the dequeue operation of the tile identifier information in the network resource loading queue includes:

[0011] Following the first-in-first-out (FIFO) principle, the tile identification information of visible tiles in the network resource loading queue, excluding the current frame, is dequeued one by one.

[0012] In one embodiment of this disclosure, before determining the user's browsing status based on the first information and the second information, the method further includes:

[0013] Determine the visible tiles of the current frame;

[0014] Insert the tile identification information of the visible tiles of the current frame into the network resource loading queue.

[0015] In yet another embodiment of this disclosure, determining the visible tiles of the current frame includes:

[0016] Obtain the relevant parameters of the current camera corresponding to the current frame. The relevant parameters of the current camera include the camera field of view of the current camera and the distance between the camera and the model tile.

[0017] Calculate the camera frustum of the current camera based on the relevant parameters of the current camera;

[0018] A multi-detail tree visibility determination algorithm is used to calculate the model tiles within the camera frustum of the current camera to obtain the visible tiles of the current frame.

[0019] In another embodiment of this disclosure, inserting the tile identification information of the visible tiles of the current frame into the network resource loading queue includes:

[0020] Based on the depth-first traversal algorithm, the visible multi-detail tree of the current frame is traversed to obtain the enqueue order of the visible tiles of the current frame;

[0021] According to the enqueueing order, the tile identification information of the visible tiles of the current frame is sequentially inserted into the network resource loading queue.

[0022] In another embodiment of this disclosure, the first information is the camera position coordinates when determining the visible frame of the current frame, and the second information is the camera position coordinates when determining the visible frame of the previous frame.

[0023] Determining the user's browsing status based on the first information and the second information includes:

[0024] Calculate the positional offset between the first information and the second information;

[0025] In response to the position offset being greater than a set offset, the browsing state is determined to be a fast browsing state;

[0026] In response to the position offset not being greater than the set offset, the browsing state is determined to be a normal browsing state.

[0027] In another embodiment of this disclosure, the first information is the camera field of view when determining the visible frame of the current frame, and the second information is the camera field of view when determining the visible frame of the previous frame.

[0028] Determining the user's browsing status based on the first information and the second information includes:

[0029] Calculate the difference in field of view between the first information and the second information;

[0030] In response to the field of view difference being greater than a set field of view, the browsing state is determined to be a fast browsing state;

[0031] In response to the field of view difference not being greater than the set field of view, the browsing state is determined to be a normal browsing state.

[0032] According to another aspect of the present disclosure, a model tile loading device is provided, applied to a scenario where a user browses a 3D model space in a browser client, the device comprising:

[0033] The first determining module is used to determine the user's browsing status based on first information and second information, wherein the first information is information for determining the visible tiles of the current frame, and the second information is information for determining the visible tiles of the previous frame.

[0034] The first processing module is used to abandon the dequeue operation of tile identification information in the network resource loading queue in response to the browsing state being a fast browsing state. The fast browsing state is a browsing state in which network resources do not need to be loaded. The network resource loading queue records the tile identification information of the identified visible tiles.

[0035] The second processing module is used to perform a dequeue operation on the tile identification information in the network resource loading queue in response to the browsing state being a normal browsing state, wherein the normal browsing state is a browsing state in which network resources need to be loaded.

[0036] The resource loading module is used to load the tile identified by the tile identification information in response to the tile being dequeued being a visible tile in the current frame.

[0037] The abandon loading module is used to abandon loading the tile identified by the tile identification information in response to the tile being dequeued being a visible tile in the current frame.

[0038] In one embodiment of this disclosure, the resource loading module is specifically used to perform a dequeue operation on the tile identification information of visible tiles in the network resource loading queue, excluding the current frame, according to the first-in-first-out principle.

[0039] In one embodiment of this disclosure, the apparatus further includes:

[0040] A calculation module is used to determine the visible tiles of the current frame;

[0041] The enqueue module is used to insert the tile identification information of the visible tiles of the current frame into the network resource loading queue.

[0042] In one embodiment of this disclosure, the computing module includes:

[0043] The camera parameter acquisition submodule is used to acquire the relevant parameters of the current camera corresponding to the current frame. The relevant parameters of the current camera include the camera field of view of the current camera and the distance between the camera and the model tile.

[0044] The frustum calculation submodule is used to calculate the camera frustum of the current camera based on the relevant parameters of the current camera.

[0045] The tile calculation submodule is used to calculate the model tiles within the camera frustum range of the current camera using a multi-detail tree visibility judgment algorithm, thereby obtaining the visible tiles of the current frame.

[0046] In yet another embodiment of this disclosure, the queuing module includes:

[0047] The traversal submodule is used to traverse the visible multi-detail tree of the current frame based on the depth-first traversal algorithm to obtain the enqueue order of the visible tiles of the current frame.

[0048] An insertion submodule is used to sequentially insert the tile identification information of the visible tiles of the current frame into the network resource loading queue according to the enqueue order.

[0049] In another embodiment of this disclosure, the first information is the camera position coordinates when determining the visible frame of the current frame, and the second information is the camera position coordinates when determining the visible frame of the previous frame.

[0050] The first determining module includes:

[0051] The first calculation submodule is used to calculate the positional offset between the first information and the second information;

[0052] The first judgment submodule is used to determine the browsing state as a fast browsing state in response to the position offset being greater than a set offset.

[0053] The second judgment submodule is used to determine the browsing state as normal browsing state in response to the position offset not being greater than the set offset.

[0054] In another embodiment of this disclosure, the first information is the camera field of view when determining the visible frame of the current frame, and the second information is the camera field of view when determining the visible frame of the previous frame.

[0055] The first determining module includes:

[0056] The second calculation submodule is used to calculate the difference in field of view between the first information and the second information;

[0057] The third judgment submodule is used to determine the browsing state as fast browsing state in response to the difference in the field of view being greater than a set field of view.

[0058] The fourth judgment submodule is used to determine the browsing state as normal browsing state in response to the fact that the difference in the field of view is not greater than the set field of view.

[0059] According to another aspect of the present disclosure, an electronic device is provided, applied to a scenario where a user browses a three-dimensional model space in a browser client, the electronic device comprising:

[0060] Memory, used to store computer programs;

[0061] A processor is configured to execute a computer program stored in the memory, and when the computer program is executed, to implement the above-described model tile loading method.

[0062] According to another aspect of the present disclosure, a computer-readable storage medium is provided for use in a scenario where a user browses a three-dimensional model space in a browser client. The medium stores a computer program that, when executed by a processor, implements the above-described model tile loading method.

[0063] Based on the model tile loading method, apparatus, and storage medium provided in the above embodiments of this disclosure, this method is applied to a scenario where a user browses a 3D model space in a browser client that supports Web Graphics Library (WebGL) 2.0. The method determines the user's browsing state based on first and second information. When the browsing state is fast browsing, the dequeue operation of tile identifier information in the network resource loading queue is abandoned. The network resource loading queue records the tile identifier information of the identified visible tiles. When the browsing state is normal browsing, the dequeue operation of tile identifier information in the network resource loading queue is performed. If the tile identified by the dequeueed tile identifier information is still a visible tile in the current frame, the tile is loaded. If the tile identified by the dequeueed tile identifier information is no longer a visible tile in the current frame, the loading of the tile is abandoned. This disclosed technical solution can determine the user's browsing state and not load visible tiles in the fast browsing state. However, when the user observes carefully (normal browsing state), it further determines whether the visible tiles during the fast browsing are still visible tiles in the current frame, and only loads network resources that are still visible tiles in the current frame. This disclosed technical solution can reduce the amount of invalid downloads of network resources and avoid the CPU consumption caused by parsing downloaded resources, thereby indirectly improving the frame rate of browsing VR space.

[0064] The technical solutions of this disclosure will be further described in detail below with reference to the accompanying drawings and embodiments. Attached Figure Description

[0065] The accompanying drawings, which form part of this specification, illustrate embodiments of this disclosure and, together with the description, serve to explain the principles of this disclosure.

[0066] This disclosure will become clearer with reference to the accompanying drawings and the following detailed description, wherein:

[0067] Figure 1 A flowchart illustrating one embodiment of the model tile loading method of this disclosure;

[0068] Figure 2 A flowchart illustrating an embodiment of the model tile loading method of this disclosure for determining the visible tiles of the current frame;

[0069] Figure 3 This is a flowchart illustrating an embodiment of the tile enqueueing method in the model tile loading method of this disclosure;

[0070] Figure 4 This is a schematic diagram of the structure of one embodiment of the model tile loading device disclosed herein;

[0071] Figure 5This is a schematic diagram of another embodiment of the model tile loading device disclosed herein;

[0072] Figure 6 This is a structural diagram of an electronic device provided as an illustrative embodiment of the present disclosure. Detailed Implementation

[0073] Various exemplary embodiments of the present disclosure will now be described in detail with reference to the accompanying drawings. It should be noted that, unless otherwise specifically stated, the relative arrangement, numerical expressions, and values ​​of the components and steps set forth in these embodiments do not limit the scope of the present disclosure.

[0074] At the same time, it should be understood that, for ease of description, the dimensions of the various parts shown in the accompanying drawings are not drawn according to actual scale.

[0075] The following description of at least one exemplary embodiment is merely illustrative and is in no way intended to limit this disclosure or its application or use.

[0076] Techniques, methods, and equipment known to those skilled in the art may not be discussed in detail, but where appropriate, such techniques, methods, and equipment should be considered part of the specification.

[0077] It should be noted that similar labels and letters in the following figures indicate similar items; therefore, once an item is defined in one figure, it does not need to be discussed further in subsequent figures.

[0078] This disclosure can be applied to electronic devices such as computer systems / servers, which can operate with a wide range of other general-purpose or special-purpose computing system environments or configurations. Examples of well-known computing systems, environments, and / or configurations suitable for use with electronic devices such as computer systems / servers include, but are not limited to: personal computer systems, server computer systems, thin clients, thick clients, handheld or laptop devices, microprocessor-based systems, set-top boxes, programmable consumer electronics, network PCs, minicomputer systems, mainframe computer systems, and distributed cloud computing environments including any of the above systems, etc.

[0079] Electronic devices such as computer systems / servers can be described in the general context of computer-executable instructions (such as program modules) executed by the computer system. Typically, program modules can include routines, programs, object programs, components, logic, data structures, etc., which perform specific tasks or implement specific abstract data types. Computer systems / servers can be implemented in distributed cloud computing environments, where tasks are performed by remote processing devices linked through communication networks. In distributed cloud computing environments, program modules can reside on local or remote computing system storage media, including storage devices.

[0080] This disclosure outlines

[0081] The technical solution provided in this disclosure is applied to scenarios where 3D model rendering is loaded and displayed in a browser client. To address the problem of increased invalid downloads of network resources caused by loading and displaying every visible tile in every frame when a user quickly browses a 3D model in a browser client, this disclosure provides a new model tile loading technology. To implement this technology, the browser needs to support WebGL. A WebGL-based 3D texture application programming interface can load 3D models into video memory for rendering and display. The model tile loading technology provided in this disclosure can prevent the loading of visible tiles during fast browsing. However, during careful observation (normal browsing), it further determines whether the visible tiles from the user's fast browsing are still visible in the current frame, and only loads network resources that are still visible in the current frame, significantly reducing invalid downloads of network resources.

[0082] Exemplary embodiments

[0083] Figure 1 This is a flowchart illustrating one embodiment of the model tile loading method disclosed herein; this model tile loading method can be applied to electronic devices (such as mobile terminals), and the browser on the electronic device needs to support WebGL 2.0. Figure 1 As shown, the model tile loading method includes the following steps:

[0084] In step 101, the user's browsing status is determined based on the first information and the second information. The first information is the information used to determine the visible tiles of the current frame, and the second information is the information used to determine the visible tiles of the previous frame.

[0085] In one embodiment, before specifically implementing the embodiments of this disclosure, it is necessary to ensure that the browser supports WebGL. If the browser does not support it, a prompt message can be displayed to remind the user to upgrade the browser version.

[0086] In one embodiment, when a user explores a three-dimensional spatial model using Virtual Reality (VR) technology, visible tiles are calculated for each frame. The frame rate for determining the visible tiles in each frame can be the browser's refresh rate, for example, 60Hz (60 frames per second) or 75Hz (75 frames per second).

[0087] In this embodiment of the disclosure, tile data of a 3D model can be generated offline in the background, and the tile data can be organized according to a tree data structure, which can be called a Levels of Detail (LOD) tree.

[0088] In one embodiment, the first information may be the camera position coordinates when determining the visible tiles of the current frame, and the second information may be the camera position coordinates when determining the visible tiles of the previous frame.

[0089] Determining the user's browsing state based on the first information and the second information includes: calculating the positional offset between the first information and the second information; determining the browsing state as a fast browsing state in response to the positional offset being greater than a set offset; and determining the browsing state as a normal browsing state in response to the positional offset not being greater than the set offset.

[0090] The offset setting can be a pre-set offset value. By pre-configuring the offset setting, when the camera positions of two consecutive frames are far apart (the position offset is greater than the set offset), the current user's browsing state can be determined to be fast browsing state, and step 102 can be executed. When the camera positions of two consecutive frames are small apart (the position offset is not greater than the set offset), the current user's browsing state can be determined to be normal browsing state, and step 103 can be executed.

[0091] In one embodiment, the first information is the camera field of view when determining the visible frame of the current frame, and the second information is the camera field of view when determining the visible frame of the previous frame.

[0092] The specific implementation method for determining the browsing state of a user browsing a 3D spatial model based on the camera field of view of the current frame and the camera field of view of the previous frame is as follows: calculate the difference in field of view between the first information and the second information; in response to the difference in field of view being greater than a set field of view, determine the browsing state as a fast browsing state; in response to the difference in field of view not being greater than the set field of view, determine the browsing state as a normal browsing state.

[0093] The field of view difference can be set to a relatively small time interval, such as 45 degrees. By pre-configuring the field of view, when the difference between the camera's field of view of two consecutive frames is relatively large (the difference is greater than the set field of view), the current user's browsing state is determined to be fast browsing state, and step 102 can be executed. When the difference between the camera's field of view of two consecutive frames is relatively small (the difference is not greater than the set field of view), the current user's browsing state is determined to be normal browsing state, and step 103 can be executed.

[0094] In one embodiment, besides directly determining the user's browsing state based on the difference in field of view between two consecutive frames, the user's browsing state can also be determined by combining two factors: the camera position offset of two consecutive frames and the difference in field of view between two consecutive frames. For example, if the position offset is greater than a set offset and the difference in field of view is greater than a set field of view, the user's browsing state is determined to be fast browsing; if the position offset is not greater than a set time and the difference in field of view is not greater than a set field of view, the user's browsing state is determined to be normal browsing.

[0095] It should be noted that there are multiple ways to determine the user's browsing state by combining the position offset and the difference in field of view between two consecutive frames. For example, the position offset and the difference in field of view can be weighted and summed to obtain camera change information for two consecutive frames, and the user's browsing state can be determined based on this camera change information. Any method that determines the browsing state using camera parameter information from two frames of data falls within the protection scope of this disclosure.

[0096] In step 102, in response to the browsing state being a fast browsing state, the dequeue operation of the tile identifier information in the network resource loading queue is abandoned. The fast browsing state is a browsing state in which network resources do not need to be loaded. The network resource loading queue records the tile identifier information of the identified visible tiles.

[0097] In one embodiment, the tile identification information may include basic information about the tile, such as its depth and position, used to identify the tile. In another embodiment, the tile identification information may further include the frame number at the time of enqueueing, which indicates in which frame the tile is visible.

[0098] In one embodiment, before determining the visible tiles of the current frame, the network resource loading queue records the visible tiles of the previous N frames, where N is a natural number not less than 1. Each time the visible tiles of a frame are determined, the tile identifier information of the determined visible tiles is inserted into the network resource loading queue. During LOD engine initialization, a network resource loading queue is maintained; this queue is a first-in, first-out priority queue and is initialized to empty. For a detailed implementation of calculating the visible tiles of the current frame, please refer to [reference needed]. Figure 2 The embodiment shown illustrates a specific implementation method for adding the tile identification information of visible tiles to the network resource loading queue, which can be found in [reference needed]. Figure 3 The embodiments shown are not described in detail here.

[0099] In the model tile loading scheme provided in this embodiment, after calculating the visible tiles of each frame, the visible tiles of the current frame are not loaded in the current frame when the visible tiles are obtained. Instead, the tile identification information of the visible tiles is first added to the network resource loading queue according to the depth-first algorithm. Then, when a frame of data is obtained in the future, the user's browsing state is determined based on the information obtained when the visible tiles of two consecutive frames are obtained. If the browsing state is a fast browsing state, the loading of network resources is abandoned, that is, the network resource dequeue operation of the network resource loading queue is not performed.

[0100] In step 103, in response to the browsing state being a normal browsing state, a dequeue operation is performed on the tile identifier information in the network resource loading queue. The normal browsing state is a browsing state that requires loading network resources.

[0101] In one embodiment, if the user is currently browsing the 3D model space normally, for example, when the user is moving the camera normally or zooming in on the camera's field of view (FOV), the tile identification information of the visible tiles in the network resource loading queue, excluding the current frame, can be dequeued one by one according to the first-in-first-out queue principle.

[0102] After dequeuing the tile identifier information of visible tiles from the network resource loading queue, it can be further determined whether the tile identified by the dequeued tile identifier information is also a visible tile of the current frame. Specifically, after calculating the visible tiles of each frame, the tile identifier information of that visible tile is stored in a set of visible tiles for the current frame. Each dequeued tile identifier information is compared with the tile identifier information in the set of visible tiles for the current frame. If the dequeued tile identifier information also exists in the set of visible tiles for the current frame, then it can be determined that the tile identified by the dequeued tile identifier information is also a visible tile of the current frame, and step 104 is executed; if the tile identified by the dequeued tile identifier information does not exist in the set of visible tiles for the current frame, then it can be determined that the tile identified by the dequeued tile identifier information is not visible in the current frame, and step 105 is executed. The set of visible tiles for the current frame only records the tile identifier information of the visible tiles of the current frame.

[0103] In step 104, in response to the tile identified by the dequeued tile identification information being a visible tile in the current frame, the tile identified by the tile identification information is loaded.

[0104] In step 105, in response to the tile identified by the dequeued tile identification information not being a visible tile in the current frame, loading the tile identified by the tile identification information is abandoned.

[0105] In one embodiment, in steps 104 and 105, when it is determined that the tile identified by the dequeued tile identifier information is visible in the current frame, network resources are loaded. When it is determined that the tile identified by the dequeued tile identifier information is not visible in the current frame, it can be discarded directly, and then the next tile identifier information is dequeued, until only the tile identifier information of the visible tiles of the current frame remains in the network resource loading queue.

[0106] In steps 101-105 above, the user's browsing state is determined based on the first and second information. When the browsing state is fast browsing, the dequeue operation of tile identifier information in the network resource loading queue is abandoned. The network resource loading queue records the tile identifier information of the identified visible tiles. When the browsing state is normal browsing, the dequeue operation of tile identifier information in the network resource loading queue is performed. If the tile identified by the dequeueed tile identifier information is still a visible tile in the current frame, the tile is loaded. If the tile identified by the dequeueed tile identifier information is no longer a visible tile in the current frame, the loading of the tile is abandoned. This technical solution can determine the user's browsing state and not load visible tiles in fast browsing. When the user observes carefully (normal browsing), by further determining whether the visible tiles during fast browsing are still visible in the current frame, only network resources that are still visible in the current frame are loaded. This technical solution can reduce the amount of invalid downloads of network resources and avoid the CPU consumption caused by parsing downloaded resources, indirectly improving the frame rate of browsing VR space.

[0107] To better illustrate the model tile loading scheme of this disclosure, another embodiment is described below.

[0108] Figure 2 This is a flowchart illustrating an embodiment of the model tile loading method of this disclosure for determining the visible tiles of the current frame; this embodiment uses the calculation of the visible tiles of the current frame as an example for illustrative explanation. Figure 2 As shown, it includes the following steps:

[0109] In step 201, the relevant parameters of the current camera corresponding to the current frame are obtained. The relevant parameters of the current camera include the camera field of view of the current camera and the distance between the camera and the model tile.

[0110] In step 202, the camera frustum of the current camera is calculated based on the relevant parameters of the current camera.

[0111] In step 203, a multi-detail tree visibility determination algorithm is used to calculate the model tiles within the camera frustum of the current camera to obtain the visible tiles of the current frame.

[0112] In steps 201 to 203, the relevant parameters of the current camera may include the camera's field of view, the distance between the camera and the tiles, etc. Generally, the larger the camera's field of view, the larger the model tiles it includes; and the farther the distance between the camera and the tiles, the larger the model tiles it includes. The model tiles can also be refined based on the distance between the camera and the model tiles. Model tiles that are far away are still kept large, while model tiles that are close can be further updated to calculate sub-tiles.

[0113] In one embodiment, the corresponding camera frustum can be calculated based on the relevant parameters of the camera. For each tile, it is necessary to determine whether the tile appears in the camera frustum through a relevant algorithm. That is, it is necessary to calculate whether the camera frustum intersects with the model tile and remove the non-intersecting model tiles.

[0114] In one embodiment, a multi-detail tree visibility determination algorithm of related technologies can be used to calculate the model tiles within the camera frustum range of the current camera to obtain the visible tiles of the current frame. This disclosure does not limit the scope of the present invention.

[0115] Through steps 201 to 203 above, the visible tiles of each frame can be calculated. Subsequently, the visible tiles of each frame can be inserted into the network resource loading queue, thereby realizing the comparison of visible tiles of consecutive frames and loading the visible tiles of the current frame that overlap with the previous N frames, thus avoiding invalid downloads of resources.

[0116] Figure 3 This is a flowchart illustrating an embodiment of the tile enqueueing method in the model tile loading method of this disclosure; this embodiment uses the addition of the tile identifier information of visible tiles to the network resource loading queue as an example for illustrative purposes. Figure 3 As shown, it includes the following steps:

[0117] In step 301, based on the depth-first traversal algorithm, the visible multi-detail tree of the current frame is traversed to obtain the enqueue order of the visible tiles of the current frame.

[0118] In one embodiment, the depth-first traversal algorithm refers to traversing the bottom layer and refined tiles first, and arranging the model tiles according to their depth in the LOD tree. It can be seen that there are 11 tiles with depths of 1, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4. Therefore, the enqueue order of the tiles is 4, 4, 4, 3, 3, 3, 3, 2, 2, 2, 1.

[0119] In step 302, the tile identification information of the visible tiles of the current frame is inserted into the network resource loading queue in the order of enqueueing.

[0120] By following steps 301 to 302 above, and using the depth-first traversal algorithm, we can ensure that model tiles with greater depth and higher subdivision are loaded first, thereby improving the display effect of the 3D model.

[0121] Corresponding to the aforementioned embodiments of the model tile loading method, this disclosure also provides embodiments of the model tile loading device.

[0122] Figure 4This is a schematic diagram of one embodiment of the model tile loading device disclosed herein. The device is applied to an electronic device (such as a computer system or server) that supports a WebGL browser client, such as... Figure 4 As shown, the device includes:

[0123] The first determining module 41 is used to determine the user's browsing status based on the first information and the second information, wherein the first information is the information for determining the visible tiles of the current frame, and the second information is the information for determining the visible tiles of the previous frame.

[0124] The first processing module 42 is used to abandon the dequeue operation of tile identification information in the network resource loading queue in response to the browsing state being a fast browsing state. The fast browsing state is a browsing state in which network resources do not need to be loaded. The network resource loading queue records the tile identification information of the identified visible tiles.

[0125] The second processing module 43 is used to perform a dequeue operation on the tile identification information in the network resource loading queue in response to the browsing state being a normal browsing state, wherein the normal browsing state is a browsing state in which network resources need to be loaded.

[0126] Resource loading module 44 is used to load the tile identified by the tile identification information in response to the tile being dequeued being a visible tile in the current frame;

[0127] The abandon loading module 45 is used to abandon loading the tile identified by the tile identification information in response to the tile being dequeued being a visible tile in the current frame.

[0128] Figure 5 This is a schematic diagram of another embodiment of the model tile loading device disclosed herein, as shown below. Figure 5 As shown, in Figure 4 Based on the illustrated embodiment, in one embodiment, the resource loading module 44 is specifically used to perform a dequeue operation on the tile identification information of visible tiles in other frames besides the current frame in the network resource loading queue according to the first-in-first-out principle.

[0129] In one embodiment, the device further includes:

[0130] Calculation module 46 is used to determine the visible tiles of the current frame;

[0131] The enqueue module 47 is used to insert the tile identification information of the visible tiles of the current frame into the network resource loading queue.

[0132] In one embodiment, the computing module 46 includes:

[0133] The camera parameter acquisition submodule 461 is used to acquire the relevant parameters of the current camera corresponding to the current frame. The relevant parameters of the current camera include the camera field of view of the current camera and the distance between the camera and the model tile.

[0134] The frustum calculation submodule 462 is used to calculate the camera frustum of the current camera based on the relevant parameters of the current camera.

[0135] The tile calculation submodule 463 is used to calculate the model tiles within the camera frustum range of the current camera using a multi-detail tree visibility judgment algorithm, so as to obtain the visible tiles of the current frame.

[0136] In one embodiment, the queuing module 47 includes:

[0137] Traversal submodule 471 is used to traverse the visible multi-detail level tree of the current frame based on the depth-first traversal algorithm to obtain the enqueue order of the visible tiles of the current frame.

[0138] Insertion submodule 472 is used to sequentially insert the tile identification information of the visible tiles of the current frame into the network resource loading queue according to the enqueue order.

[0139] In one embodiment, the first information is the camera position coordinates when determining the visible frame of the current frame, and the second information is the camera position coordinates when determining the visible frame of the previous frame.

[0140] The first determining module 41 includes:

[0141] The first calculation submodule 411 is used to calculate the positional offset between the first information and the second information;

[0142] The first judgment submodule 412 is used to determine the browsing state as a fast browsing state in response to the position offset being greater than a set offset.

[0143] The second judgment submodule 413 is used to determine the browsing state as normal browsing state in response to the position offset not being greater than the set offset.

[0144] In one embodiment, the first information is the camera field of view when determining the visible frame of the current frame, and the second information is the camera field of view when determining the visible frame of the previous frame.

[0145] The first determining module 41 includes:

[0146] The second calculation submodule 414 is used to calculate the field angle difference between the first information and the second information;

[0147] The third judgment submodule 415 is used to determine the browsing state as a fast browsing state in response to the field of view difference being greater than a set field of view.

[0148] The fourth judgment submodule 416 is used to determine the browsing state as normal browsing state in response to the fact that the difference in the field of view is not greater than the set field of view.

[0149] The specific implementation process of the functions and roles of each unit in the above device can be found in the implementation process of the corresponding steps in the above method, and will not be repeated here.

[0150] For the device embodiments, since they basically correspond to the method embodiments, the relevant parts can be referred to in the description of the method embodiments. The device embodiments described above are merely illustrative, wherein the units described as separate components may or may not be physically separate, and the components shown as units may or may not be physical units, that is, they may be located in one place or distributed across multiple network units. Some or all of the modules can be selected to achieve the purpose of this disclosure according to actual needs. Those skilled in the art can understand and implement this without creative effort.

[0151] Below, for reference Figure 6 This describes an electronic device according to embodiments of the present disclosure, wherein apparatus for implementing methods according to embodiments of the present disclosure may be integrated. Figure 6 This is a structural diagram of an electronic device provided in an illustrative embodiment of the present disclosure, such as... Figure 6 As shown, the electronic device includes one or more processors 61, one or more memory 62s of computer-readable storage media, and a computer program stored in the memory and executable on the processor. When the program in the memory 62 is executed, the above-described model tile loading method can be implemented.

[0152] Specifically, in practical applications, the electronic device may also include components such as an input device 63 and an output device 64, which are interconnected via a bus system and / or other forms of connection mechanisms (not shown). Those skilled in the art will understand that... Figure 6 The structure of the electronic device shown does not constitute a limitation on the electronic device and may include more or fewer components than shown, or certain components, or different component arrangements. Wherein:

[0153] The processor 61 may be a central processing unit (CPU) or other form of processing unit with data processing and / or instruction execution capabilities. It performs various functions and processes data by running or executing software programs and / or modules stored in memory 62 and calling data stored in memory 62, thereby providing overall monitoring of the electronic device.

[0154] The memory 62 may include one or more computer program products, which may include various forms of computer-readable storage media, such as volatile memory and / or non-volatile memory. Volatile memory may include, for example, random access memory (RAM) and / or cache memory. Non-volatile memory may include, for example, read-only memory (ROM), hard disk, flash memory, etc. One or more computer program instructions may be stored on the computer-readable storage medium, and the processor 61 may execute the program instructions to implement the model tile loading methods of the various embodiments of this disclosure described above and / or other desired functions. Various contents such as input signals, signal components, and noise components may also be stored in the computer-readable storage medium.

[0155] The input device 63 can be used to receive input digital or character information, and to generate keyboard, mouse, joystick, optical or trackball signal inputs related to user settings and function control.

[0156] The output device 64 can output various information to the outside, including determined distance information, direction information, etc. The output device 64 may include, for example, a display, a speaker, a printer, and a communication network and its connected remote output devices, etc.

[0157] The electronic device may also include a power supply for powering various components, which can be logically connected to the processor 61 through a power management system, thereby enabling functions such as managing charging, discharging, and power consumption through the power management system. The power supply may also include one or more DC or AC power sources, recharging systems, power fault detection circuits, power converters or inverters, power status indicators, and any other components.

[0158] Of course, for the sake of simplicity, Figure 6 Only some of the components of the electronic device relevant to this disclosure are shown, omitting components such as buses and input / output interfaces. In addition, the electronic device may include any other suitable components depending on the specific application.

[0159] In addition to the methods and apparatus described above, embodiments of this disclosure may also be computer program products comprising computer program instructions that, when executed by a processor, cause the processor to perform the steps in the model tile loading methods according to various embodiments of this disclosure as described in the "Exemplary Methods" section of this specification.

[0160] The computer program product can be written in any combination of one or more programming languages ​​to perform the operations of the embodiments of this disclosure. The programming languages ​​include object-oriented programming languages ​​such as Java and C++, as well as conventional procedural programming languages ​​such as C or similar languages. The program code can be executed entirely on a user's computing device, partially on a user's computing device, as a standalone software package, partially on a user's computing device and partially on a remote computing device, or entirely on a remote computing device or server.

[0161] Furthermore, embodiments of this disclosure may also be computer-readable storage media storing computer program instructions thereon, which, when executed by a processor, cause the processor to perform the steps in the model tile loading methods according to various embodiments of this disclosure as described in the "Exemplary Methods" section above.

[0162] The computer-readable storage medium may be any combination of one or more readable media. A readable medium may be a readable signal medium or a readable storage medium. A readable storage medium may, for example, include, but is not limited to, electrical, magnetic, optical, electromagnetic, infrared, or semiconductor systems, apparatuses, or devices, or any combination thereof. More specific examples of readable storage media (a non-exhaustive list) include: electrical connections having one or more wires, portable disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), optical fibers, portable compact disk read-only memory (CD-ROM), optical storage devices, magnetic storage devices, or any suitable combination thereof.

[0163] The basic principles of this disclosure have been described above with reference to specific embodiments. However, it should be noted that the advantages, benefits, and effects mentioned in this disclosure are merely examples and not limitations, and should not be considered as essential features of each embodiment of this disclosure. Furthermore, the specific details disclosed above are for illustrative and facilitative purposes only, and are not limitations. These details do not limit the scope of this disclosure to the necessity of employing the aforementioned specific details for implementation.

[0164] The various embodiments in this specification are described in a progressive manner, with each embodiment focusing on its differences from other embodiments. Similar or identical parts between embodiments can be referred to interchangeably. For system embodiments, since they largely correspond to method embodiments, the description is relatively simple; relevant parts can be referred to the descriptions in the method embodiments.

[0165] Those skilled in the art will understand that all or part of the steps of the above method embodiments can be implemented by hardware related to program instructions. The aforementioned program can be stored in a computer-readable storage medium. When the program is executed, it performs the steps of the above method embodiments. The aforementioned storage medium includes various media that can store program code, such as ROM, RAM, magnetic disk, or optical disk.

[0166] The methods and apparatus of this disclosure may be implemented in many ways. For example, they may be implemented by software, hardware, firmware, or any combination of software, hardware, and firmware. The above-described order of steps for the methods is for illustrative purposes only, and the steps of the methods of this disclosure are not limited to the order specifically described above unless otherwise specifically stated. Furthermore, in some embodiments, this disclosure may also be implemented as a program recorded on a recording medium, the program including machine-readable instructions for implementing the methods according to this disclosure. Thus, this disclosure also covers recording media storing programs for performing the methods according to this disclosure.

[0167] The description in this disclosure is provided for illustrative and descriptive purposes only and is not intended to be exhaustive or to limit the disclosure to its forms. Many modifications and variations will be apparent to those skilled in the art. The embodiments were chosen and described in order to better illustrate the principles and practical application of this disclosure and to enable those skilled in the art to understand this disclosure and to design various embodiments with various modifications suitable for a particular purpose.

Claims

1. A method for loading model tiles, characterized in that, The method, applicable to scenarios where users browse a 3D model space in a browser client, includes: Based on the first information and the second information, the user's browsing status is determined. The first information is the camera field of view or camera position coordinates when determining the visible tiles of the current frame, and the second information is the camera field of view or camera position coordinates when determining the visible tiles of the previous frame. In response to the browsing state being a fast browsing state, the dequeue operation of the tile identifier information in the network resource loading queue is abandoned. The fast browsing state is a browsing state in which network resources do not need to be loaded. The network resource loading queue records the tile identifier information of the identified visible tiles. In response to the browsing state being a normal browsing state, a dequeue operation is performed on the tile identifier information in the network resource loading queue, where the normal browsing state is a browsing state that requires loading network resources; In response to the tile identified by the dequeued tile identification information being a visible tile in the current frame, the tile identified by the tile identification information is loaded; If the tile identified by the dequeued tile identification information is not a visible tile in the current frame, the loading of the tile identified by the tile identification information is abandoned. Determining the user's browsing status based on the first information and the second information includes: Calculate the positional offset between the first information and the second information; in response to the positional offset being greater than a set offset, determine the browsing state as a fast browsing state; in response to the positional offset not being greater than the set offset, determine the browsing state as a normal browsing state; or, Calculate the difference in field of view between the first information and the second information; in response to the difference in field of view being greater than a set field of view, determine the browsing state as a fast browsing state; in response to the difference in field of view not being greater than the set field of view, determine the browsing state as a normal browsing state.

2. The method according to claim 1, characterized in that, The dequeue operation for tile identifier information in the network resource loading queue includes: Following the first-in-first-out (FIFO) principle, the tile identification information of visible tiles in the network resource loading queue, excluding the current frame, is dequeued one by one.

3. The method according to claim 2, characterized in that, Before determining the user's browsing status based on the first information and the second information, the method further includes: Determine the visible tiles of the current frame; Insert the tile identification information of the visible tiles of the current frame into the network resource loading queue.

4. The method according to claim 3, characterized in that, Determining the visible tiles of the current frame includes: Obtain the relevant parameters of the current camera corresponding to the current frame. The relevant parameters of the current camera include the camera field of view of the current camera and the distance between the camera and the model tile. Calculate the camera frustum of the current camera based on the relevant parameters of the current camera; A multi-detail tree visibility determination algorithm is used to calculate the model tiles within the camera frustum of the current camera to obtain the visible tiles of the current frame.

5. The method according to claim 3, characterized in that, The step of inserting the tile identifier information of the visible tiles of the current frame into the network resource loading queue includes: Based on the depth-first traversal algorithm, the visible multi-detail tree of the current frame is traversed to obtain the enqueue order of the visible tiles of the current frame; According to the enqueueing order, the tile identification information of the visible tiles of the current frame is sequentially inserted into the network resource loading queue.

6. A model tile loading device, characterized in that, The device, applicable to scenarios where users browse a 3D model space in a browser client, includes: The first determining module is used to determine the user's browsing status based on the first information and the second information. The first information is the camera field of view or camera position coordinates when determining the visible tiles of the current frame, and the second information is the camera field of view or camera position coordinates when determining the visible tiles of the previous frame. The first processing module is used to abandon the dequeue operation of tile identification information in the network resource loading queue in response to the browsing state being a fast browsing state. The fast browsing state is a browsing state in which network resources do not need to be loaded. The network resource loading queue records the tile identification information of the identified visible tiles. The second processing module is used to perform a dequeue operation on the tile identification information in the network resource loading queue in response to the browsing state being a normal browsing state, wherein the normal browsing state is a browsing state in which network resources need to be loaded. The resource loading module is used to load the tile identified by the tile identification information in response to the tile being dequeued being a visible tile in the current frame. The abandon loading module is used to abandon loading the tile identified by the tile identification information in response to the tile being dequeued being a visible tile in the current frame. The first determining module includes: a first calculation submodule, used to calculate the positional offset between the first information and the second information; a first determining submodule, used to determine the browsing state as a fast browsing state in response to the positional offset being greater than a set offset; and a second determining submodule, used to determine the browsing state as a normal browsing state in response to the positional offset not being greater than the set offset; or... The first determining module includes: a second calculation submodule, used to calculate the difference in field of view between the first information and the second information; a third judging submodule, used to determine the browsing state as a fast browsing state in response to the difference in field of view being greater than a set field of view; and a fourth judging submodule, used to determine the browsing state as a normal browsing state in response to the difference in field of view not being greater than the set field of view.

7. An electronic device, characterized in that, This is applicable to scenarios where users browse 3D model space in a browser client, including: Memory, used to store information in computer products; A processor for executing a computer product stored in the memory, wherein, when the computer product is executed, it implements the method described in any one of claims 1-5.

8. A computer-readable storage medium storing computer instructions thereon, characterized in that, When applied to scenarios where users browse a 3D model space in a browser client, the computer instructions, when executed by a processor, implement the method described in any one of claims 1-5.

Citation Information

Patent Citations

  • Loading method and system of vector tile data, service terminal and memory

    CN107766487A

  • Automatic downloading method and device of map tile, equipment and storage medium

    CN115102948A