现在我正在使用XNA 4.0和Windows Phone开发人员工具在MSDN上使用预定义的四元组创建纹理立方体。
立方体的前/后/左/右面将绘制得很好(对于我制作的每个立方体),但顶面和底面不会渲染。光栅化器状态的剔除模式设置为无,并且表示顶面的四边形存在,看起来好像它会绘制,但由于某种原因它不会。
我的代码是否有问题,或者由于其他原因这是不是会发生?
以下是代码:
答案 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);
我建议改变你创建所有四边形的方式;每个面孔确实应该有不同的参数。现在你所有的面孔几乎都传递着相同的东西。