分享

WPF 3D中多个模型如何设置某一个在最前?

 xyjackxjw 2013-05-09

WPF 3D中多个模型如何设置某一个在最前?

分类: WPF 3D488人阅读评论(0)收藏举报
 

问题:我们的模型包括导入的3D solid模型和axis坐标轴模型,当模型旋转的时候,3D会将axis挡住。

期望:axis一直在最前面,不会被3D挡住。

方法:

(1) 将模型设置为透明,<SolidColorBrush Color="#3333CC" Opacity="0.8"/>,同时,将axis使用EmissiveMaterial。

这样实现可以在旋转后看到axis,但是这种方法并没有让axis放在最前,效果并不好,所以需要继续找到其他方法。

(2) 看到有些文章中说到z index,在控件中可以使用它设置层次,但是在模型中没有找到类似方法,不知道如何使用。

 

下面是我在微软论坛上提问获得的答案:

Hello,

It seems that you wants to see through a 3D object (for example, a cube), to see the object behind it. If this is the case, the only solution is to make the cube semi-transparent or fully transparent. This is similar to the real world. If a table is behind the wall of a house, you won't be able to see it. But if it is behind a window, you can still see it.

 

One thing to note is how WPF 3D handles transparency. In the above sample, if the windows comes before the table in the visual tree, you still won't be able to see through it. You have to put the non-transparent elements before the transparent ones. There is a helper class which can help you to solve this problem. Have a look at http://blogs./pantal/archive/2007/07/23/sorting-for-wpf-3d-transparency.aspx .

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多