尝试使用四边形在XNA中绘制纹理立方体基元

时间:2011-10-06 06:17:17

标签: c# 3d xna cube quad

现在我正在使用XNA 4.0和Windows Phone开发人员工具在MSDN上使用预定义的四元组创建纹理立方体。

立方体的前/后/左/右面将绘制得很好(对于我制作的每个立方体),但顶面和底面不会渲染。光栅化器状态的剔除模式设置为无,并且表示顶面的四边形存在,看起来好像它会绘制,但由于某种原因它不会。

我的代码是否有问题,或者由于其他原因这是不是会发生?

以下是代码:

1 个答案:

答案 0 :(得分:0)

这是因为你的顶面和底面都有一个高度。他们的身高应该是0。

这里传递一个值为height:

Faces[4] = new Quad(topFaceOrigin, Vector3.Normalize(Vector3.Down), Up, Size, Size);

然后在Quad构造函数中,它被用于提供不正确的LowerLeft& LowerRight值:

LowerLeft = UpperLeft - (Up * height);
LowerRight = UpperRight - (Up * height);

我建议改变你创建所有四边形的方式;每个面孔确实应该有不同的参数。现在你所有的面孔几乎都传递着相同的东西。