尝试在XNA中绘制带有四边形的纹理立方体原语

本文关键字:四边形 纹理 立方体 原语 XNA 绘制 | 更新日期: 2023-09-27 18:10:28

现在我正在使用XNA 4.0与Windows Phone开发工具在MSDN上使用预定义的quad类创建纹理立方体。

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

是我的代码有问题,还是因为其他原因没有发生?

代码如下:

  • Game1.cs: http://pastebin.com/RHU7jNXA
  • Quad.cs,Cube.cs: http://pastebin.com/P9gz5q4C

尝试在XNA中绘制带有四边形的纹理立方体原语

这是因为你的上下面都有一个高度。它们的高度应该是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);

我建议你改变如何创建你所有的四头肌;每张脸都应该有不同的参数。现在你们所有人的脸都在传递几乎相同的东西。