你能按照简单的代码解释一下吗?
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);
其中 VolumeScalarOpacity 和 VolumeGradientOpacity 是 vtkPiecewiseFunction 的类型......我看到无处解释这些方法......
我很难渲染CT卷......谢谢。
答案 0 :(得分:1)
vtkPiecewiseFunction定义1D分段函数。请参阅文档类:vtkPiecewiseFunction Documentation
定义分段函数映射。此映射允许添加 控制点,并允许用户控制之间的功能 控制点。在对照之间使用分段的厄米特曲线 基于锐度和中点参数的点。锐利的 0产生分段线性函数,锐度1产生a 分段常数函数。中点是标准化距离 在曲线达到中值Y值的控制点之间。 添加节点时指定的中点和锐度值 用于控制到下一个节点的转换(最后一个节点' s 值被忽略)在节点范围之外,如果是,则值为0 如果钳位处于打开状态,则钳位关闭,或最近的节点。运用 添加点的传统方法(没有Sharpness和 中点参数)默认为中点= 0.5(介于两者之间) 控制点)和锐度= 0.0(线性)。
您似乎将其用于体积可视化。代码使用传统类型的AddPoint。因此,对于VolumeScalarOpacity,它控制卷的标量的不透明度。对于您的代码,它会创建一个函数,对于从0.0到0.25的标量,它的计算结果为0.0。然后你的函数描述了对于标量> 0的线性上升到0.1直到1.0。 如果钳位值大于1.0则为0.1,否则它们将为0.0。
如果您无法直观显示数据,请确保您的分段函数在整个标量范围内具有有意义的值。还要确保您的opcaity值合理。 0.1并不多,也许你不会看到你喜欢什么。尝试使用这些值,以满足您的需求。