J'ai donc une application XNA configurée. La caméra est en mode première personne et l'utilisateur peut se déplacer en utilisant le clavier et repositionner la cible de la caméra avec la souris. J'ai été en mesure de charger des modèles 3D très bien, et ils apparaissent sur l'écran sans problème. Chaque fois que j'essaie de dessiner une primitive (texturée ou non), elle n'apparaît nulle part sur l'écran, quelle que soit la position de la caméra.Primitives texturées dans XNA avec une caméra personnelle
En initialize(), je:
quad = new Quad(Vector3.Zero, Vector3.UnitZ, Vector3.Up, 2, 2);
quadVertexDecl = new VertexDeclaration(this.GraphicsDevice, VertexPositionNormalTexture.VertexElements);
En LoadContent(), je:
quadTexture = Content.Load<Texture2D>(@"Textures\brickWall");
quadEffect = new BasicEffect(this.GraphicsDevice, null);
quadEffect.AmbientLightColor = new Vector3(0.8f, 0.8f, 0.8f);
quadEffect.LightingEnabled = true;
quadEffect.World = Matrix.Identity;
quadEffect.View = Matrix.CreateLookAt(cameraPosition, cameraTarget, Vector3.Up);
quadEffect.Projection = this.Projection;
quadEffect.TextureEnabled = true;
quadEffect.Texture = quadTexture;
Et dans Draw() je:
this.GraphicsDevice.VertexDeclaration = quadVertexDecl;
quadEffect.Begin();
foreach (EffectPass pass in quadEffect.CurrentTechnique.Passes)
{
pass.Begin();
GraphicsDevice.DrawUserIndexedPrimitives<VertexPositionNormalTexture>(
PrimitiveType.TriangleList,
quad.Vertices, 0, 4,
quad.Indexes, 0, 2);
pass.End();
}
quadEffect.End();
I pense que je fais quelque chose de mal dans les propriétés de quadEffect, mais je ne suis pas très sûr de quoi.