硬件/软件光栅化器与光线跟踪

时间:2013-05-23 13:53:40

标签: transparency hardware raytracing raster

我在High-Perf Graphics上看到了“GPU上的高性能软件光栅化”的演示,我对工作/分析/比较印象非常深刻。

http://www.highperformancegraphics.org/previous/www_2011/media/Papers/HPG2011_Papers_Laine.pdf http://research.nvidia.com/sites/default/files/publications/laine2011hpg_paper.pdf

我的背景是Cuda,然后我在两年前开始学习OpenGL来开发EMM-Check的3d界面,这是一个视野分析程序,用于检查车辆是否符合特定标准。基本上你加载车辆(或不同的部件),然后你可以完全或单独移动它,添加镜子/摄像头,分析视角和阴影,以便驾驶员的观点等。

我们正在处理一些透明元素(主要是视图领域,但也可能是车辆本身),因此我写了一些粗略的算法来对要渲染的元素进行排序(在原始级别,一种Painter的算法)但是当然有些情况下很容易失败,尽管大多数情况下都足够了。

由于这个原因,我开始谷歌搜索,我发现了许多技术,如(双)深度剥离,A / R / K / F缓冲,ecc ecc

但看起来所有人都遭受高分辨率和/或大量三角形的影响。

由于我们还处理了数百万个三角形(多达10个或更少),我一直在寻找其他东西,我最终选择了软件渲染器,与hw相比,它们提供了免费的可编程性,但它们更慢......

所以我想知道是否有可能实现混合的东西,即使用不透明元素的硬件渲染器和透明元素的软件(cuda / opencl)然后组合两个结果..

或许简单(不需要复杂的视觉效果,只需要位置,颜色,简单的光线和适当的透明度)cuda / opencl中的光线跟踪算法从这个角度来看可能会简单得多,并且给我们带来很多自由/未来的灵活性?

我没有在网上找到任何关于此的内容......也许是否有任何特殊的障碍?

我想知道您对此有哪些想法/提示/想法/建议

Ps:刘还发现了“通过CUDA光栅器进行单次通过深度剥离”,但第一篇论文的解决方案似乎更快了

http://webstaff.itn.liu.se/~jonun/web/teaching/2009-TNCG13/Siggraph09/content/talks/062-liu.pdf

1 个答案:

答案 0 :(得分:1)

我可能会建议您查看OpenRL,它可以让您进行硬件加速光线跟踪吗?