J'essaie de dessiner un rectangle de couleur simple sur Monogame (pour Windows8) en utilisant les primitives 3D DrawUserPrimitives
et VertexPositionColor
, mais la seule chose que je peux voir est un rectangle qui couvre la moitié supérieure de l'écran, comme vous pouvez le voir dans la capture d'écran ci-dessous. Cela se produit lorsque vous dessinez un triangle, aussi.DrawUserPrimitives problèmes sur Monogame
Voici mon code:
// camera code
Camera.Position = new Vector3(0, 1500, 0);
Camera.Projection = Matrix.CreatePerspectiveFieldOfView(MathHelper.ToRadians(45), GraphicsDevice.Viewport.AspectRatio, 1, 5000);
Camera.View = Matrix.CreateLookAt(Camera.Position, Vector3.Down, Vector3.Forward);
VertexPositionColor[] vertexList = new VertexPositionColor[4];
BasicEffect basicEffect;
VertexBuffer vertexBuffer;
// initializations
vertexList[0] = new VertexPositionColor(new Vector3(-957, 10, -635), Color.Red);
vertexList[1] = new VertexPositionColor(new Vector3(957, 10, -635), Color.Lime);
vertexList[2] = new VertexPositionColor(new Vector3(-957, 10, 635), Color.Yellow);
vertexList[3] = new VertexPositionColor(new Vector3(957, 10, 635), Color.Blue);
vertexBuffer = new VertexBuffer(GraphicsDevice, typeof(VertexPositionColor), 4, BufferUsage.WriteOnly);
vertexBuffer.SetData<VertexPositionColor>(vertexList);
basicEffect = new BasicEffect(GraphicsDevice);
basicEffect.VertexColorEnabled = true;
basicEffect.LightingEnabled = false;
basicEffect.Projection = Camera.Projection;
// draw code
GraphicsDevice.RasterizerState = RasterizerState.CullNone;
GraphicsDevice.SetVertexBuffer(vertexBuffer);
foreach (EffectPass p in basicEffect.CurrentTechnique.Passes)
{
p.Apply();
GraphicsDevice.DrawUserPrimitives<VertexPositionColor>(PrimitiveType.TriangleStrip, vertexList, 0, 2);
}
Comme vous pouvez le voir, je l'ai utilisé des couleurs différentes pour les quatre sommets, mais le programme semble en fait de tirer seulement deux d'entre eux: vertexList[0]
et vertexList[1]
. Une suggestion? Qu'est-ce qui ne va pas?
Je ne vois pas comment Camera.View transforme vos sommets –