首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WPF 3D透明纹理-剪裁?

WPF 3D透明纹理-剪裁?
EN

Stack Overflow用户
提问于 2012-01-02 20:27:38
回答 1查看 2.2K关注 0票数 4

http://www.youtube.com/watch?v=gZNdfVwkttM -如果你看不到图片,你可以看到视频中描述的所有问题。

下面所有图像中的所有墙都具有半透明的PNG纹理。每一面正方形的墙、地板和天花板瓷砖都是一个单独的GeometryModel3D (我知道这对性能没有好处,但是...)。中心立方体的地板和天花板没有任何几何体和纹理-因此它们具有与Window.Background (黑色)相同的颜色。但所考虑的效果出现在透明度获取的任何方式中:带有透明度的ImageBrush的纹理,颜色具有alpha通道的Material.Color (例如DiffuseMAterial.Color),ImageBrush具有不透明度的ImageBrush作为材质-所有的方法我都有相同的问题。

所有的墙都由两个三角形组成。其中没有显式的法线,因为我定义了三角形索引,所以WPF会自动计算法线。

http://imagepost.ru/images/i/ma/image00001.png

它也没有任何背部材料或从背面额外的三角形。

正如你所看到的,如果你只从+Z看到-Z (站在蓝色方块上,看着红色方块-这是第二张图片),这是没有问题的。

但是如果你向后看(从红色到蓝色-第一张图片),就没有透明度了!

嗯,我想从黄色的正方形(第三张图)往下看。

然后我走得更近了--你可以看到发生了什么(图4到6)。

没有几何构造错误、纹理映射错误或照明错误!我猜这是某种剪裁!此外,还有一些有趣的图片7和8来证明我的猜测。

最后一张图片显示了托管Viewport3D的窗口的白色背景(上一张是黑色的),我猜测剪切确认了- WPF只是没有绘制场景的这一部分,我们可以看到窗口背景!

但!如果这发生在不同的外观上,为什么从+Z到-Z (第二张图片)的外观看起来很好?!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-01-02 21:27:33

您需要根据三角形与视点之间的距离对三角形进行排序。只有这样,wpf才能混合透明纹理。DirectX能够将三角形一个接一个地混合在一起,但只有在将它们画回前面时才能使用

http://www.ericsink.com/wpf3d/2_Transparency.html

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8700822

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档