使用 HelixToolkit 使 3D 模型面朝半透明的问题

Issues with making a 3D model faces semi-transparent using HelixToolkit

我正在尝试使用 HelixToolkit 显示下面描述的 3D 模型。 (以下快照取自 SolidWorks。)

我把我的GeometryModel3DDiffuseMaterialMaterialBackMaterial的笔刷颜色设置为透明色。

Model3DGroup faceVisualEntity = ModelFaces.First(modelFace => modelFace.Content.GetName() == faceName).Content as Model3DGroup;

// Breaking the 3D-model down to the constituting mesh..
//
foreach (var child in faceVisualEntity.Children)
{
    if (child is GeometryModel3D)
    {
        GeometryModel3D body = child as GeometryModel3D;
        body.Material = new DiffuseMaterial(new SolidColorBrush("#40FF0000"));
        body.BackMaterial = new DiffuseMaterial(new SolidColorBrush("#40FF0000"));
    }
}

然而,我在HelixViewport3D中看到的是如下所示。

虽然盒子的侧面看起来是透明的,但我想知道为什么看不到盒子里面的管道。我还将管壁的颜色更改为不透明值,但还看不到它们。

事实是,仅通过更改模型面的 alpha 通道无法使用 HelixToolkit 的透明功能 material。实际上,HelixToolkit 代码中有一个示例显示需要 SortingVisual3D 来支持模型的透明度。因此,我首先将 SortingVisual3D 的实例添加到 HelixViewport3D,然后向其添加 Visual3D 对象,例如 ModelVisual3DLinesVisual3D 等。结果,我现在看到的是下面这样的。