gpt4 book ai didi

c# - 在 XNA 中对网格进行排序

转载 作者:行者123 更新时间:2023-11-30 12:48:31 25 4
gpt4 key购买 nike

我对 XNA 中的树有疑问。当我有树时,我需要使用 alpha 混合使非叶子部分透明,但模型的某些部分没有正确显示,因此 alpha 混合失败。我想知道是否有可能读取网格位置以对它们进行排序,或者是否有任何其他方法可以使非叶子部分透明。在模型中排序可能行不通,因为我想从各个角度看这棵树。

最佳答案

3D 环境中的 Alpha 混合可能是一个棘手的问题。肖恩·哈格里夫斯 (Shawn Hargreaves) 写了一篇 article几年前,它涉及到大多数主要问题(标题为 Painter's Algorithm 的部分专门处理您的问题)。长话短说:没有任何技术可以完美地做您想做的事,所以问题就变成了:您愿意做出哪些权衡?

进行 alpha 测试而不是 alpha 混合可能是最简单的解决方案。这是一个二进制测试,其中不透明像素出现或不出现,因此绘制这些像素的顺序在很大程度上是无关紧要的。这会给你硬边,但如果你的纹理有足够的分辨率,它仍然看起来不错;我知道魔兽世界使用了这种技术,而且我很确定我记得在暗黑破坏神 III 中看到过它。

您可以使用内置的 AlphaTestEffect 来执行此操作,或者您自己在像素着色器中实现它。

关于c# - 在 XNA 中对网格进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13938674/

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