Volume cloud rendering method and system based on GPU acceleration, storage medium and electronic equipment

By adopting the GPU-accelerated volume cloud rendering method in the flight simulator vision system, and using GPU dual-tuning sorting and instantiation technology, the problem of low rendering efficiency in the existing technology is solved, and efficient and high-quality volume clouds are achieved Rendering effect meets the real-time requirements of high frame rates.

CN119478166APending Publication Date: 2025-02-18BEIJING LINGWEI JUNRONG TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202411409829.7
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-10-10
Publication Date
2025-02-18

AI Technical Summary

Technical Problem

In the existing flight simulator vision system, although volumetric cloud rendering technology can achieve real internal cloud flight and cloud penetration effects, it has a large computing overhead, resulting in low rendering efficiency and difficult to meet the real-time requirements of high frame rates.

Method used

Using GPU-accelerated volumetric cloud rendering method, by combining cloud pixels into cloud templates of different sizes and shapes, using GPU dual-tone sorting and instantiation technology, cloud pixel objects in the cloud layer are rendered, and high-quality cloud rendering is output. result.

Benefits of technology

It effectively balances the rendering effect and efficiency, improves rendering performance, is suitable for complex rendering scenes, and can provide high-quality volume cloud rendering effects under high frame rates.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119478166A_ABST
    Figure CN119478166A_ABST
Patent Text Reader

Abstract

The invention discloses a volume cloud rendering method based on GPU acceleration, and the method comprises the steps: combining cloud elements together according to a certain mode, and obtaining cloud templates of different sizes and forms; sequentially storing the cloud templates according to the bounding boxes from large to small to obtain a cloud template array; extracting the cloud templates in the cloud template array in sequence, creating a cloud object by using the cloud templates, and inserting the cloud object into a cloud layer area to obtain a cloud layer; performing GPU double-tone sorting on all cloud element objects in the cloud layer, rendering the sorted cloud element objects, and outputting a cloud layer rendering result; the invention further discloses a system, a storage medium and electronic equipment based on the volume cloud rendering method. According to the rendering method, the rendering effect and efficiency are effectively balanced, and the characteristic requirement for high real-time performance of the flight simulator visual system is met.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the field of cloud layer rendering of a flight simulator visual system, and more specifically, to a volume cloud rendering method, system, storage medium and electronic device based on GPU acceleration. Background Art

[0002] At present, there are three main solutions for dynamic clouds in the flight simulator visual system: skybox mapping, patch cloud layer, and volumetric cloud combined with 3D noise map and ray tracing technology. Among them, the cloud layer effect of the skybox mapping is just a static map on the skybox. The advantage is that the rendering efficiency is very high, but the disadvantage is that the effect is unrealistic, the cloud layer has no dynamic change effect, and the cloud layer is always at an infinite distance from the rendering scene. The viewpoint position can never reach the inside of the cloud layer, and the flying in the cloud layer and the cloud penetration effect cannot be expressed. The patch cloud layer is to set the bottom altitude and top altitude of the cloud layer, and use a semi-transparent template texture to render the bottom and top surfaces of the cloud at the bottom and top, and the inside of the cloud layer is not rendered. The advantage is high rendering efficiency. Combined with texture animation, when the viewpoint is under the cloud and on the top of the cloud, it can also simulate the dynamic movement of the cloud layer, and the rendering effect is good, but the flying in the cloud layer and the cloud penetration effect are very simple, because the inside of the cloud layer is not rendered, and generally only static fog effect is used to simulate the occlusion effect of the cloud layer. The volumetric cloud that combines 3D noise map and ray tracing technology is based on the principle of emitting at least one ray from each pixel in the screen space, performing path integration on the 3D texture, dynamically calculating the cloud density texture under the current viewpoint, and then rendering the cloud layer according to this dynamic cloud density texture. Its advantage is that the effect is very good, and the density distribution of the cloud layer, the shape expression, and the dynamic influence of wind on the cloud are expressed very realistically. It also supports the flying effect inside the cloud layer and the real cloud penetration effect from any viewpoint. However, its disadvantages are also obvious. Its computational overhead is very large, and it requires high computer performance. The rendering efficiency is generally low. The higher the picture resolution, the lower the efficiency. When rendering is implemented, the frame rate of the entire scene is greatly reduced. Summary of the invention

[0003] The purpose of the present invention is to provide a volume cloud rendering method, system, storage medium and electronic device based on GPU acceleration to balance rendering effect and efficiency and meet the high real-time (i.e. high frame rate) characteristic requirements of a flight simulator visual system.

[0004] In order to achieve the purpose and other advantages of the present invention, a volume cloud rendering method based on GPU acceleration is provided, comprising:

[0005] Combine cloud elements in a certain way to obtain cloud templates of different sizes and shapes;

[0006] The cloud templates are stored in order from large to small according to the bounding boxes to obtain a cloud template array;

[0007] Extracting the cloud templates in the cloud template array in sequence, creating a cloud object using the cloud templates, and inserting the cloud object into a cloud layer region to obtain a cloud layer;

[0008] GPU bitonic sorting is performed on all cloud element objects in the cloud layer, and then the sorted cloud element objects are rendered to output a cloud layer rendering result.

[0009] Preferably, the cloud templates in the cloud template array are extracted in sequence, a cloud object is created using the cloud template, and the cloud object is inserted into a cloud layer region to obtain a cloud layer, including:

[0010] Step 1: Divide the cloud layer area into multiple grid points and create a coverFlag list;

[0011] Step 2: extract a cloud template from the cloud template array in the order of the bounding box from large to small for testing, record the serial number of the current cloud template to be tested as idx and read the bounding box size;

[0012] Step 3: randomly select an uncovered grid point from the coverFlag list;

[0013] Step 4: Place the current cloud template to be tested into the uncovered grid point, and determine whether the current cloud template to be tested overlaps with the cloud object that has been listed in the cloud layer area. If there is no overlap, create a cloud object according to the current cloud template to be tested and place it into the uncovered grid point, list it and update the coverFlag list. Otherwise, increase the sequence number of the cloud template to be tested by 1, and return to step 2.

[0014] Step 5: Calculate the cloud coverage rate according to the coverFlag list. If the cloud coverage rate is greater than or equal to the preset cloud coverage rate, end cloud generation. Otherwise, return to step 2.

[0015] Preferably, before the step 1, the method further includes correcting the size of the cloud layer region so that its length, width and height are all integer multiples of the cloud element size.

[0016] Preferably, the step four also includes, if the current cloud template to be tested overlaps with the cloud object already listed in the cloud layer area, then determining whether the number of tests of the current cloud template to be tested is less than a preset number; if so, returning to step three; otherwise, incrementing the sequence number of the cloud template to be tested by 1 and returning to step two.

[0017] Preferably, the cloud elements are combined together using a visual editing tool to obtain the cloud template.

[0018] Preferably, the last cloud template in the cloud template array contains only one cloud element.

[0019] Preferably, GPU Instance is used to call the draw instance API of Vulkan to render the sorted cloud element objects.

[0020] The present invention also provides a volume cloud rendering system based on GPU acceleration, comprising:

[0021] The cloud module is used to combine cloud elements in a certain way to obtain cloud templates of different sizes and shapes;

[0022] A cloud template array module, which is used to store the cloud templates in order from large to small bounding boxes to obtain a cloud template array;

[0023] A cloud layer module, which is used to extract the cloud templates in the cloud template array in sequence, create a cloud object using the cloud template, and insert the cloud object into a cloud layer area to obtain a cloud layer;

[0024] The rendering module is used to perform GPU bitonic sorting on all cloud element objects in the cloud layer, render the sorted cloud element objects, and output a cloud layer rendering result.

[0025] The present invention also provides a storage medium storing a computer program, wherein the computer program, when loaded and executed by a processor, implements the above-mentioned volume cloud rendering method.

[0026] The present invention also provides an electronic device, comprising: a processor and a memory; wherein the memory is used to store a computer program; and the processor is used to load and execute the computer program so that the electronic device performs the above-mentioned volume cloud rendering method.

[0027] The present invention has at least the following beneficial effects:

[0028] The volumetric cloud rendering method based on GPU acceleration of the present invention has a good balance between rendering effect and rendering efficiency, and is more suitable for complex rendering scenes. Moreover, the size of cloud elements can be configured according to different computer performance and actual conditions, thereby controlling the final number of translucent particles, and has wider applicability. Compared with skybox mapping and patch cloud solutions, the performance overhead of the present invention is slightly higher, but the rendering quality is greatly improved, and the sense of volume is stronger. Compared with the volumetric cloud of ray tracing technology, the performance is greatly improved and the practicability is better.

[0029] Other advantages, objectives and features of the present invention will be embodied in part through the following description, and in part will be understood by those skilled in the art through study and practice of the present invention. BRIEF DESCRIPTION OF THE DRAWINGS

[0030] Figure 1 It is a flowchart of a volume cloud rendering method based on GPU acceleration according to an embodiment of the present invention;

[0031] Figure 2 is a schematic diagram of cloud editing according to another embodiment of the present invention;

[0032] Figure 3 is a schematic diagram of the data structure of a cloud template according to another embodiment of the present invention;

[0033] Figure 4 is a schematic diagram of a cloud layer generation process according to another embodiment of the present invention;

[0034] Figure 5 It is a practical operation effect diagram of another embodiment of the present invention;

[0035] Figure 6 It is a diagram showing the actual operation effect of yet another embodiment of the present invention. DETAILED DESCRIPTION

[0036] The present invention is further described in detail below in conjunction with embodiments and drawings so that those skilled in the art can implement the invention with reference to the description.

[0037] It should be understood that the terms such as “having”, “including” and “comprising” used herein do not exclude the existence or addition of one or more other elements or combinations thereof.

[0038] It should be noted that the experimental methods described in the following embodiments are conventional methods unless otherwise specified, and the reagents and materials can be obtained from commercial channels unless otherwise specified.

[0039] like Figure 1 As shown, the present invention provides a volume cloud rendering method based on GPU acceleration, comprising:

[0040] S1. Combine cloud elements in a certain way to obtain cloud templates of different sizes and shapes.

[0041] A cloud element is the smallest unit of volumetric cloud and the most basic rendering unit. It is obtained by using a translucent texture to cover a cubic space of a fixed size, such as 100m*100m*100m. The size of the cloud element can be configured according to different computer performance and actual conditions.

[0042] Use visual editing tools to manually edit and combine one or more cloud elements to get cloud templates of different sizes and shapes. Figure 2 The left side is the cloud editing mode. Each small square represents a cloud element. You can add or delete small cloud element squares at will. Each cloud element square can manually specify its translucent texture. In a visual way, you can finely control the stacking of cloud elements to create clouds of various styles. The right side is the preview mode. Translucent rendering is performed according to the stacking form on the left and the bound translucent texture. The edited cloud is saved as a data file and used as a cloud template. The data structure of the cloud template is as follows: Figure 3 shown.

[0043] S2. Store the cloud templates in order from large to small according to the bounding boxes to obtain a cloud template array.

[0044] In order to show the diversity of cloud shapes, the cloud template array contains cloud templates of different sizes, and they are stored in order from large to small according to the bounding box. The last template must contain only one cloud element. All cloud objects in the cloud layer are created according to a cloud template in the cloud template array.

[0045] S3. Correct the size of the cloud area so that its length, width and height are all integer multiples of the cloud element size. Divide the cloud area into multiple grid points and create a three-dimensional Boolean array coverFlag[numW][numL][numH] to record whether a grid point is covered.

[0046] Specifically, numW = ceil(layerWidth / voxelSize);

[0047] layerWidth=voxelSize*numW;

[0048] numL=ceil(layerLength / voxelSize);

[0049] layerLength=voxelSize*numL;

[0050] numH=ceil(layerHeight / voxelSize);

[0051] layerHeight=voxelSize*numH;

[0052] Among them, ceil() is the rounding function, voxelSize is the cloud element size, layerWidth is the width of the cloud area, layerLength is the length of the cloud area, layerHeight is the height of the cloud area, numW is the number of cloud elements in the width direction of the cloud layer, numl is the number of cloud elements in the length direction of the cloud layer, and numH is the number of cloud elements in the height direction of the cloud layer.

[0053] S4. Extract the cloud templates in the cloud template array one by one, create a cloud object using the cloud template, and insert it into the cloud layer area to obtain a cloud layer.

[0054] Prioritize using the cloud template with the largest volume in the cloud template array (i.e. starting from the head of the cloud template array), and try to find a suitable position to put a cloud of this size without overlapping with the existing clouds in the cloud area. If successful, create a cloud object based on this template; if it fails, use the next smaller cloud template and continue testing. In the worst case, using the last single cloud template will definitely succeed. The specific process is as follows Figure 4 As shown:

[0055] S41. Extract a cloud template from the cloud template array in the order of the bounding box from large to small for testing, record the serial number of the current cloud template to be tested as idx and read the bounding box size.

[0056] S42. Randomly select an uncovered grid point from the coverFlag list.

[0057] S43, put the current cloud template to be tested into the above-mentioned uncovered grid point, and determine whether the current cloud template to be tested overlaps with the cloud object that has been listed in the cloud layer area. If there is no overlap, create a cloud object according to the current cloud template to be tested and put it into the uncovered grid point, list it and update the coverFlag list. If there is overlap, determine whether the number of tests of the current cloud template to be tested is less than 30 times. If so, return to S42, otherwise, increase the sequence number of the cloud template to be tested by 1, and return to S41; wherein,

[0058] Determine whether the current cloud template to be tested overlaps with the cloud objects that have been listed in the cloud area, including: calculating the local coordinates x, y, and z of the randomly selected uncovered grid points inside the cloud layer, taking x, y, and z as the center position of the cloud to be listed, placing the current cloud template to be tested in the above-mentioned uncovered grid points, and performing bounding box collision detection with the cloud objects that have been listed, and determining whether there is overlap based on the collision detection results.

[0059] S44. Calculate the cloud coverage rate according to the coverFlag list. If the cloud coverage rate is greater than or equal to the preset cloud coverage rate, terminate the cloud generation. Otherwise, return to S41.

[0060] S5. Perform GPU bitonal sorting on all cloud element objects in the cloud layer, and then use GPU Instance to call Vulkan's draw instance API to render the sorted cloud element objects, and output the cloud layer rendering result.

[0061] The specific process of GPU bitune sorting is as follows:

[0062] S51. Expand the cloud element array.

[0063] Before bitonic sorting, the length of the cloud element array containing all cloud element objects in the cloud layer is expanded to a power of 2. For example, an array with a length of 1000 is expanded to an array with a length of 1024. The excess part is filled with a predefined maximum value (or minimum value) and then sorted. The expansion algorithm is as follows:

[0064] int roundNum=1<<((int)(ceil(log2(sortNum))));

[0065] roundNum=(roundNum <MIN_SORT_ITEM_CNT?MIN_SORT_ITEM_CNT:roundNum);

[0066] Among them, sortNum is the actual length of the array we want to sort, roundNum is the length of the expanded array, and MIN_SORT_ITEM_CNT is the minimum length of the sorted array, which is generally 1024.

[0067] S52. Perform bitonic sorting on the cloud element array in the GPU.

[0068] The parallel version of bitonal sorting is implemented by using the compute shader programming technology of GPU. The core is to realize two thread functions: generating thread and sorting thread, which correspond to the two key steps of bitonal sorting: generating bitonal sequences from arbitrary series and sorting bitonal sequences.

[0069] The function of the generated thread is to transform a subsequence into a bitonic sequence. The pseudo code is as follows:

[0070] / / GPU compute shader code

[0071] / / The GPU starts a thread group containing 32*32*1=1024 threads to transform the unordered array into a bitonic sequence array / / This calculation process runs in the GPU

[0072] [numthreads[32,32,1]]

[0073] / / threadGlobalIndx: thread ID, one ID and one array element

[0074] / / signLength: sign length, which means that after every n elements are compared, the monotonicity is reversed

[0075] / / compareLength: Compare length, which means comparing a[n] with a[n+compareLength] in the array

[0076] void gpu_generate(uint threadGlobalIndx,uint signLength,uintcompareLength,int data[])

[0077] { / / index represents the subscript of the array element

[0078] uint index=threadGlobalIndx;

[0079] / / 0 means increasing, 1 means decreasing

[0080] int sign=(indx / signLength)%2;

[0081] int a=data[index];

[0082] int b=data[index+compareLength];

[0083] if(0 == sign)

[0084] {data[index]=min(a,b);

[0085] data[index+compareLength]=max(a,b);}

[0086] else

[0087] {data[index]=max(a,b);

[0088] data[index+compareLength]=min(a,b);}}

[0089] The function of the sorting thread is to sort a bitonic sequence array. The pseudo code is as follows:

[0090] / / GPU compute shader code

[0091] / / The GPU starts a thread group containing 32*32*1=1024 threads to sort a bitonal sequence array in ascending order / / This calculation process runs in the GPU

[0092] [numthreads[32,32,1]]

[0093] / / threadGlobalIndx: thread ID, one ID and one array element

[0094] / / compareLength: Compare length, which means comparing a[n] with a[n+compareLength] in the array

[0095] void gpu_sort(uint threadGlobalIndx,uint compareLength,int data[])

[0096] { / / index represents the subscript of the array element

[0097] uint index=threadGlobalIndx;

[0098] int a=data[index];

[0099] int b=data[index+compareLength];

[0100] data[index]=min(a,b);

[0101] data[index+compareLength]=max(a,b);}

[0102] The entire sorting is a divide-and-conquer recursive process, which is a process of dividing the original array into equal parts, sorting them locally, and then merging them. Therefore, a series of bitonic sequence generation and sorting operations are required. Each operation is a call to the above GPU thread, and all calls are executed in parallel on the GPU. The calling process of the bitonic sequence generation operation is as follows:

[0103] / / c++ code

[0104] / / Call sequence for bitune sequence generation operation

[0105] void GenerateDispatchSequence()

[0106] { / / The length of the array to be sorted is roundNum

[0107] int data[roundNum];

[0108] int curDataLen = roundNum;

[0109] / / signLength: sign length, which means that after every n elements are compared, the monotonicity is reversed

[0110] int signLength = 2;

[0111] while(signLength <curDataLen)

[0112] {int compareLength=signLength / 2;

[0113] while(compareLength>0)

[0114] { / / Call gpu_generate once

[0115] call_gpu_generate(signLength,compareLength,data);

[0116] compareLength / = 2;}

[0117] signLength*=2;}}

[0118] The calling process of the bitune sequence sorting operation is as follows:

[0119] / / c++ code

[0120] / / Call sequence for double-tuned sequence sorting operations

[0121] void SortDispatchSequence()

[0122] { / / The length of the array to be sorted is roundNum

[0123] int data[roundNum];

[0124] int curDataLen = roundNum;

[0125] int compareLength=curDataLen / 2;

[0126] while(compareLength!=0)

[0127] { / / Call gpu_sort once

[0128] call_gpu_sort(compareLength,data);

[0129] compareLength / = 2;}}.

[0130] The improvement effect of using the above GPU dual-tuning sorting compared with the existing sorting of a large number of cloud elements on the CPU side is shown in the following table:

[0131]

[0132] As can be seen from the table above, for cloud element sorting with a quantity of more than 100,000, the efficiency of the GPU version of the sorting algorithm is at least 20 times higher than that of the traditional CPU version.

[0133] After GPU bitune sorting of all cloud element objects, if the cloud elements are rendered one by one, a large number of GPU drawing commands (one drawing command for one cloud element) will be called, and the performance overhead will be very large. The drawing time of 100,000 cloud element objects is about 7 seconds, which is not practical. Considering that there is no dependency between the rendering of cloud elements, the present invention uses the GPU "instantiation" technology (Instance), calls the Vulkan draw instance API, and draws all cloud element objects in batches with one drawing command, which greatly improves the rendering efficiency. For the same 100,000 cloud elements, the drawing time is reduced to about 1.1 milliseconds.

[0134] The volume cloud rendering method based on GPU acceleration of the present invention is used to render the volume cloud of the flight simulator visual system. The actual operation effect is as follows: Figure 5 , Figure 6 At 1080p (1920*1080) rendering resolution, for the same 10,000 frames, the existing volume cloud takes an average of 5.1 milliseconds per frame, while the GPU-accelerated particle cloud takes an average of 1.3 milliseconds per frame, which is nearly 4 times more efficient.

[0135] The present invention also provides a volume cloud rendering system based on GPU acceleration, comprising:

[0136] The cloud module is used to combine cloud elements in a certain way to obtain cloud templates of different sizes and shapes;

[0137] A cloud template array module, which is used to store the cloud templates in order from large to small bounding boxes to obtain a cloud template array;

[0138] A cloud layer module, which is used to extract the cloud templates in the cloud template array in sequence, create a cloud object using the cloud template, and insert the cloud object into a cloud layer area to obtain a cloud layer;

[0139] The rendering module is used to perform GPU bitonic sorting on all cloud element objects in the cloud layer, render the sorted cloud element objects, and output a cloud layer rendering result.

[0140] The above-mentioned volumetric cloud rendering system based on GPU acceleration is obtained based on the same inventive concept as the above-mentioned volumetric cloud rendering method based on GPU acceleration, and will not be repeated here.

[0141] The present invention also provides a storage medium, which includes: various media that can store program codes, such as ROM, RAM, magnetic disk or optical disk, wherein a computer program is stored, and when the computer program is loaded and executed by a processor, all or part of the steps of the above-mentioned GPU-accelerated volume cloud rendering method are implemented.

[0142] The present invention also provides an electronic device, which is a device including a processor (CPU / MCU / SOC) and a memory (ROM / RAM), such as a desktop computer, a portable computer, a smart phone, etc. In particular, a computer program is stored in the memory, and when the processor loads and executes the computer program, all or part of the steps of the above-mentioned GPU-accelerated volume cloud rendering method are implemented.

[0143] Although the embodiments of the present invention have been disclosed as above, they are not limited to the applications listed in the specification and the implementation modes, and they can be fully applied to various fields suitable for the present invention. For those familiar with the art, additional modifications can be easily implemented. Therefore, without departing from the general concept defined by the claims and the scope of equivalents, the present invention is not limited to the specific details and the illustrations shown and described herein.

Claims

1. A volume cloud rendering method based on GPU acceleration, characterized in that: include: Combine cloud elements in a certain way to obtain cloud templates of different sizes and shapes; The cloud templates are stored in order from large to small according to the bounding boxes to obtain a cloud template array; Extracting the cloud templates in the cloud template array in sequence, creating a cloud object using the cloud templates, and inserting the cloud object into a cloud layer region to obtain a cloud layer; GPU bitonic sorting is performed on all cloud element objects in the cloud layer, and then the sorted cloud element objects are rendered to output a cloud layer rendering result.

2. The volume cloud rendering method based on GPU acceleration according to claim 1, characterized in that: Extracting the cloud templates in the cloud template array in sequence, creating a cloud object using the cloud template, and inserting the cloud object into a cloud layer region to obtain a cloud layer, including: Step 1: Divide the cloud layer area into multiple grid points and create a coverFlag list; Step 2: extract a cloud template from the cloud template array in the order of the bounding box from large to small for testing, record the serial number of the current cloud template to be tested as idx and read the bounding box size; Step 3: randomly select an uncovered grid point from the coverFlag list; Step 4: put the current cloud template to be tested into the uncovered grid point, and determine whether the current cloud template to be tested overlaps with the cloud object that has been listed in the cloud layer area. If there is no overlap, create a cloud object according to the current cloud template to be tested and put it into the uncovered grid point, list it and update the coverFlag list. Otherwise, increase the sequence number of the cloud template to be tested by 1, and return to step 2. Step 5: Calculate the cloud coverage rate according to the coverFlag list. If the cloud coverage rate is greater than or equal to the preset cloud coverage rate, end cloud generation. Otherwise, return to step 2.

3. The volume cloud rendering method based on GPU acceleration according to claim 2, characterized in that: Before the step 1, the method further includes correcting the size of the cloud layer region so that its length, width and height are all integer multiples of the cloud element size.

4. The volume cloud rendering method based on GPU acceleration according to claim 3, characterized in that: The step 4 also includes: if the current cloud template to be tested overlaps with the cloud object already listed in the cloud layer area, determining whether the number of tests of the current cloud template to be tested is less than a preset number; if so, returning to step 3; otherwise, increasing the sequence number of the cloud template to be tested by 1 and returning to step 2.

5. The volume cloud rendering method based on GPU acceleration according to claim 2, characterized in that: The cloud elements are combined together using a visual editing tool to obtain the cloud template.

6. The volume cloud rendering method based on GPU acceleration according to claim 2, characterized in that: The last cloud template in the cloud template array contains only one cloud element.

7. The volume cloud rendering method based on GPU acceleration according to claim 2, characterized in that: Use GPUInstance to call Vulkan's draw instance API to render the sorted cloud element objects.

8. GPU-accelerated volumetric cloud rendering system, characterized by: include: The cloud module is used to combine cloud elements in a certain way to obtain cloud templates of different sizes and shapes; A cloud template array module, which is used to store the cloud templates in order from large to small bounding boxes to obtain a cloud template array; A cloud layer module, which is used to extract the cloud templates in the cloud template array in sequence, create a cloud object using the cloud template, and insert the cloud object into a cloud layer area to obtain a cloud layer; The rendering module is used to perform GPU bitonic sorting on all cloud element objects in the cloud layer, render the sorted cloud element objects, and output a cloud layer rendering result.

9. A storage medium having a computer program stored therein, characterized in that: When the computer program is loaded and executed by the processor, the volume cloud rendering method according to any one of claims 1 to 7 is implemented.

10. An electronic device, characterized in that include: A processor and a memory; wherein the memory is used to store a computer program; and the processor is used to load and execute the computer program so that the electronic device performs the volume cloud rendering method as described in any one of claims 1-7.