尝试在具有四边形的XNA中绘制带纹理的立方体基元

问题描述 投票:0回答:1

现在,我将XNA 4.0与Windows Phone开发人员工具结合使用,以使用MSDN上的预定义四元类创建带纹理的多维数据集。

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

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

这里是代码:

c# 3d xna cube
1个回答
0
投票

这是因为您的顶面和底面高度都很高。它们的高度应为0。

这里您要传递一个值作为高度:

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

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

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

我建议您更改所有四边形的创建方式;每个面孔确实应该具有不同的参数。现在,您的所有面孔几乎都在传递相同的内容。

© www.soinside.com 2019 - 2024. All rights reserved.