在GPU(graphics processing unit)上求解了复杂场景中的三维流动问题,充分利用了GPU并行能力以加速计算与前人的方法不同,该方法对于边界条件的处理更为通用.首先,通过在图像空间生成实心的剖切截面构成整个障碍物信息图,算法使得流体计算与整个几何场景的复杂度无关,通过对各体素进行分类并结合边界条件,根据障碍物形成修正因子来修改对应的值;另外,采用更为紧凑的数据格式,以充分利用硬件的并行性.通过将所有标量的运算压缩到纹元的4个颜色通道并结合平铺三维纹理,减少了三雏流场计算所需要的绘制次数.实验结果显示出算法的有效性和高效率.该算法可以实时计算并显示一个采用中等规模离散的复杂场景。
This paper, solves the 3D fluid dynamics problem in a complex environment by taking advantage of the parallelism and programmability of GPU (graphics processing unit). In difference from other methods, innovation is made in two aspects. Firstly, more general boundary conditions could be processed on GPU in the method. By the method, the boundary from a 3D scene with capped solid clipping is generated, making the computation run on GPU despite of the complexity of the whole geometry scene. Then by grouping the voxels into different types according to their positions relative to the obstacles and locating the voxel that determines the value of the current voxel, the values on the boundaries are modified according to the boundary conditions. Secondly, more compact structure in data packing is designed at the fragment processing level to enhance parallelism and reduce execution passes. The scalar variables including density and temperature are packed into four channels of texels to accelerate the computation of 3D Navier-Stokes Equations. The test results show the efficiency of the method, and as a result, it is feasible to run middle-scale problems of 3D fluid dynamics in an interactive speed for more gen eral environment with complex geometry on PC platform.