渲染海量数据

H.J*_*sef 3 opengl qt visualization data-visualization bigdata

我有一个3D浮点矩阵,在最坏的情况下,大小可能是(200000x1000000x100),我想使用Qt/OpenGL可视化这个矩阵.

由于元素的数量非常多,我想以这样的方式渲染它们:当相机远离矩阵时,我只是展示了一些有趣的点,它们给出了矩阵的近似.当相机靠近时,我想获得更多细节,因此计算出更多元素.

我想知道是否有技术可以处理这种可视化.

Ber*_*ann 7

一般的想法称为细节层次渲染,本身就是一门完整的科学.

对于您的域名,我建议两个步骤:

1)通过在不同大小的立方体中平均(算术平均函数)并缓存这些立方体(在磁盘和RAM上)来减少单元数量."不同"在这里意味着您在多种尺寸的立方体中具有相同的数据,例如10000x10000x10000的粗粒度立方体和100x100x100单元的更精细立方体,从而产生多个细节层次.你必须在层次结构中组织这些(较大的包含多个较小的结构),为此我会推荐一个八叉树:http: //en.wikipedia.org/wiki/Octree

2)第二步是实际渲染此八叉树的部分:为此,请使用摄像机点到子立方体的距离.遍历立方体并决定通过使用此距离函数和启发式选择或猜测的阈值来进入子立方体或渲染更大的立方体.

(2)可以进一步优化,但这是可选的:要优化此渲染,请将要渲染的立方体组织成图层:图层的方向(无论是在x,y还是z切片中)取决于您的相机 - 它应该接近垂直的观点.然后将每个切片渲染为纹理,并且您只需要为每个切片渲染具有该纹理的单个四边形,1000个四边形无需渲染.