gpt4 book ai didi

WPF 3D 透明纹理 - 剪裁?

转载 作者:行者123 更新时间:2023-12-05 00:25:54 27 4
gpt4 key购买 nike

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

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

所有的墙都由两个三角形组成。哪里没有明确的法线,因为我定义了三角形索引,所以法线由 WPF 自动计算。

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

它也没有任何背面 Material 或背面的额外三角形。

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

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

好吧,我决定从黄色方块(第三张图)看。

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

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

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

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

最佳答案

您需要根据它们与视点的距离对三角形进行排序。只有这样,wpf 才能混合透明纹理。
DirectX 能够在彼此顶部混合三角形,但仅当将 thema 绘制回前面时

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

关于WPF 3D 透明纹理 - 剪裁?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8700822/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com