光线投射体绘制中的不透明度校正 希望使用OpenGL、GLSL和C++实现高质量的 RayStudio体绘制。我使用图像顺序体绘制。在光线投射体渲染的一个称为合成的步骤中,我使用以下公式(前后顺序):

光线投射体绘制中的不透明度校正 希望使用OpenGL、GLSL和C++实现高质量的 RayStudio体绘制。我使用图像顺序体绘制。在光线投射体渲染的一个称为合成的步骤中,我使用以下公式(前后顺序):,opengl,graphics,glsl,volume,Opengl,Graphics,Glsl,Volume,当我阅读《实时体积图形》第16页时,我发现如果采样率发生变化,我们需要进行不透明度校正: 并使用此不透明度值替换旧的不透明度值。在此公式中, 是新的采样距离,以及△x是旧的采样距离 我的问题是:我如何确定△在我的程序中的x?假设原始体积的分辨率为V=(512、256、127),然后在(rx、ry、rz)方向投射光线时,采样距离为1/| r·V |。然而,假设在光线投射器中,你基本上是过采样,假设你在3×采样距离V'=(1526768384)处采样体积,过采样采样距离是1/| r·V'|,因此采

当我阅读《实时体积图形》第16页时,我发现如果采样率发生变化,我们需要进行不透明度校正:

并使用此不透明度值替换旧的不透明度值。在此公式中, 是新的采样距离,以及△x是旧的采样距离


我的问题是:我如何确定△在我的程序中的x

假设原始体积的分辨率为V=(512、256、127),然后在(rx、ry、rz)方向投射光线时,采样距离为1/| r·V |。然而,假设在光线投射器中,你基本上是过采样,假设你在3×采样距离V'=(1526768384)处采样体积,过采样采样距离是1/| r·V'|,因此采样率的比率是1/3。这是要添加的指数


请注意,该指数仅在低密度体积时明显,即在医学图像低对比度软组织的情况下。如果你正在对骨骼或致密组织进行成像,那么这几乎没有什么区别(BTDT)。

DatenWalf是正确的,但有一条信息缺失。传递函数是标量值和颜色之间的映射。在RGBA中,值的范围介于0和1之间。作为实现者,您可以选择不透明度的实际值转换为什么,这就是原始采样距离的来源

假设你有一个单位立方体,如果你沿着与面正交的方向追踪一条光线,你选择了两个平移为0.5采样距离的采样。如果体积中的所有位置的alpha值均为0.1,则生成的alpha值为0.1+0.1*(1.0-0.1)=0.19。如果选择了3个样本,则生成的alpha是上一个选择的一个组合:0.19+0.1*(1-0.19)=0.271。因此,您对原始采样距离的选择会影响结果。明智地选择