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

c# – 在XNA中对网格进行排序,第1张

概述我在XNA中遇到树问题.当我有树时,我需要使用alpha混合来使非叶部分透明,但模型的某些部分未正确显示,因此alpha混合失败.我想知道是否有可能读取网格位置来对它们进行排序,或者是否有其他方法可以获得透明的非叶部分. 模型中的排序可能不起作用,因为我想从各个角度看这棵树. 在3D环境中进行Alpha混合可能是一个棘手的问题.几年前,肖恩·哈格里夫斯写了一篇关于大多数主要问题的文章(题为“画家的 我在XNA中遇到树问题.当我有树时,我需要使用Alpha混合来使非叶部分透明,但模型的某些部分未正确显示,因此Alpha混合失败.我想知道是否有可能读取网格位置来对它们进行排序,或者是否有其他方法可以获得透明的非叶部分.
模型中的排序可能不起作用,因为我想从各个角度看这棵树.解决方法 在3D环境中进行Alpha混合可能是一个棘手的问题.几年前,肖恩·哈格里夫斯写了一篇关于大多数主要问题的文章(题为“画家的算法”一节专门讨论了你的问题).长话短说:没有技术可以做到你想要的完美,所以问题就变成了:你愿意做出什么权衡?

进行Alpha测试而不是Alpha混合可能是最简单的解决方案.这是一个二元测试,其中出现或不出现不透明像素,因此绘制这些像素的顺序在很大程度上是无关紧要的.这将为您提供坚硬的边缘,但如果您的纹理具有足够的分辨率,它仍然可以看起来很好;我知道魔兽世界使用这种技术,我很确定我记得在“暗黑破坏神III”中看过它.

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

总结

以上是内存溢出为你收集整理的c# – 在XNA中对网格进行排序全部内容,希望文章能够帮你解决c# – 在XNA中对网格进行排序所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1229532.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存