0

我想知道是否可以使用位图在 wpf 3d 中设置锥体的 alpha 通道:

黑色 = > 阿尔法 = 0 %

白色 => alpha = 100 %(更可能是 80 % 以查看内部 alpha 差异......)

替代文字 http://www.visualdmx.fr/bitmap_alpha.png

4

1 回答 1

0

WPF 对此没有任何内置机制。我认为最简单的方法是:

  1. 使用跟踪库(例如 Lie Ryan 提到的 potrace)将位图转换为几何图形。
  2. 使用 GetFlattenedPathGeometry() 将几何简化为折线
  3. 将生成的几何图形中的每个线段转换为从 (x,y,0) 到 (0,0,z) 的 3D 三角形,其中“z”是圆锥的高度。
  4. 构建 MeshGeometry3D 的 Positions 和 TriangleIndices 并将其 Material 设置为具有所需不透明度的 SolidColorBrush。

步骤 2-4 都非常简单。从选择适当的第三方位图跟踪库并找出从 C# 调用它所需的任何 P/Invoke 或 COM 互操作的角度来看,步骤 1 可能很困难。使用 BitmapSource.CopyPixels 获取要传递给库的位,并通过在打开的 StreamGeometry (StreamGeometry.Open) 上绘图从结果构造几何。

于 2010-06-15T08:23:47.577 回答