第一范文网 - 专业文章范例文档资料分享平台

CUDA光线跟踪渲染器的实现和优化(5)

来源:用户分享 时间:2021-06-02 本文由北栀凉心 分享 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

图3 GPU光线跟踪流程图

将光线跟踪过程从递归方式变为循环方式后,尽管程序逻辑变得更加复杂,但从效率上90 来看,循环的方式因为减少了函数调用开销,实际上比递归方式具有更高的效率。

从逻辑上来看,光线之间是类似于二叉树的结构。但在进行光线跟踪时,并不适合使用静态二叉树的遍历算法。由于反射光线和折射光线的生成需要父光线与物体的交点信息,每条光线的颜色计算同样也需要交点信息,而求交运算是影响光线跟踪速度最主要的一个因素,因此,光线的生成和颜色的计算应该同时进行。若采用二叉树的方式存储光线之间的关95 系,则还需要再遍历一遍二叉树来计算颜色,造成重复计算交点。另一方面,尽管可以采用

保存交点的方式,但由于二叉树的结构特点,其占用的储存空间随着迭代次数的增加将成指数增长。而采用本文的堆栈方式,既可以不增加求交点的次数,也使得需要的存储空间与迭代次数保持了线性关系。

本文实现的光线跟踪渲染器的效果图如图4所示。

100

图4 渲染效果图 (分辨率 = 800×800,迭代深度 = 5)

4 性能优化

105 尽管光线跟踪渲染器已经能够在CUDA平台上正常运行,但由于CUDA的一些固有特

点,程序还有很大的优化空间。本文主要从数据传输和内存访问两个方面尝试对前文实现的光线跟踪渲染器进行了优化。

4.1 数据传输的影响

尽管采用了在GPU端完全执行程序的方式避免了场景数据的来回传输,但是在光线跟110 踪结束后,图像数据将从CUDA全局内存中被复制到内存中。在实际通过GDI或者OPENGL

搜索“diyifanwen.net”或“第一范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,第一范文网,提供最新人文社科CUDA光线跟踪渲染器的实现和优化(5)全文阅读和word下载服务。

CUDA光线跟踪渲染器的实现和优化(5).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/wenku/1198258.html(转载请注明文章来源)
热门推荐
Copyright © 2018-2022 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top