Visual Studio中的模型透明度深度问题

时间:2015-01-17 07:48:54

标签: c# xna transparency

嘿伙计们,我环顾四周,找不到像我这样的初学C#程序员可以理解的解决方案。

我在Visual Studio C#上为我的项目设置了一个模型(树),树使用了叶子的平面,我在Blender上用透明背景的叶子图像对这些平面进行了纹理化。我已经使材料透明,纹理接受alpha,但是当我将其导入到游戏中时,树叶是可见的,但透明度会穿过树枝并显示除了背后的树枝之外的所有内容。

Screenshot http://oi57.tinypic.com/9k2s14.jpg

这是我的基本绘制方法,有人可以给我一个调用alpha混合的方法或者我需要什么才能使透明度正常工作?我真的不想阅读关于透明度深度的整本书。

foreach (ModelMesh mesh in model.Meshes)
        {
            foreach (BasicEffect effect in mesh.Effects)
            {
                effect.FogEnabled = true;
                effect.FogStart = 70;
                effect.FogEnd = 100;
                effect.EnableDefaultLighting();
                effect.World = camera.world;
                effect.View = view;
                effect.Projection = projection;
            }
            mesh.Draw();

1 个答案:

答案 0 :(得分:0)

由于您的树叶没有任何半透明区域,您可以使用alpha测试解决此问题。为此,您必须使用AlphaTestEffect渲染树(或在像素着色器中实现alpha测试)。在早期版本的XNA中,存在alpha测试渲染状态。但这些已在4.0版中删除