尝试在具有四边形的XNA中绘制带纹理的立方体基元
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了尝试在具有四边形的XNA中绘制带纹理的立方体基元相关的知识,希望对你有一定的参考价值。
现在,我将XNA 4.0与Windows Phone开发人员工具结合使用,以使用MSDN上的预定义四元类创建带纹理的多维数据集。
立方体的前/后/左/右面将很好地绘制(对于我制作的每个立方体),但是不会渲染顶面和底面。光栅化器状态的消隐模式设置为none,并且存在代表顶面的四边形,看起来好像可以绘制,但是由于某种原因它不会。
我的代码是否有问题,或者是否由于其他原因而没有发生?
这里是代码:
- Game1.cs:http://pastebin.com/RHU7jNXA
- Quad.cs&Cube.cs:http://pastebin.com/P9gz5q4C
答案
这是因为您的顶面和底面高度都很高。它们的高度应为0。
这里您要传递一个值作为高度:
Faces[4] = new Quad(topFaceOrigin, Vector3.Normalize(Vector3.Down), Up, Size, Size);
然后在Quad构造函数中,它用于提供不正确的LowerLeft和LowerRight值:
LowerLeft = UpperLeft - (Up * height);
LowerRight = UpperRight - (Up * height);
我建议您更改所有四边形的创建方式;每个面孔确实应该具有不同的参数。现在,您的所有面孔几乎都在传递相同的内容。
以上是关于尝试在具有四边形的XNA中绘制带纹理的立方体基元的主要内容,如果未能解决你的问题,请参考以下文章