2010-04-12 5 views
1

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.

Répondre

0

Je ne peux pas exécuter ce code sur l'ordinateur ici au travail car je n'ai pas de studio de jeu installé. Mais à titre de référence, consultez l'échantillon audio 3D sur le site Web du club du créateur. Ils ont un "QuadDrawer" dans ce projet qui montre comment dessiner un quad texturé dans n'importe quelle position dans le monde. C'est une très bonne solution pour ce que vous semblez vouloir faire :-)

http://creators.xna.com/en-US/sample/3daudio

Questions connexes