留言板

尊敬的读者、作者、审稿人, 关于本刊的投稿、审稿、编辑和出版的任何问题, 您可以本页添加留言。我们将尽快给您答复。谢谢您的支持!

姓名
邮箱
手机号码
标题
留言内容
验证码

利用三维体素遍历和GPU进行辐射度加速计算——以虚拟植物冠层辐射模拟为例

唐丽玉 杨怡斐 侯璨 陈崇成

唐丽玉, 杨怡斐, 侯璨, 陈崇成. 利用三维体素遍历和GPU进行辐射度加速计算——以虚拟植物冠层辐射模拟为例[J]. 武汉大学学报 ● 信息科学版, 2018, 43(8): 1256-1263. doi: 10.13203/j.whugis20160319
引用本文: 唐丽玉, 杨怡斐, 侯璨, 陈崇成. 利用三维体素遍历和GPU进行辐射度加速计算——以虚拟植物冠层辐射模拟为例[J]. 武汉大学学报 ● 信息科学版, 2018, 43(8): 1256-1263. doi: 10.13203/j.whugis20160319
TANG Liyu, YANG Yifei, HOU Can, CHEN Chongcheng. Optimizing Radiosity Based on Three-Dimensional Voxel Traversal and GPU for Radiation Simulation Within Virtual Canopy[J]. Geomatics and Information Science of Wuhan University, 2018, 43(8): 1256-1263. doi: 10.13203/j.whugis20160319
Citation: TANG Liyu, YANG Yifei, HOU Can, CHEN Chongcheng. Optimizing Radiosity Based on Three-Dimensional Voxel Traversal and GPU for Radiation Simulation Within Virtual Canopy[J]. Geomatics and Information Science of Wuhan University, 2018, 43(8): 1256-1263. doi: 10.13203/j.whugis20160319

利用三维体素遍历和GPU进行辐射度加速计算——以虚拟植物冠层辐射模拟为例

doi: 10.13203/j.whugis20160319
基金项目: 

国家自然科学基金 41471334

福建省科技引导性项目 2016Y0058

详细信息
    作者简介:

    唐丽玉, 博士, 研究员, 主要从事地学可视化与虚拟地理环境、虚拟植物研究。tangly@fzu.edu.cn

  • 中图分类号: P237

Optimizing Radiosity Based on Three-Dimensional Voxel Traversal and GPU for Radiation Simulation Within Virtual Canopy

Funds: 

The National Natural Science Foundation of China 41471334

the Pilot Project of Fujian Province 2016Y0058

More Information
    Author Bio:

    TANG Liyu, PhD, professor, majors in geo-visualization and virtual geographical environment, virtual plant. E-mail:tangly@fzu.edu.cn

  • 摘要: 辐射度模型是虚拟植物冠层内光分布模拟的主要算法之一,针对其形状因子计算量大,辐射能量计算效率低等问题,提出了一种辐射度计算加速方法。以虚拟枇杷冠层内光分布模拟为例,利用均匀体素剖分场景包围盒及三维体素遍历方法进行光源与树模型之间的遮挡判断,同时结合CUDA技术使辐射度算法的形状因子求解并行化。采用归约求和算法和共享内存实现植物模型接受辐射总能量的快速求解。该方法较CPU串行方法有150多倍的加速比。将太阳直射光合有效辐射(photosynthetically active radiation,PAR)分布模拟结果与光线跟踪模型、传统辐射度模型模拟结果进行对比,天空散射PAR分布模拟结果与龟型算法、传统辐射度模拟对比。计算所得PAR值接近,变化趋势一致,表明该方法有较好的精度保证。
  • 图  1  辐射度加速策略

    Figure  1.  Strategy of Radiosity Optimizing Algorithm

    图  2  三维体素遍历过程示意图

    Figure  2.  Illustration of 3D Voxels Traversing Process

    图  3  光源定义

    Figure  3.  Solar Light Source Description

    图  4  枇杷冠层内光分布模拟效果

    Figure  4.  Simulation of the PAR Distribution Within the Loquat Canopy

    图  5  不同方法模拟“早钟6号”枇杷冠层获得平均PAR对比图

    Figure  5.  Comparison of Average PAR within the "Zaozhong No.6" Loquat Canopy Using Different Methods

    表  1  不同复杂树模型太阳直射遮挡判断计算时间对比

    Table  1.   Comparison of Computing Time on Occlusion Identification Among the Different Tree Models in Direct Light

    模型 面元个数 计算时间/s 加速比
    T1 T2 T3 T4 T1/ T2 T1/ T3
    模型1 2 631 35.4 1.6 0.2 0.170 22.1 177.0
    模型2 14 039 968.7 46.2 1.1 0.188 21.0 880.6
    模型3 46 221 12 525.2 511.1 2.2 0.207 24.5 5 693.3
    模型4 102 897 85 396.3 3 588.0 3.2 0.236 23.8 26 686.3
    下载: 导出CSV

    表  2  不同复杂树模型天空散射遮挡判断计算时间对比

    Table  2.   Comparison of Computing Time on Occlusion Identification Among the Different Tree Models in Diffuse Light

    模型 面元个数 计算时间/s 加速比
    T1 T2 T3 T4 T1/ T2 T1/T3
    模型1 2 631 142.2 5.5 0.9 0.166 25.9 158.0
    模型2 14 039 3 568.9 156.6 2.5 0.187 22.8 1 427.6
    模型3 46 221 47 088.2 1 744.1 3.9 0.207 27.0 12 073.9
    下载: 导出CSV

    表  3  不同树模型太阳直射PAR计算时间对比

    Table  3.   Comparison of Computing Time on Direct Light PAR Transfer Among Different Tree Models

    模型 面元个数 计算时间/s 加速比
    T5 T6 T7 T5/T6
    模型1 2 631 0.05 0.07 0.067 0.71
    模型2 14 039 0.10 0.08 0.052 1.25
    模型3 46 221 0.25 0.15 0.075 1.67
    模型4 102 897 0.40 0.17 0.114 2.35
    下载: 导出CSV

    表  4  不同树模型天空散射PAR计算时间对比

    Table  4.   Comparison of Computing Time on Diffusion Light PAR Transfer Among the Different Tree Models

    模型 面元个数 计算时间/s 加速比
    T′5 T′6 T′7 T′5/T′6
    模型1 2 631 0.08 0.09 0.068 0.89
    模型2 14 039 0.25 0.16 0.052 1.56
    模型3 46 221 0.65 0.22 0.074 2.95
    模型4 102 897 1.31 0.17 0.114 7.71
    下载: 导出CSV
  • [1] 谢东辉. 计算机模拟模型的研究与应用[D]. 北京: 北京师范大学, 2005

    Xie Donghui. Study on Computer Simulation Model and Its Applications[D]. Beijing: Beijing Normal University, 2005
    [2] Hanrahan P, Salzman D, Aupperle L. A Rapid Hie-rarchical Radiosity Algorithm[J]. ACM Siggraph Computer Graphics, 1991, 25(4):197-206 doi:  10.1145/127719
    [3] Bindick S, Stiebler M, Krafczyk M. Fast KD-Tree-Based Hierarchical Radiosity for Radiative Heat Transport Problems[J]. International Journal for Numerical Methods in Engineering, 2011, 86(9):1082-1100 doi:  10.1002/nme.v86.9
    [4] 李亚峰, 秦开怀.基于硬件加速的反射和折射场景的辐射度方法[J].清华大学学报(自然科学版), 2003, 43(1):94-96 http://www.cqvip.com/QK/93884X/200301/7456901.html

    Li Yafeng, Qin Kaihuai. Hardware-Accelerated Radiosity for Scenes with Reflection and Refraction[J]. Journal of Tsinghua University(Science and Technology), 2003, 43(1):94-96 http://www.cqvip.com/QK/93884X/200301/7456901.html
    [5] Padrón E J, Amor M, Bóo M, et al. Parallel Hie-rarchical Radiosity on Hybrid Platforms[J]. Journal of Supercomputing, 2011, 58(3):357-366 doi:  10.1007/s11227-011-0592-6
    [6] D'Azevedo E, Hu Z, Su S Q, et al. Solving a Large Scale Radiosity Problem on GPU-Based Parallel Computers[J]. Journal of Computational & Applied Mathematics, 2014, 270(11):109-120
    [7] 李晓红, 冯志勇, 孙济洲, 等.基于PVM的并行辐射度声学仿真算法[J].天津大学学报, 2004, 37(8):709-712 http://www.wanfangdata.com.cn/details/detail.do?_type=perio&id=tianjdxxb200408013

    Li Xiaohong, Feng Zhiyong, Sun Jizhou, et al. Parallel Radiosity Algorithm of Acoustics Simulation Based on PVM[J]. Journal of Tianjin University, 2004, 37(8):709-712 http://www.wanfangdata.com.cn/details/detail.do?_type=perio&id=tianjdxxb200408013
    [8] 汪日伟, 邓越凡, 张桦, 等.基于任务映射的并行辐射度算法[J].光电子·激光, 2009, 20(6):835-838 http://www.cqvip.com/QK/92586A/200906/31773668.html

    Wang Riwei, Deng Yuefan, Zhang Hua, et al. A New Parallel Radiosity Algorithm Based on Task Mapping[J]. Journal of Optoelectronics·Laser, 2009, 20(6):835-838 http://www.cqvip.com/QK/92586A/200906/31773668.html
    [9] 尹灵芝, 朱军, 王金宏, 等. GPU-CA模型下的溃坝洪水演进实时模拟与分析[J].武汉大学学报·信息科学版, 2015, 40(8):1123-1129 http://ch.whu.edu.cn/CN/abstract/abstract3423.shtml

    Yin Lingzhi, Zhu Jun, Wang Jinhong, et al. Real-Time Simulation and Analysis of Dam-Break Flood Routing Based on GPU-CA Model[J]. Geomatics and Information Science of Wuhan University, 2015, 40(8):1123-1129 http://ch.whu.edu.cn/CN/abstract/abstract3423.shtml
    [10] 刘金硕, 程力, 王丽娜, 等.利用CUDA的剪切波数据三维可视化[J].武汉大学学报·信息科学版, 2013, 38(11):1271-1275 http://ch.whu.edu.cn/CN/Y2013/V38/I11/1271

    Liu Jinshuo, Cheng Li, Wang Lina, et al. 3D Visualization of Shear Wave Data Based on CUDA[J]. Geomatics and Information Science of Wuhan University, 2013, 38(11):1271-1275 http://ch.whu.edu.cn/CN/Y2013/V38/I11/1271
    [11] Sanjurjo J R, Amor M, Bóo M, et al. Optimizing Monte Carlo Radiosity on Graphics Hardware[J]. Journal of Supercomputing, 2011, 58(2):177-185 doi:  10.1007/s11227-009-0353-y
    [12] 侯璨, 唐丽玉, 陈崇成, 等.基于并行辐射度的虚拟植物冠层内光分布模拟[J].系统仿真学报, 2015, 27(10):2337-2343, 2351 http://www.cnki.com.cn/Article/CJFDTotal-FZDZ201106009.htm

    Hou Can, Tang Liyu, Chen Chongcheng, et al. Parallel Radiosity Based Light Distribution Simulation within the Virtual Plant Canopy[J]. Journal of System Simulation, 2015, 27(10):2337-2343, 2351 http://www.cnki.com.cn/Article/CJFDTotal-FZDZ201106009.htm
    [13] Tang Liyu, Chen Chongcheng, Zou Jie, et al. Onto Plant: An Integrated Virtual Plant Software Pac-kage for Different Scale Applications[C]. IEEE International Conference on Spatial Data Mining and Geographical Knowledge Services, Fuzhou, 2011
    [14] 林定, 陈崇成, 唐丽玉, 等.基于颜色编码的虚拟树木交互式修剪技术及其实现[J].计算机辅助设计与图形学学报, 2011, 23(11):1799-1807 http://www.wanfangdata.com.cn/details/detail.do?_type=perio&id=jsjfzsjytxxxb201111002

    Lin Ding, Chen Chongcheng, Tang Liyu, et al. Interactive Pruning Operation on Virtual Tree Based on Color Encoding[J]. Journal of Computer-Aided Design & Computer Graphics, 2011, 23(11):1799-1807 http://www.wanfangdata.com.cn/details/detail.do?_type=perio&id=jsjfzsjytxxxb201111002
    [15] Ashdown I. Radiosit A. Programmer's Perspective[M]. New York: John Wiley & Sons Inc., 1994
    [16] Cohen M F, Greenberg D P. The Hemi-cube:A Radiosity Solution for Complex Environments[J]. ACM Siggraph Computer Graphics, 1985, 19(3):31-40 doi:  10.1145/325165
    [17] 赵权, 黄运保, 孙宇航. CUDA架构下的靶丸辐射能流并行计算[J].计算机辅助设计与图形学学报, 2013, 25(7):937-945 http://mall.cnki.net/magazine/Article/JSJF201307002.htm

    Zhao Quan, Huang Yunbao, Sun Yuhang. CUDA Based Parallel Computation in Thermal Radiation on Implosion Pellet[J]. Journal of Computer-Aided Design & Computer Graphics, 2013, 25(7):937-945 http://mall.cnki.net/magazine/Article/JSJF201307002.htm
    [18] 张舒, 褚艳利. GPU高性能运算之CUDA[M].北京:中国水利水电出版社, 2009

    Zhang Shu, Chu Yanli. GPU High Performance Arithmetic Operation CUDA[M]. Beijing:China Water & Power Press, 2009
    [19] 刘勇奎, 沈红, 石教英.一个有效的沿三维直线的体素遍历整数算法[J].计算机学报, 2002, 25(11):1257-1262 doi:  10.3321/j.issn:0254-4164.2002.11.021

    Liu Yongkui, Shen Hong, Shi Jiaoying. An Efficient Integer Algorithm for Traversing Voxels Along 3D Lines[J]. Chinese Journal of Computers, 2002, 25(11):1257-1262 doi:  10.3321/j.issn:0254-4164.2002.11.021
    [20] Cook S. CUDA Programming: A Developer's Guide to Parallel Computing with GPUs[M]. Burlington, Massachusetts: Morgan Kaufmann Publishers Inc, 2012
    [21] Tang Liyu, Hou Can, Huang Hongyu, et al. Light Interception Efficiency Analysis Based on Three-Dimensional Peach Canopy Models[J]. Ecological Informatics, 2015, 30:60-67 doi:  10.1016/j.ecoinf.2015.09.012
    [22] Grant R F, Peters D B, Larson E M. Simulation of Canopy Photosynthesis in Maize and Soybean[J]. Agricultural and Forest Meteorology, 1989, 48(1):75-92
  • [1] 刘金硕, 李扬眉, 江庄毅, 邓娟, 眭海刚, PANJeff.  基于PMVS算法的大规模数据细粒度并行优化方法 . 武汉大学学报 ● 信息科学版, 2019, 44(4): 608-616. doi: 10.13203/j.whugis20160186
    [2] 陈静, 袁思佳.  三维虚拟地球中移动对象的时空数据组织方法 . 武汉大学学报 ● 信息科学版, 2017, 42(3): 384-389. doi: 10.13203/j.whugis20140519
    [3] 卢立果, 刘万科, 李江卫.  一种有效的LLL规约算法 . 武汉大学学报 ● 信息科学版, 2016, 41(8): 1118-1124. doi: 10.13203/j.whugis20140484
    [4] 陈静, 邹成, 黄吴蒙, 刘博洋.  面向虚拟地球的三维气象场可视化方法 . 武汉大学学报 ● 信息科学版, 2016, 41(12): 1563-1569. doi: 10.13203/j.whugis20140520
    [5] 尹灵芝, 朱军, 王金宏, 李毅, 徐柱, 曹振宇.  GPU-CA模型下的溃坝洪水演进实时模拟与分析 . 武汉大学学报 ● 信息科学版, 2015, 40(8): 1123-1129. doi: 10.13203/j.whugis20140302
    [6] 魏二虎, 殷志祥, 李广文, 李智强.  虚拟观测值法在三维坐标转换中的应用研究 . 武汉大学学报 ● 信息科学版, 2014, 39(2): 152-156. doi: 10.13203/j.whugis20120648
    [7] 陈静, 袁思佳, 曾方敏.  三维虚拟地球中有源洪水淹没分析算法 . 武汉大学学报 ● 信息科学版, 2014, 39(4): 492-495. doi: 10.13203/j.whugis20120154
    [8] 蒋秉川, 游雄, 夏青, 田江鹏.  体素在虚拟地理环境构建中的应用技术研究 . 武汉大学学报 ● 信息科学版, 2013, 38(7): 875-878.
    [9] 王伦澈, 龚威, 张淼, 马盈盈.  武汉地区植被NPP动态监测研究 . 武汉大学学报 ● 信息科学版, 2013, 38(5): 548-552.
    [10] 刘金硕, 程力, 王丽娜, 郑勇.  利用CUDA的剪切波数据三维可视化 . 武汉大学学报 ● 信息科学版, 2013, 38(11): 1271-1275.
    [11] 眭海刚, 农耘, 聂乾震, 陈佳丽.  利用GIS与虚拟仿真的三维航标配布 . 武汉大学学报 ● 信息科学版, 2011, 36(8): 969-973.
    [12] 杨靖宇, 张永生, 李正国, 龚辉.  遥感影像正射纠正的GPU-CPU协同处理研究 . 武汉大学学报 ● 信息科学版, 2011, 36(9): 1043-1046.
    [13] 张娜, 毛飞跃, 龚威.  2009年武汉市植被净初级生产力估算 . 武汉大学学报 ● 信息科学版, 2011, 36(12): 1447-1450.
    [14] 郭俊, 牛铮.  利用遥感数据对单株木和森林场景进行建模 . 武汉大学学报 ● 信息科学版, 2011, 36(2): 181-184.
    [15] 陈尔学, 李增元, 田昕, 凌飞龙.  星载SAR地形辐射校正模型及其效果评价 . 武汉大学学报 ● 信息科学版, 2010, 35(3): 322-327.
    [16] 李先华, 黄微, 罗庆洲, 刘顺喜.  月球表面遥感图像的地形辐射改正原理研究 . 武汉大学学报 ● 信息科学版, 2010, 35(10): 1197-1201.
    [17] 占文凤, 陈云浩, 马伟, 周纪.  组分权重方法对城市目标方向亮温模拟的影响 . 武汉大学学报 ● 信息科学版, 2010, 35(4): 436-440.
    [18] 刘学军, 张平.  DEM坡度、坡向的有效尺度范围 . 武汉大学学报 ● 信息科学版, 2008, 33(12): 1254-1258.
    [19] 卢秀山, 宁津生, 冯尊德, 郭英.  观测有效性的度量方法 . 武汉大学学报 ● 信息科学版, 2003, 28(2): 144-148.
    [20] 陈永奇.  一种检验GPS整周模糊度解算有效性的方法 . 武汉大学学报 ● 信息科学版, 1997, 22(4): 342-345.
  • 加载中
图(5) / 表(4)
计量
  • 文章访问数:  700
  • HTML全文浏览量:  49
  • PDF下载量:  289
  • 被引次数: 0
出版历程
  • 收稿日期:  2017-02-06
  • 刊出日期:  2018-08-05

利用三维体素遍历和GPU进行辐射度加速计算——以虚拟植物冠层辐射模拟为例

doi: 10.13203/j.whugis20160319
    基金项目:

    国家自然科学基金 41471334

    福建省科技引导性项目 2016Y0058

    作者简介:

    唐丽玉, 博士, 研究员, 主要从事地学可视化与虚拟地理环境、虚拟植物研究。tangly@fzu.edu.cn

  • 中图分类号: P237

摘要: 辐射度模型是虚拟植物冠层内光分布模拟的主要算法之一,针对其形状因子计算量大,辐射能量计算效率低等问题,提出了一种辐射度计算加速方法。以虚拟枇杷冠层内光分布模拟为例,利用均匀体素剖分场景包围盒及三维体素遍历方法进行光源与树模型之间的遮挡判断,同时结合CUDA技术使辐射度算法的形状因子求解并行化。采用归约求和算法和共享内存实现植物模型接受辐射总能量的快速求解。该方法较CPU串行方法有150多倍的加速比。将太阳直射光合有效辐射(photosynthetically active radiation,PAR)分布模拟结果与光线跟踪模型、传统辐射度模型模拟结果进行对比,天空散射PAR分布模拟结果与龟型算法、传统辐射度模拟对比。计算所得PAR值接近,变化趋势一致,表明该方法有较好的精度保证。

English Abstract

唐丽玉, 杨怡斐, 侯璨, 陈崇成. 利用三维体素遍历和GPU进行辐射度加速计算——以虚拟植物冠层辐射模拟为例[J]. 武汉大学学报 ● 信息科学版, 2018, 43(8): 1256-1263. doi: 10.13203/j.whugis20160319
引用本文: 唐丽玉, 杨怡斐, 侯璨, 陈崇成. 利用三维体素遍历和GPU进行辐射度加速计算——以虚拟植物冠层辐射模拟为例[J]. 武汉大学学报 ● 信息科学版, 2018, 43(8): 1256-1263. doi: 10.13203/j.whugis20160319
TANG Liyu, YANG Yifei, HOU Can, CHEN Chongcheng. Optimizing Radiosity Based on Three-Dimensional Voxel Traversal and GPU for Radiation Simulation Within Virtual Canopy[J]. Geomatics and Information Science of Wuhan University, 2018, 43(8): 1256-1263. doi: 10.13203/j.whugis20160319
Citation: TANG Liyu, YANG Yifei, HOU Can, CHEN Chongcheng. Optimizing Radiosity Based on Three-Dimensional Voxel Traversal and GPU for Radiation Simulation Within Virtual Canopy[J]. Geomatics and Information Science of Wuhan University, 2018, 43(8): 1256-1263. doi: 10.13203/j.whugis20160319
  • 随着计算机软、硬件技术的飞速发展,虚拟植物冠层内光合有效辐射(photosynthetically active radiation,PAR)模拟研究逐渐深入。辐射度模型是虚拟植物冠层内PAR模拟的有效算法。辐射度模型以面元为计算单元,在辐射计算前将整个虚拟场景表示为大量面元,面元剖分的粒度随精度要求递增。精度要求越高,辐射度模型的计算量越大。如何有效提升计算效率一直是辐射度模型研究的关键[1]。目前主要有两种途径,一种是利用有效的场景面元管理方法,减少不必要的求交次数,如采用四叉树结构组织场景内的发射与接收面元[2],非均匀KD-Tree空间剖分进行面元间遮挡判断[3]等,取得了一定成效。另一种方法是充分利用硬件资源的性能及可并行性,使用GPU(graphic processing unit)[4-6]、并行虚拟机(parallel virtual machine, PVM)[7]、任务映射模型[8]等提升计算核心的工作效率。近年来,GPU性能不断提高,计算机系统可编程性和功能不断扩展,能够支持越来越复杂的运算。NVIDIA推出计算统一设备架构(compute unified device architecture, CUDA)平台后,GPU具有更好的并行可编程性,应用于矩阵计算、流体力学、元胞自动机等,达到十几倍[9]、30倍[10]的加速比。CUDA也应用于辐射度算法的加速。文献[11]对场景进行空间剖分,提高辐射度算法的可并行性,达到最高12倍的加速比。文献[12]利用基于CUDA的并行辐射度算法估算辐射能量值。该方法与传统运行在主机端的方法相比, 加速比高出20倍左右,但算法中遮挡判断的射线求交次数过多,计算效率有提高的空间。

    针对现有辐射度加速算法研究现状,本文以枇杷冠层PAR辐射为例,采用三维空间均匀剖分体素遍历方法的遮挡判断与CUDA并行化结合的方法,在保证精度的基础上进一步提升辐射度算法的计算效率。

    • 虚拟植物冠层辐射模拟的场景包括三维冠层模型和光源。树木冠层三维模型均由三角形面元构成[13-14];太阳光源剖分为一系列独立且互不重叠的三角形面元。三角形面元Si的辐射度方程可表示为[15]

      $$ {B_i} = {E_i} + {\rho _i}\sum\limits_{j = 1}^N {{B_j}{F_{ij}}} $$ (1)

      式中,Bi为面元Si的辐射度;Ei为面元Si的辐出度;ρi为面元Si的漫反射系数;N为场景的面元总数;Fij为面元SiSj之间的形状因子,是仅与所处场景位置有关的无量纲常数, 其计算公式为:

      $$ \begin{array}{l} {F_{ij}} = {F_{{S_i}{S_j}}} = \frac{1}{{{S_i}}}\smallint {S_i}\smallint {S_j}{\rm{HID}}({\rm{d}}{S_i}{\rm{d}}{S_j}) \times \\ \frac{{{\rm{cos}}{\theta _i}{\rm{cos}}{\theta _j}}}{{{\rm{ \mathsf{ π} }}\parallel {r_{ij}}{\parallel ^2}}}{\rm{d}}{S_i}{\rm{d}}{S_j} \end{array} $$ (2)

      式中,HID(dSi, dSj)为两个面元的遮挡系数;θiθj分别为面元SiSj的法向量与两面元间采样点连线的夹角;‖rij‖为两面元的距离。

    • 计算形状因子是解辐射度方程的关键步骤,计算量占整体辐射度方程求解计算量的90%以上[1]。求形状因子的经典算法有Nusselt’s Analogy算法[15]、半立方体算法[16]、三维离散视角因子算法(three dimensional-discrete view factor,3D-DVF)算法[17]等。3D-DVF算法具有普适性强, 易于并行实现的特点,本文采用3D-DVF算法思想,将虚拟场景离散化,剖分为大量的三角形面元,以面元中心作为采样点坐标,根据面元间的几何位置关系求形状因子,求解各个面元的辐射强度。

      结合虚拟枇杷冠层PAR模拟实例,利用3D-DVF算法计算辐射能量的过程[12]如下。

      1) 加载枇杷三维冠层模型,构建光源并进行离散化剖分;

      2) 计算场景内每个面元的几何属性(包括索引值、中心点坐标、顶点数组、面元面积、反射率等),设定光源面元发射能量初始值;

      3) 对每一个光源面元与树面元进行遮挡判断,设定遮挡函数HID值,求形状因子。将所有树模型面元接受的辐射能量值累加,得到每个面元的最终辐射能量;

      4) 重绘三维虚拟场景对辐射能量进行三维可视化。

      由上述计算流程可知,计算枇杷三维冠层的PAR值是双重循环的过程,需同时遍历树面元与光源面元。单个树面元与单个光源面元的计算与其他面元无关,具有独立性。因此使用3D-DVF算法求解辐射度的过程中,可利用并行处理来提升计算效率。

    • 一个完整的CUDA程序由一系列内核函数并行步骤与主机端的串行处理步骤共同组成。内核函数处理并行计算分为两个层次,首先将复杂问题分为一系列粗粒度问题,在多个独立的线程块内进行运算求解;然后在每个线程块内将问题划分为若干细粒度子问题,在线程块内的多个独立的线程内进行运算求解[18]。本文充分利用CUDA并行计算的特性,设计了虚拟枇杷冠层PAR模拟条件下的利用三维体素遍历和GPU加速的辐射度算法实现策略,如图 1所示。图 1中cudaMalloc为CUDA内存分配函数;cudaMemcpy为设备端与主机端的数据拷贝函数;HostToDevice为数据从主机端拷贝到设备端,DeviceToHost则为从设备端拷贝到主机端。

      图  1  辐射度加速策略

      Figure 1.  Strategy of Radiosity Optimizing Algorithm

      计算光源面元与树面元的辐射能量传输,需先计算两者间的遮挡系数及形状因子。传统的遮挡判断方法以光源为起点,发射指向各个树模型面元的射线,进行射线与三角形面元求交测试。该方法对每条射线均需遍历整个树模型,找出与之相交的所有树面元,此过程非常耗时。

      本文采用三维体素遍历算法,可迅速求出与射线相交的体素[19]。根据场景树模型建立体素包围盒,将光源面板与树模型之间的遮挡判断转化为射线与场景体素的相交检测,将场景进行三维均匀剖分,为树模型做归属判定,每个树模型面元均与唯一的体素关联,以树面元的中心点坐标是否位于某个体素内为依据,可判定树面元是否包含于该体素。与射线相交的体素所包含的树面元也与射线相交。该射线所经过的体素中,离光源距离最近的体素未被遮挡,则遮挡系数为0,其他均视为被遮挡,则遮挡系数为1。然后把遮挡系数代入式(2),计算形状因子。

    • 图 2(a)所示,三维场景中树模型可均匀剖分为若干体素(包围盒)。体素剖分的密度会影响计算效率和精度。密度太小,单个体素内的树面元过多,降低遮挡判断的精度;密度太大,则会浪费存储空间,降低计算效率。经过合理性验证及性能测试,选择16×16×16为树模型体素包围盒剖分密度。利用拓展至三维空间的Bresenham直线光栅化算法[19],求出与光源射线相交的体素,从而判断与树面元的遮挡情况。该方法减少了不必要的求交计算。

      图  2  三维体素遍历过程示意图

      Figure 2.  Illustration of 3D Voxels Traversing Process

      设三维虚拟场景中树面元的个数为nTreeSize,光源面元个数为nLightSize,则射线个数为nTreeSize×nLightSize,而每条射线与树模型的求交计算相互独立,且具有数据量大、任务重复性高的特点,因此可用并行计算进行处理。一个线程对应一条光源射线的三维光栅化,从而可计算与射线相交的场景体素。如图 2(b)所示,最外层红框为树模型的最外层包围盒,白色直线代表光源发出的一条射线,红色的小立方体为该射线与树模型相交的体素。

      与射线相交且包含有树面元的体素中,距离光源最近的体素遮挡函数HID值为0,其他体素中遮挡函数HID值均为1。线程结构采用一维线程格网(Grid)和一维线程块(Block)两层结构,设Block数量为BlockDim.x=nLightSize, Grid数量为GridDim.x=nTreeSize。使用线程总数为nTreeSize×nLightSize,对应射线总数。

    • 形状因子只与两面元之间的空间位置有关,可并行计算。一个线程计算一个树面元与一个光源面元之间的形状因子,同一个树面元与所有光源面元之间的形状因子计算放在同一个线程块中。线程结构采用一维Grid和一维Block两层结构,BlockDim.x=nLightSize, GridDim.x=nTreeSize

      在求解光源面元与树面元之间的能量传递时,一个线程处理一个树面元与一个光源面元之间的能量传递,同一个树面元接受的所有光源面元的辐射能量计算利用同一个线程块。线程结构与计算形状因子相似。

    • 在CUDA架构下,为克服“存储器墙”,应该尽量将变量分配到能够快速通信的共享内存[20]。CUDA6.0支持统一寻址(unified memory)。它可以提供一块独立的虚拟内存空间供所有内存寻址。这样,在不知道主机端数据大小的情况下,设备端的变量甚至可以获取主机端的动态数据。

      虚拟枇杷冠层的PAR能量求解采用归约算法求和,过程中产生的中间数据保存在共享内存中,有利于数据的快速通信。在利用三维体素遍历对虚拟植物模型进行组织时,需要分别拷贝体素最外层包围盒的数据以及每个体素的数据至设备端,如体素宽度与剖分粒度等参数。由于体素的数量较大,若将该变量存储在体素中,需要拷贝多次,而存储在最外层包围盒的结构体中只需拷贝一次,可大大减少显存的使用压力,同时减少数据拷贝时间。

      每个线程计算单个树面元接受单个光源面元的PAR值,每个线程块计算单个树面元接受所有光源面元的PAR值的总和。求和利用并行归约求和运算可以实现对数组元素的并行求和操作。同时这个过程需要在每个线程块进行通信,可以将中间变量存储在共享内存中,实现线程间的快速通信。在可以高速读写的共享内存中进行归约求和后,将计算结果写回全局存储器,进而传回主机端。

    • 本文以“早钟6号”枇杷品种为例,以2015年11月24日13:00为模拟时刻,地理位置为福州(26°07′ N,119°20′ E)。冠层主要有太阳直射和天空散射两个光源,两种光源定义如图 3所示。

      图  3  光源定义

      Figure 3.  Solar Light Source Description

      在确定光源后,对光源面板三角形面元和树模型三角形面元分别赋初值,进而采用并行化算法计算虚拟场景中的PAR值。利用OpenGL绘制三维场景,其中每个面元接受的PAR值越大,渲染的颜色越亮,如图 4所示。

      图  4  枇杷冠层内光分布模拟效果

      Figure 4.  Simulation of the PAR Distribution Within the Loquat Canopy

      图 4可看出,在直射条件下,枇杷冠层顶部、外部较内部、下部更亮,截获的光能量更多。其原因是冠层内部、下层收到的内部枝干相互遮挡较多。天空散射光源方向呈各向同性,冠层内PAR分布比较均匀。

    • 实验硬件环境为HP Compaq Pro 6380MT型计算机,处理器型号为Intel i5-3470@3.20 GHz,显卡型号为NVIDIA GeForce GT 640,操作系统为Windows 7 64位专业版。GPU计算环境为CUDA6.0,集成开发环境为Visual Studio 2010,实验软件平台为研究团队自主研发的参数化单树建模工具ParaTree[13-14],开发并集成了利用三维体素遍历和GPU加速的辐射度算法的虚拟植物PAR模拟的原型系统模块。

      采用4种不同数量级面元数的树模型,分析该方法对不同数量级模型的加速计算效果,面元数见表 1。分别使用基于CPU的射线求交算法和基于GPU的射线求交算法、基于GPU的三维体素遍历算法进行太阳直射光源、天空散射光源与树模型之间的遮挡判断。表 1记录了太阳直射条件下3种方法的计算时间,分别为T1T2T3T4为CPU与GPU双向I/O时间。表 2记录了天空散射条件下3种方法计算时间,分别为T1T2T3T4为CPU与GPU双向I/O时间。CPU与GPU间的数据双向I/O时间是指光源、树模型面片、体素信息等由CPU传入GPU的时间耗费与遮挡判断输出结果由GPU传出至CPU的时间耗费之和,利用加速比分析加速成效。

      表 1  不同复杂树模型太阳直射遮挡判断计算时间对比

      Table 1.  Comparison of Computing Time on Occlusion Identification Among the Different Tree Models in Direct Light

      模型 面元个数 计算时间/s 加速比
      T1 T2 T3 T4 T1/ T2 T1/ T3
      模型1 2 631 35.4 1.6 0.2 0.170 22.1 177.0
      模型2 14 039 968.7 46.2 1.1 0.188 21.0 880.6
      模型3 46 221 12 525.2 511.1 2.2 0.207 24.5 5 693.3
      模型4 102 897 85 396.3 3 588.0 3.2 0.236 23.8 26 686.3

      表 2  不同复杂树模型天空散射遮挡判断计算时间对比

      Table 2.  Comparison of Computing Time on Occlusion Identification Among the Different Tree Models in Diffuse Light

      模型 面元个数 计算时间/s 加速比
      T1 T2 T3 T4 T1/ T2 T1/T3
      模型1 2 631 142.2 5.5 0.9 0.166 25.9 158.0
      模型2 14 039 3 568.9 156.6 2.5 0.187 22.8 1 427.6
      模型3 46 221 47 088.2 1 744.1 3.9 0.207 27.0 12 073.9

      根据表 1表 2数据可总结如下:

      1) 利用GPU并行计算的射线求交算法,其遮挡判断计算达到20倍以上的加速比(T1/ T2T1/T2)。与此同时,随着树模型面元个数的增加,两者间的加速比并没有持续提升。其主要原因为,使用基于并行计算的射线求交算法,在每个线程内都要遍历整个树模型面元,随树模型面元数呈数量级增长,在每个树面元内的遍历过程也呈数量级增加。另一方面,在遮挡判断过程中使用了较多的分支控制语句,影响了GPU的工作效率。这是因为CPU和GPU进行计算的部分都是算术逻辑单元(arithmetic logic unit,ALU),GPU绝大部分的芯片面积都是ALU,而且是超大阵列排布的ALU。这些ALU均可并行运行,故浮点计算速度很快。相较而言,CPU大多数空间都需要交给控制单元和缓存使用,所以GPU的程序控制能力相比CPU来说较弱。

      2) GPU三维体素遍历算法的遮挡判断计算加速比(T1/T3T1/T3)比运行在CPU上的射线算法有明显提升,且随树模型面元个数增加,加速比增加,但是精度会受到一定的影响。这是因为采用均匀体素剖分树模型可避免射线与树模型求交,通过三维直线光栅化算法即可求出与射线相交的体素集合,利用了三维体素遍历的算法优势,提升了GPU的工作效率。但由于模型面片数的提升,体素内包含的树面元个数会增多,从而影响遮挡判断的精度。

      3) T4T4随树模型面片数增加而增加,由于模型1的面片数很少,I/O时间耗费约占总时间耗费的85%。

      采用基于3D-DVF算法的辐射度模型进行PAR辐射计算。统计出形状因子后,场景重绘前,分别使用基于CPU的射线求交算法和基于GPU的射线求交算法计算太阳直射能量的时间分别为T5T6T7(表 3),计算散射能量的时间分别为T5T6T7(表 4)。

      表 3  不同树模型太阳直射PAR计算时间对比

      Table 3.  Comparison of Computing Time on Direct Light PAR Transfer Among Different Tree Models

      模型 面元个数 计算时间/s 加速比
      T5 T6 T7 T5/T6
      模型1 2 631 0.05 0.07 0.067 0.71
      模型2 14 039 0.10 0.08 0.052 1.25
      模型3 46 221 0.25 0.15 0.075 1.67
      模型4 102 897 0.40 0.17 0.114 2.35

      表 4  不同树模型天空散射PAR计算时间对比

      Table 4.  Comparison of Computing Time on Diffusion Light PAR Transfer Among the Different Tree Models

      模型 面元个数 计算时间/s 加速比
      T′5 T′6 T′7 T′5/T′6
      模型1 2 631 0.08 0.09 0.068 0.89
      模型2 14 039 0.25 0.16 0.052 1.56
      模型3 46 221 0.65 0.22 0.074 2.95
      模型4 102 897 1.31 0.17 0.114 7.71

      表 3表 4数据可知,在GPU内采用基于3D-DVF算法的辐射度模型计算,数据类型高度一致,线程内只进行可高度并行的浮点运算,且无分支、判断语句,可利用GPU内ALU较多的优势提升运算速度。模型1计算时间未能实现在CPU基础上提升,是因为使用GPU进行并行计算,会将太阳光源面片与树模型面片数据利用cudaMempcy函数在CPU与GPU之间进行传递。模型1包含面元个数较少,GPU加速时间未能抵消双向I/O时间耗费。

    • 以“早钟6号”枇杷冠层为例,采用本方法模拟枇杷冠层内太阳直射与天空散射PAR分布,估算平均获得的辐射强度。冠层内叶片反射率根据模拟当日对光谱参数实地测量,取0.15。以2015年11月24日为模拟时段,从7:00~16:00,间隔1 h,共模拟10次。直射模拟结果与使用光线跟踪模型[21]和传统辐射度模型(逐步求精辐射度)的模拟结果进行比较,散射模拟对比中,光线跟踪算法替换为龟型算法[22]。计算结果如图 5所示。

      图  5  不同方法模拟“早钟6号”枇杷冠层获得平均PAR对比图

      Figure 5.  Comparison of Average PAR within the "Zaozhong No.6" Loquat Canopy Using Different Methods

      图 5(a)可以看出,采用不同的方法模拟与估算的各个时刻冠层截获的太阳直射PAR强度值略有不同,但日变化趋势一致,早晨和傍晚辐射强度小,中午12时达到峰值。图 5(b)图 5(a)类似,不同方法的模拟结果有些不同,但日变化趋势一致。天空散射PAR强度除早7时与傍晚16时较小以外,其他时刻的值相差不大,在正午时刻稍小,说明本方法有较好的精度保证。

    • 本文针对辐射度模型计算形状因子复杂、耗时长的特点,设计和实现了CUDA架构下,利用三维体素遍历和GPU加速的辐射度方法。利用参数化交互式植物建模软件ParaTree构建“早钟6号”枇杷三维精细冠层结构模型,并在ParaTree的基础上集成了利用三维体素遍历和GPU并行加速的虚拟植物PAR模拟的原型系统模块,开展案例测试与分析。实验结果表明,本方法有150倍以上的加速比;同时,本文辐射度方法计算精度与传统辐射度方法相近。本文提出的方法现阶段仅适用于单株木冠层内PAR分布,后续将展开林分层次的PAR分布模拟及加速实验。

参考文献 (22)

目录

    /

    返回文章
    返回