平面阻挡多分辨率体积渲染

时间:2012-11-02 01:55:31

标签: opengl graphics 3d volume-rendering

为了将大量数据加载到我的光线投射体绘制系统,我想实现平面阻塞多分辨率策略 - 将体积划分为多个具有相同大小但不同的子块分辨率或LOD(细节级别)根据子块的重要性。

我读了一篇论文,它说我可以这样做:

通过分析内部数据的变化率,我们可以确定每个块的特殊LOD,以显示块的重要性。

图片1:使用2D纹理进行平面遮挡

enter image description here

根据平坦阻塞策略,块的维数必须是2的幂,即将体积除以2 ^ n * 2 ^ n * 2 ^ n的大小,因此对于每个块,有n + 1级细节(0-n)。由于内部数据的变化是块重要性的数学基础,块的每个细节层次都可以用下面的公式来限定

公式1:

enter image description here

这是第i个块的变化,avgi表示某个父块的第i个子块中2 ^(3 * max_l)标量值的平均值,max_l表示最高级别的详细信息。父块,l表示分析当前的详细程度.Sj表示标量值。最终使标量值的变化为约束范围[0,1]。

我的问题是:因为它说某个父块的第i个子块中有2 ^(3 * max_l)个体素,所以子块是什么,图像1中的父块是什么?另外,根据公式,似乎有2 ^(3 *(max_l - l))个体素。我不明白〜

1 个答案:

答案 0 :(得分:3)

  

平面阻塞多分辨率策略 - 将音量划分为许多具有相同大小的子块

“八叉树细分”将是更传统的术语,而不是“阻止多分辨率策略”。事实上,min | max octree已经使用了几十年来加速光线投射,有大量的出版物和专利......

  

因为它说在某个的第i个子块中有2 ^(3 * max_l)个体素

如果(从根到叶子的八叉树水平的数字变为:0 - > max_l)

然后

2 ^(3 * max_l)是所有体积中所有体素的数量。

2 ^(3 *(max_l - l))是等级“l”的细分体积(子体积)中体素的数量

  

是块重要性的数学基础

好吧,如果你这样定义那么它确实是一个“基础”; o)你应用什么样的启发式实际上是任意的;在这种情况下,您使用“标准偏差”作为衡量标准;显然你可以为每个子体积应用其他测量,例如:(max-min)>>(max_l-l)或((max-avg)*(avg-min))>>(max_l-l)等...