Creo que aqui se pone un poco mas interesante este cuento de XNA, pues lo más rico al inciar a crear juegos es cargar y ver un modelo.
Que es un modelo?
Por Dios, un desarrollador nato de juegos no pregunta eso. Bueno aqui no somos desarrolladores natos, así que te dare la definición que me encontre aqui.
Modelo: En computación, un modelo en 3D es un "mundo conceptual en tres dimensiones".
Un modelo 3D puede "verse" de dos formas distintas. Desde un punto de vista técnico, es un grupo de fórmulas matemáticas que describen un "mundo" en tres dimensiones.
Desde un punto de vista visual, valga la redundancia, un modelo en 3D es un representación esquemática visible a través de un conjunto de objetos, elementos y propiedades que, una vez procesados (renderizacion) se convertirán en una imagen 3d.
Bueno ahi tenemos la definicion de un modelo, aunque esta muy tecnico lo voy a desbaratar de esta forma:
Si tenemos un juego que es de carrera de autos, pues los modelos son todos los componentes graficos, digase: Automoviles, pistas, publico, semaforos, etc. Basicamente es lo que vemos en el juego.
Aunque esto es una definición básica de lo que es un modelo, nos puede llevar varios días entender como funciona, pues tiene una complejidad mas grande, por que un modelo tambien comprende meshes, poligos, texturas, sociaciones, jerarquias, etc.
Pero por ahora con esto que sabemos podemos continuar.
Viene lo bueno.
En XNA es muy facil cargar un modelo, por lo que he leido en otros lenguajes de programacion si queremos cargar un modelo me tomaría muchas lineas.
Modelo Tetera para ejemplo
En el proyecto MiJuego que ya habiamos compilado en el tutorial anterior, importamos el modelo Cubo.x
Uhmmm pero antes de cargarlo, vamos a empezar a tener orden con nuestro proyecto, vamos a crear una carpeta que contendra todos los modelos que cargaremos a nuestro juego, llamada Modelos.
En esta carpeta le damos Add>Existing Item y agregamos Cubo.x
Despues de subido nuestro modelo al proyecto, vamos a cargarlo.
se crea la variable del modelo que vamos a cargar.
ReferenceGraphicsDeviceManager graphics;
ContentManager content;
//Variable Modelo
protected Model MiModelo;
Se instancia la clase modelo, en el Load de mi juego.
protected override void LoadGraphicsContent(bool loadAllContent)
{
if (loadAllContent)
{
// TODO: Load any ResourceManagementMode.Automatic content
//Se instancia el modelo
MiModelo = content.Load<Model>("Modelos//Cubo");
}
// TODO: Load any ResourceManagementMode.Manual content
}
Recuerda que el nombre del archivo sin el .x sera el que tendra referencia
En el metodo Draw ponemos el siguiente codigo:
protected override void Draw(GameTime gameTime)
{
graphics.GraphicsDevice.Clear(Color.WhiteSmoke );
foreach (ModelMesh meshes in MiModelo.Meshes)
{
foreach (BasicEffect efectos in meshes.Effects)
{
efectos.EnableDefaultLighting();
efectos.World = Matrix.Identity; ;
efectos.View = Matrix.CreateLookAt(new Vector3(0, 50, 200), Vector3.Zero, Vector3.Up);
efectos.Projection = Matrix.CreatePerspectiveFieldOfView(MathHelper.ToRadians(45.0f), 640.0f / 480.0f, 1.0f, 10000.0f);
}
meshes.Draw();
}
base.Draw(gameTime);
}
Cuanto codigo...
bueno vamos por partes.
Draw? Este metodo se encarga de dibujar todo lo que veremos en nuestro juego.
MiModelo.Meshes Con esto lo que hacemos es recorrer los meshes dde nuestro modelo que estan guardados en el .x para cargarlo en nuestro mundo.
Matrix.CreateLookAt(new Vector3(0, 50, 200), Vector3.Zero, Vector3.Up)
Este codigo nos ayuda a crear una vista posicion de nuestro modelo.
Ya con esto podemos compilar nuestro proyecto.
Excelente aporte...
Espero Tutorial para cargar figuras con mapas.
Saludos