基于CUDA与X3D的网格变形及泛在VR内容可视化管理
在当今的计算机图形和虚拟现实领域,有两项重要的技术进展值得关注:一是利用CUDA实现X3D中的网格变形,二是泛在虚拟现实(U-VR)中u-内容的可视化与管理。下面我们将详细探讨这两个方面。
利用CUDA实现X3D中的网格变形
为了进一步优化性能,研究人员实现了两种不同的CUDA内核方法:
- 复杂对象的CUDA内核 :对于高分辨率的复杂模型,为了充分利用多处理器(MP)的资源,每个线程计算一个顶点的变形。每个线程需要所有的控制点和相应的顶点。这里首先关注几何网格变形方法,因为它们更容易并行化。对于每个控制点,需要计算伯恩斯坦多项式,所以顶点和控制点需要复制到共享内存中。选择的块大小为16 × 16,每个线程将一个顶点上传到共享内存,顶点以合并的方式复制,因为一行中的16个线程复制的是全局内存中连续存储的顶点。为了避免限制晶格维度和降低MP的占用率,控制点不复制到共享内存。以计算能力为1.3的设备(如NVidia GeForce GTX 295显卡)为例,一个多处理器可以容纳1024个线程,这里将四个块分配给一个MP。顶点数据使用的共享内存计算如下:
[s = t · 3 · sizeof (float) = 1024 · 3 · 4 Byte = 12 kB]
共享内存总量为16 kB,如果希望一个多处理器完全占用,晶格的最大大小为85个控制点。为了减少从全局内存复制控制点的延迟,每个线程加载相同的控制点数据,实现广播内存访问,使复制完全并行化。复制数据后,计算自由形式变形(FFD),结果存储在变形网格VBO的地址中。
- 简单对象的CUDA内核 <
超级会员免费看
订阅专栏 解锁全文
35

被折叠的 条评论
为什么被折叠?



