使用八叉树来组织三维数据在GPU [英] Use octree to organize 3D volume data in GPU

查看:1208
本文介绍了使用八叉树来组织三维数据在GPU的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我现在想实现光线投射体用C ++渲染,OpenGL和GLSL(用于GPU加速)。为了获得更好的质量和性能,我想用八叉树组织三维医学体数据,这样我就可以使用一些算法,如空间跳跃和自适应抽样容易。

I am now trying to implement Ray Casting Volume Rendering using C++, OpenGL and GLSL (for GPU speeding). In order to get better quality and performance, I want to use octree to organize the 3D medical volume data,so I can use some algorithm such as Space Leaping and Adaptive Sampling easily.

但如何有效地建立八叉树?如何前往八叉树?当光线行进中的数据量,我怎么能确定哪个八叉树的细胞或叶的采样点属于?

But how to build the octree effectively? How to visit the octree? When the ray travels in the volume data, how can I determine which cell or leaf of the octree the sample point belong?

推荐答案

有GPU的八叉树的这里(这里也有可用的源代码 )。它是基于CG然而,但是,可以是考虑更多的优点。

There is an excellent article on GPU octree's available here (there is also source available here). It is based on Cg however, but that can be consider more an advantage.

看到你正在使用的医疗数据,随着更多的数据密集,你也可能有兴趣西里尔Crassin的pH值。 ð论文,它采用流GPU稀疏八叉树的为组织致密体素数据。这里八叉树是建立在使用3D体积纹理数据存储(叶节点)和一个砖池分配内部节点GPU上,从下向上内置然后MIP-map'ed为光线投射

Seeing as you are using medical data, with is more data dense, you may also be interested in Cyril Crassin's Ph. D Thesis, which uses streaming GPU sparse octree's for organisation of dense voxel data. Here the octree is built on the GPU using a 3D volume texture for data storage(leaf nodes) and a brick pool for allocating internal nodes, built from the bottom up then mip-map'ed for ray casting.

如果你愿意弯曲了一下,没有对稀疏的体素的一个大项目八叉树的使用CUDA,这将提供宝贵的见解稀疏八叉树的和光线投射到他们。

If you are willing to bend a bit, there is a big project on sparse voxel octree's using CUDA, which would provide valuable insight into sparse octree's and ray-casting into them.

这篇关于使用八叉树来组织三维数据在GPU的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆