使用 Helix Toolkit 的 VS 2015 中的不透明度错误

Opacity bug in VS 2015 using Helix Toolkit

当我在组合框中 select 对象时,我一直在尝试创建一种方法来更改对象的不透明度,以便我可以看到它后面的另一个对象。这是在更改相机 position/direction 以从第一个对象的位置跟随第二个对象之前完成的。这是通过克隆对象的默认值 material 和

来完成的

this.DefaultMaterial = this.DefaultMaterial.克隆();

然后调用

MaterialHelper.ChangeOpacity(默认材质,0.1);

我写的方法。

不透明度似乎在大多数情况下都能正常工作,但对于视口中的某些对象,我无法通过初始不透明对象看到它们。例如,当我将相机转向所讨论的特定对象(有问题的对象)时,我没有看到它在我的初始对象后面,而是透过我的初始对象看到了第二个对象(有问题的对象),就好像越野车甚至不在那里。我只看到它背后的东西。

我不知道为什么会这样。

有人知道是什么原因造成的吗?或者是否有其他方法可以使某些东西透明而不是设置其不透明度?

我看到有些人引用了 TRANSPARENCY 属性,但不确定这是否适用于 FileModelVisual3D 对象,即初始对象。

有问题的对象是 UIElement3D,不透明的对象是 FileModelVisual3D,Point3DCollection class 的其他对象也有问题,就像 UIElement3D 一样。

由于 RenderOrder 和深度缓冲区。您必须将透明对象移动到渲染的末尾。这不是错误,而是渲染的工作方式。

或者改为使用Helix-toolkit sharpdx,并使用透明渲染pass。