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

时间:2018-10-25 21:55:40

标签: wpf xaml visual-studio-2015 opacity helix-3d-toolkit

我一直在尝试创建一种方法来更改在组合框中选择对象的不透明度,以便可以看到其后的另一个对象。在更改相机位置/方向以从第一个对象的位置跟随第二个对象之前完成此操作。通过使用

克隆对象的默认材质来完成

this.DefaultMaterial = this.DefaultMaterial.Clone();

然后调用

MaterialHelper.ChangeOpacity(DefaultMaterial,0.1);

我在那里写的方法。

在大多数情况下,不透明度似乎可以正常工作,但是对于视口中的某些对象,我无法通过最初的不透明对象看到它们。例如,当我将相机转到有问题的特定物体(越野车一个)上时,与其能够在我的初始物体后面看不到它,反而看到了我的初始物体并经过了第二个物体(越野车一个),就像越野车甚至不在那里。我只是看到它的背后。

我不知道为什么会这样。

有人知道这是什么原因吗?或者,也许还有其他方法可以使某件事透明而不是设置其不透明度?

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

越野车对象是UIElement3D,不透明的对象是FileModelVisual3D,Point3DCollection类的其他对象也有错误,如UIElement3D一样。

1 个答案:

答案 0 :(得分:0)

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

或更改为使用Helix-toolkit sharpdx,并使用透明渲染过程。