IP Library Granted Patent US 12682551
Granted Patent B2
US 12682551 · App. 18/698,205 · Granted Jul 14, 2026

Data processing method and server based on voxel data, medium and computer program product

Inventors: Zhikai Li (Shanghai, CN); Huanhua Liao (Shanghai, CN); Xin Xiong (Shanghai, CN); Haonan Zhao (Shanghai, CN)
Assignee: Shanghai Lilith Interactive Entertainment Network Technology Co., Ltd.
G06T15/08G06T15/00G06T15/005A63F13/52G06T2210/52
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12682551
App. No.
18/698,205
Granted
Jul 14, 2026
Kind
B2
Abstract

The present invention provides a data processing method and server based on voxel data, a medium, and a computer program product. Pixel data is converted into voxel data, and this is highly compatible with a GPU operation. Layer data and connection data are designed from the voxel data, and a parallel computing speed is faster by using the layer data and the connection data, so that compared with the existing CPU computing mode, the performance of the GPU-based data computing solution is 2 to 3 orders of magnitude higher than that of the CPU-based computing mode, making the AI algorithm more refined and higher anthropomorphic. In the dynamic update process, due to the fast parallel computing speed, the data of the global super-large map of the game can be quickly updated. The entire set of data is divided into static data that occupies a large memory and dynamic data that occupies a small memory, so that the video memory space occupied during the entire game process is small, and the time used to refresh the dynamic data each time is also extremely short, making the game smoother.

Claims (71)

1 . A data processing method based on voxel data, wherein the data processing method comprises the following steps:

in a x, y, z three-dimensional space, taking a base plane of z=z', wherein there are multiple base points on the base plane; and forming multiple base columns by using a base point as a bottom point and using a z coordinate as a height, wherein there are L element points on each base column;

accessing the multiple base columns in parallel in a graphic processing unit (GPU), traversing each element point on each base column in each parallel thread, reaching a voxel point corresponding to that element point by indexing according to the voxel data, and determining whether the voxel point is a hollow point or a solid point;

collecting a continuous hollow point segment on each base column, and if a height of the continuous hollow point segment is greater than or equal to a first preset height, defining the continuous hollow point segment as a voxel layer; and

obtaining a positional relationship between each voxel layer on each base column and each voxel layer on an adjacent base column by calculation, and if there is an overlapping part between two voxel layers in a height direction, determining that there is connection data between the two voxel layers, so that an operation object passes between the two voxel layers;

wherein

the voxel point, the two voxel layers, and the connection data constitute a three-dimensional space based on the voxel data.

2 . The data processing method according to claim 1 , wherein if a height of the overlapping part is smaller than the first preset height, determining that the connection data is impassable, and indicating that the operation object cannot pass between the two voxel layers; and if the height of the overlapping part is greater than or equal to the first preset height, determining that the connection data is passable, and indicating that the operation object can pass between the two voxel layers.

3 . The data processing method according to claim 2 , wherein the first preset height is greater than or equal to a height of the operation object, and the two voxel layers comprise a first voxel layer and a second voxel layer, a height of a lowest element point of the first voxel layer is n, and a height of a lowest element point of the second voxel layer is f, wherein:

if the height of the overlapping part is greater than or equal to the first preset height, and f-nga second preset height, determining that the connection data is first passable data, and indicating that a manner in which the operation object passes from the first voxel layer to the second voxel layer comprises a first passing manner and a second passing manner;

if the height of the overlapping part is greater than or equal to the first preset height, and the second preset height<f−n<a third preset height, determining that the connection data is second passable data, and indicating that the manner in which the operation object passes from the first voxel layer to the second voxel layer comprises a third passing manner; and

if the height of the overlapping part is greater than or equal to the first preset height, and the third preset height<f−n<a fourth preset height, determining that the connection data is third passable data, and indicating that the manner in which the operation object passes from the first voxel layer to the second voxel layer comprises a fourth passing manner.

4 . The data processing method according to claim 3 , wherein the first passable data indicates that the manner in which the operation object passes from the first voxel layer to the second voxel layer further comprises a fifth passing manner.

5 . The data processing method according to claim 2 , wherein the operation object has a first posture and a second posture, a posture height of the first posture is greater than a posture height of the second posture, and the operation object further has a first action manner and a second action manner, the first preset height is greater than or equal to the posture height of the second posture of the operation object, and the two voxel layers comprise a first voxel layer and a second voxel layer, a height of a lowest element point of the first voxel layer is n, and a height of a lowest element point of the second voxel layer is f, wherein:

if the height of the overlapping part>the posture height of the first posture, and f−n≤a second preset height, determining that the connection data is fourth passable data, and indicating that when the operation object passes from the first voxel layer to the second voxel layer, the operation object performs the first posture, the second posture, and the first action manner;

if the posture height of the first posture>the height of the overlapping part≥the posture height of the second posture, and f-nsthe second preset height, determining that the connection data is fifth passable data, and indicating that when the operation object passes from the first voxel layer to the second voxel layer, the operation object performs the second posture, and the first action manner;

if the height of the overlapping part≥the posture height of the first posture, and the second preset height<f−n≤a third preset height, determining that the connection data is sixth passable data, and indicating that when the operation object passes from the first voxel layer to the second voxel layer, the operation object performs the first posture, and the second action manner; and

if the posture height of the first posture>the height of the overlapping part≥the posture height of the second posture, and the second preset height<f-nsthe third preset height, determining that the connection data is seventh passable data, and indicating that when the operation object passes from the first voxel layer to the second voxel layer, the operation object performs the second posture, and the second action manner.

6 . The data processing method according to claim 5 , wherein the operation object further has a third action manner, wherein:

if the height of the overlapping part≥the posture height of the first posture, and the third preset height<f−n≤a fourth preset height, determining that the connection data is eighth passable data, and indicating that when the operation object passes from the first voxel layer to the second voxel layer, the operation object performs the first posture, and the third action manner.

7 . The data processing method according to claim 5 , wherein the operation object further has a third posture, a posture height of the third posture is less than the posture height of the second posture, and the first preset height is greater than or equal to the posture height of the third posture of the operation object, wherein:

the fourth passable data indicates that when the operation object passes from the first voxel layer to the second voxel layer, the operation object performs the third posture;

the fifth passable data indicates that when the operation object passes from the first voxel layer to the second voxel layer, the operation object performs the third posture;

if the posture height of the second posture>the height of the overlapping part≥the posture height of the third posture, and f−n≤the second preset height, determining that the connection data is ninth passable data, and indicating that when the operation object passes from the first voxel layer to the second voxel layer, the operation object performs the third posture, and the first action manner.

8 . The data processing method according to claim 1 , wherein the data processing method further comprises the steps of:

calculating a navigation path through which the operation object passes from a starting-point voxel layer to an ending-point voxel layer in the three-dimensional space based on the voxel data according to the connection data.

9 . The data processing method according to claim 8 , wherein

the navigation path obtained by calculation is a path with a shortest distance or a distance cost that is smallest, and the distance cost is a cost required for the operation object to pass through a distance corresponding to the navigation path; or,

the navigation path obtained by calculation is a path with an action cost that is smallest, and the action cost is a cost required for the operation object to take a passing manner; or,

the navigation path obtained by calculation is a path that a sum of the distance cost and the action cost is smallest.

10 . The data processing method according to claim 9 , wherein,

the ending-point voxel layer comprises a task-free ending-point voxel layer and a task-containing ending-point voxel layer, wherein:

the distance cost between a current position of the operation object and the task-free ending-point voxel layer is obtained by calculation in real time, and when the distance cost obtained by calculation is 0, the operation object has reached the task-free ending-point voxel layer; and

when the operation object triggers a task at a current voxel layer, the task-containing ending-point voxel layer has been reached.

11 . The data processing method according to claim 10 , wherein the task comprises a first task and a second task; and that when the task-containing ending-point voxel layer has been reached comprises:

when a distance between the operation object and a target object does not exceed a preset distance and a ray detection result is passable, the first task is triggered, and the target object is an object capable of interacting with the operation object; and

when a configuration parameter value of the operation object is lower than a preset parameter value, and the current voxel layer in which the operation object is located has a configuration parameter supply for increasing the configuration parameter value, the second task is triggered.

12 . The data processing method according to claim 11 , wherein that when the configuration parameter value of the operation object is lower than the preset parameter value, and the current voxel layer in which the operation object is located has the configuration parameter supply for increasing the configuration parameter value, the second task is triggered comprises:

when the configuration parameter value of the operation object is lower than the preset parameter value, and the current voxel layer in which the operation object is located has the configuration parameter supply, and when a result of ray detection between the operation object and the target object is impassable, the second task is triggered.

13 . The data processing method according to claim 1 , wherein the three-dimensional space based on the voxel data is applied to a game scene, original data of the game scene constitutes a pixel scene, the pixel scene comprises multiple different data types of scene elements, and the original data of the multiple different data types of the scene elements is exported respectively;

an expected side length of a unit voxel is set, and combined with a given side length of the unit voxel, the original data of the multiple different data types of the scene elements is converted into the voxel data respectively, wherein the voxel data represented in the game scene is represented as a voxel module; and

according to relative positions of voxel modules of all the scene elements in the pixel scene, the voxel modules of all the scene elements are spliced to obtain a voxel scene.

14 . The data processing method according to claim 13 , wherein the game scene comprises a dynamic object, and types of all dynamic objects and offset coordinates of a contour point of each of different types of dynamic objects relative to a center point of the dynamic object are obtained;

update coordinates of the contour point to be refreshed are obtained by calculation according to coordinates of the center point of the dynamic object to be refreshed and the offset coordinates of the contour point; and

writing is performed at update positions of all contour points after the dynamic object is refreshed, and erasing is performed for original positions of all contour points before the dynamic object is refreshed, so as to complete dynamic refreshing of the dynamic object.

15 . The data processing method according to claim 14 , wherein the game scene further comprises a static object; during a game, a set of static data composed of the static object is reused, and dynamic refreshing of the dynamic object is continuously performed, and dynamic data composed of the dynamic object before refreshing is discarded each time dynamic refreshing is performed.

16 . The data processing method according to claim 15 , wherein the scene elements of the game scene comprise terrain, vegetation, a building, and an outdoor decoration;

the exporting the original data of the multiple different data types of the scene elements respectively comprises:

exporting 3D model file format data and coordinate information of the outdoor decoration and the building; exporting comma-separated value file format data of the vegetation; and

orthogonally capturing by a depth camera to export a picture of the terrain, wherein the picture comprises surface height data of the terrain; and

the setting the expected side length of the unit voxel, and combined with the given side length of the unit voxel, converting the original data of the multiple different data types of the scene elements into the voxel data respectively comprises:

converting the 3D model file format data of the outdoor decoration and the building into the voxel data; obtaining a size of a collision body of the vegetation, combined with the given side length of the unit voxel, obtaining a quantity of voxels that the vegetation needs to occupy in the voxel scene and a voxel shape by calculating; and according to the picture in which the surface height data of the terrain is stored, performing sampling point by point according to the given side length of the unit voxel to convert the surface height data of the terrain into the voxel data.

17 . A data processing server based on voxel data, wherein the data processing server comprises a point capturing module, a comparison indexing module, a voxel layer data construction module and a connection data construction module;

the point capturing module takes a base plane of z=z' in a x, y, z three-dimensional space, wherein there are multiple base points on the base plane; the point capturing module forms multiple base columns by taking a base point as a bottom point and using a z coordinate as a height, wherein there are L element points on each base column;

the comparison indexing module accesses the multiple base columns in parallel in a graphics processing unit (GPU), traverses each element point on each base column in each parallel thread, reaches a voxel point corresponding to that element point by indexing according to the voxel data, and determines whether the voxel point is a hollow point or a solid point;

the voxel layer data construction module collects a continuous hollow point segment on each base column, and if a height of the continuous hollow point segment is greater than or equal to a first preset height, defines the continuous hollow point segment as a voxel layer; and

the connection data construction module obtains a positional relationship between each voxel layer on each base column and each voxel layer on an adjacent base column by calculation, and if there is an overlapping part between two voxel layers in a height direction, determines that there is connection data between the two voxel layers, so that an operation object passes between the two voxel layers; wherein

the voxel point, the two voxel layers, and the connection data constitute a three-dimensional space based on the voxel data.

18 . A non-transitory computer-readable storage medium, storing instructions for data processing based on voxel data, wherein the instructions implement the following steps when executed by a processor:

in a x, y, z three-dimensional space, taking a base plane of z=z', wherein there are multiple base points on the base plane; and forming multiple base columns by using a base point as a bottom point and using a z coordinate as a height, wherein there are L element points on each base column;

accessing the multiple base columns in parallel in a graphics processing unit (GPU), traversing each element point on each base column in each parallel thread, reaching a voxel point corresponding to that element point by indexing according to the voxel data, and determining whether the voxel point is a hollow point or a solid point;

collecting a continuous hollow point segment on each base column, and if a height of the continuous hollow point segment is greater than or equal to a first preset height, defining the continuous hollow point segment as a voxel layer; and

obtaining a positional relationship between each voxel layer on each base column and each voxel layer on an adjacent base column by calculation, and if there is an overlapping part between two voxel layers in a height direction, determining that there is connection data between the two voxel layers, so that an operation object passes between the two voxel layers;

wherein

the voxel point, the two voxel layers, and the connection data constitute a three-dimensional space based on the voxel data.

19 . A computer program product embodied in a non-transitory computer-readable storage medium, comprising a computer-executable instruction, wherein the computer-executable instruction is executed by a processor to implement the following steps:

in ax, y, z three-dimensional space, taking a base plane of z=z', wherein there are multiple base points on the base plane; and forming multiple base columns by using a base point as a bottom point and using a z coordinate as a height, wherein there are L element points on each base column;

accessing the multiple base columns in parallel in a graphics processing unit (GPU), traversing each element point on each base column in each parallel thread, reaching a voxel point corresponding to that element point by indexing according to voxel data, and determining whether the voxel point is a hollow point or a solid point;

collecting a continuous hollow point segment on each base column, and if a height of the continuous hollow point segment is greater than or equal to a first preset height, defining the continuous hollow point segment as a voxel layer; and

obtaining a positional relationship between each voxel layer on each base column and each voxel layer on an adjacent base column by calculation, and if there is an overlapping part between two voxel layers in a height direction, determining that there is connection data between the two voxel layers, so that an operation object passes between the two voxel layers;

wherein the voxel point, the two voxel layers, and the connection data constitute a three-dimensional space based on the voxel data.