2

你能按照简单的代码解释一下吗?

VolumeScalarOpacity->AddPoint(0.0, 0.0);
VolumeScalarOpacity->AddPoint(0.25, 0.0);
VolumeScalarOpacity->AddPoint(1.0,  0.1);

VolumeGradientOpacity->AddPoint(0.0, 0.0);
VolumeGradientOpacity->AddPoint(1.0, 0.0);
VolumeGradientOpacity->AddPoint(90.0, 0.1);
VolumeGradientOpacity->AddPoint(900.0, 0.5);

其中VolumeScalarOpacityVolumeGradientOpacity是 vtkPiecewiseFunction 的类型......我看不到任何地方解释这些方法......

我很难渲染 CT 卷……谢谢。

4

1 回答 1

1

vtkPiecewiseFunction 定义一维分段函数。从类文档中看到这个:vtkPiecewiseFunction Documentation

定义分段函数映射。这种映射允许添加控制点,并允许用户控制控制点之间的功能。根据锐度和中点参数,在控制点之间使用分段厄米特曲线。锐度为 0 产生分段线性函数,锐度为 1 产生分段常数函数。中点是曲线达到 Y 中值的控制点之间的归一化距离。添加节点时指定的中点和锐度值用于控制到下一个节点的过渡(忽略最后一个节点的值) 在节点范围之外,如果关闭 Clamping,则值为 0,如果 Clamping,则为最近的节点点开启。

您似乎将它用于体积可视化。并且代码使用旧类型的 AddPoint。因此,对于您的 VolumeScalarOpacity,它控制体积标量的不透明度。对于您的代码,它会创建一个函数,对于从 0.0 到 0.25 的标量,该函数的计算结果为 0.0。然后你的函数描述了一个线性上升到 0.1 的标量 > 0.25 直到 1.0。如果你有更大的值,那么 1.0 将是 0.1,否则它们将是 0.0。

如果您在可视化数据时遇到问题,请确保您的分段函数在数据的整个标量范围内具有有意义的值。还要确保你的 opcaity 值是合理的。0.1 并不多,也许你不会看到你喜欢的。试验这些值,使它们适合您的需要。

于 2014-08-04T13:13:19.603 回答