基于硬件加速的Voronoi图并行生成研究.PDF

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于硬件加速的Voronoi 图并行生成研究 辛胜钧(034964),谢剑(034961),袁仲达(034966) 一、 问题背景: 给Voronoi 图着色或生成加权的Voronoi 图是一个富有挑战性的问题。我们 的想法是用并行的算法生成加权的Voronoi 图并对Voronoi 图进行着色。 为了提高并行处理的速度,我们用GPU 来处理。Cg (C for Graphics )是一 种用来对GPU 编程的高级语言,其语法结构,函数调用和绝大多数数据类型与 C 语言很相近。通过CG 可以很方便的进行三维模型的变形处理(平移,旋 转,拉伸)和渲染控制(着色,贴图变换)。我们使用的主要是其平移运算。 利用GPU 的图像运算能力,快速生成Voronoi 图。 二、 问题分析: Voronoi 图已经有许多种生成算法,但是先生成Voronoi 图再染色的话无疑 会浪费染色所带来的附加信息。而加权的Voronoi 图由于其边界是曲线,更是 会增加问题的难度。为此我们参考了Voronoi 图的原始提法:节点 (Site )的控 制域。每一个节点(Site) 的控制域以等速度扩大直到在发生冲突时停下,这些停 止点所连成的自然就是Voronoi 图。 图一:增长中的节点控制区域 为此,我们采用了并行的方法来模拟每一个点的控制域的增长。因为进程 之间的同步机制可以引入一定的随机性,不会出现恒定循环时对应的优先级领 先现象。这种现象反映到离散的点空间上就是两个点之间的模糊区域(有离散 误差引入)永远属于某一个点。 我们知道一个等高的圆锥族如果位于同一水平面上,他们两两相交的曲线 在公共的地面上的投影就是一个Voronoi 图,节点就是圆锥的顶点。如果某一 个圆锥所在的水平面高于或者低于其他,就相当于对节点赋予了绝对权重(不 同的初始范围,默认为0 )。如果某个圆锥的底边半径不等于其他的圆锥,则 相当于对节点赋予了相对权重,对应于该节点和其他节点增长速度比例(默认 为1,即同步增长)。 图二:相对权值不同(右)和绝对权值(左)不同的Voronoi 图 三、 解决方案: A, 软件的方法 采用并行算法,用离散的事件来模拟控制域的增长。给每一个Site 关联一 个同步的线程,这样就保证了扩大的停止线就一定在Voronoi 图的附近,最多 一个像素的误差。 然而这种离散化的一个代价就是在一定条件下误差难以控制。当两个点靠 得很近时,其连线垂直平分线附近距离两个点都很远的时候,离散的点就会属 于先对这个区间测试并占据的(参见下图)。 图三:偶极子的误差非常明显 下图更清楚地说明了这种现象:因为白色的空位到两个节点的距离相差很 小,在两个节点控制区域同步增长时就成了谁先到归谁管。再加上进程同步的 随机性,就出现了上图的那种锯齿现象。 图四:节点对靠近公共区域离散点的争夺 得到染色的Voronoi 图以后就可以利用边缘检测得到节点之间的相邻信息 (Delaunay Triangulation )。因为我们知道节点的位置,亦即每一个凸的单色区 域的内部节点,边缘检测就成了很容易的事情。 图五:边缘检测示意 从节点之间的相邻信息(Delaunay Triangulation )出发,利用对偶关系进行 演算,就可以在线性时间得到Voronoi Diagram 。 图六:由三角剖分得到Voronoi 图 赋予不同的Site 不同的增长速度, struct _DCEL_Face{ int id; 就可以方便的模拟加权的Voronoi 图生 _DCEL_HalfEdge* incEdge; 成过程。 _DCEL_Coord si

文档评论(0)

136****3783 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档