sábado 21 de agosto de 2010
Tutorial Dibujar un modelo 3D en XNA (Tutorial en bzkGaming)
Hola pues el inicio tan esperado de la creación de un videojuego está por comenzar para este tutorial necesitaremos nuestro modelo en 3D para la gente que no tenga forma de hacer un modelo en 3D Max, Blender, etc. Subo este que yo hice en blender en FBX, pues no es gran cosa no tiene textura solo color, pero es lo que necesitamos para empezar.
Los modelos que usa XNA pueden estar en formato .X o .FBX lo cuales podemos crearlo en algunos programas de diseño, este modelo lo hice en blender.
Ahora que ya han descargado el archivo deben añadirlo al proyecto para esto crearemos una carpeta en Content
Botón derecho en “Content”->Agregar->Nueva Carpeta y la nombraremos Modelos. Le damos clic derecho y le damos Agregar->Elemento existente… y elegimos el archivo tanquecito.fbx que descargamos antes.
Ahora abriremos el archivo Game1.cs y agregaremos una variable de nivel de clase o atributo llamado MiModelo de la Clase Model. La clase modelo pose métodos para poder manipular los modelos 3D que tengamos en nuestro juego. También necesitamos su posición en el espacio. Justo después de
01 public class Game1 : Microsoft.Xna.Framework.Game 02 { 03 GraphicsDeviceManager graphics; 04 SpriteBatch spriteBatch; 05 Model MiModelo;//nuevas lineas de codigo 06 Vector3 mPos = new Vector3(0.0f);
Ahora necesitamos decirle donde esta el archivo que debe cargar, para esto vamos la funcion LoaContent y agregamos el siguiente codigo
01 MiModelo = Content.Load<Model>("Modelos\\tanquecito");
Necesitamos algunas variables, que como se vio en el Tutorial Sistemas de Coordenadas y cámaras usaremos para mostrar nuestro modelo en pantalla, pondremos una cámara en el espacio, utilizaremos un vector3 para indicar la posición de esta, aunque aún no necesitamos que se mueva. También indicaremos la relación de aspecto que tendrá, para esto incluiremos el siguiente código como variables de clase en Game1 como hemos venido haciendo.
01 //camara en el espacion 02 Vector3 camaraPos = new Vector3(500.0f, 100.0f, 1000.0f); 03 //indica la relacion de aspecto 04 float relacionAspecto;
Pero para obtener la relación de aspecto necesitaremos incluir una llamada al dispositivo de gráficos la cual permita indicar la relación. Y para que no se esté ejecutando en cada ciclo, incluiremos está en el método LoadContent() de la siguiente forma
01 //esto genera un numero decimal equivalente a 02 //dividir el ancho de la pantalla 03 //entre el largo 04 relacionAspecto= graphics.GraphicsDevice.Viewport.AspectRatio;
Ya casi acabamos solo nos falta incluir el método para dibujar nuestro modelo.
En esta ocasión usaremos la clase BasicEffect que contiene los métodos que necesitamos para dibujar un modelo 3D en el escenario.
Es nuestro método Draw() justo después de los comentarios // TODO: Add your drawing code here. Anexaremos estas líneas de código.
01 //toma como origen la estructura 3D que viene por default 02 Matrix[] origen = new Matrix[MiModelo.Bones.Count]; 03 MiModelo.CopyAbsoluteBoneTransformsTo(origen); 04 //los objetos 3D en ocasiones como esta estan formados por mallas 05 //lo que se indica es que por cada malla que tiene este 06 // se dibujara en la pantalla 07 foreach (ModelMesh malla in MiModelo.Meshes) 08 { 09 //indica todos lo efectos basicos que pueden aplicarse a las mallas 10 foreach (BasicEffect efecto in malla.Effects) 11 { 12 //luz basica 13 efecto.EnableDefaultLighting(); 14 //MUY IMPORTANTE 15 //indica que se dibujara ne la pantalla 16 // en esta ocasion sera el objeto tan como esta 17 efecto.World = origen[malla.ParentBone.Index]; 18 //crea una vista para la camara 19 //en ella se define la poscion, el objetivo y el vector arriba 20 efecto.View = Matrix.CreateLookAt(camaraPos , Vector3.Zero, Vector3.Up); 21 //indica la proyeccion 22 //esta presente la relacion de aspecto 23 //y los limites cera y lejos para dibujar en la pantalla 24 efecto.Projection = Matrix.CreatePerspectiveFieldOfView(MathHelper.ToRadians(90.0f), 25 relacionAspecto, 100.0f, 10000.0f); 26 } 27 //Dibuja la malla en la pantalla 28 malla.Draw(); 29 }
Pues eso es todo amigos. En el siguiente tutorial, indicare la forma de darle unas cuantas animaciones básicas a nuestro modelo en 3D.
Pueden checar el video en YouTube o descargar el archivo de proyecto que les anexo. No se olviden de comentar y de suscribirse si les gusto este tutorial. Nos vemos
Descarga el Proyecto pass: xna
Suscribirse a:
Enviar comentarios (Atom)
Entradas populares en este Mes
-
Hola bueno ahí que seguir con el tutorial y ahora vamos a ver cómo se pueden mover objetos en 3D. Seguiremos con el proyecto del los tutoria...
-
Tutorial Dibujar un modelo 3D en XNA (Tutorial en bzkGaming ) Hola pues el inicio tan esperado de la creación de un videojuego está por...
-
Para continuar con el tutorial, Explicaremos como primer cosa que el método Matrix . CreateTranslation solo crea un efecto de traslación,...
-
Tutorial Sistemas de Coordenadas y cámaras en XNA (tutoriales en : bzkgaming ) Hola bueno siguiendo con la introducción a la lógica de ...
Entradas populares Siempre
-
Hola bueno ahí que seguir con el tutorial y ahora vamos a ver cómo se pueden mover objetos en 3D. Seguiremos con el proyecto del los tutoria...
-
Tutorial Dibujar un modelo 3D en XNA (Tutorial en bzkGaming ) Hola pues el inicio tan esperado de la creación de un videojuego está por...
-
Tutorial Aspectos básicos en XNA (tutoriales en : http://bzkgaming.wordpress.com/ ) Hola, antes que nada debes de saber que los tutoriale...
-
Tutorial Sistemas de Coordenadas y cámaras en XNA (tutoriales en : bzkgaming ) Hola bueno siguiendo con la introducción a la lógica de ...
-
Mas sobre XNA en bzk Gaming en la seccion de XNA crea tus propis videojuegos Hola, bienvenidos sean de nuevo a este tutorial de XNA en 3D...
Etiquetas
XNA
Tutorial
Videojuegos
windows phone 7
C#
Microsoft
Video
Xbox 360
3D
Programacion
C
Lanzamiento
Linux
Mexico
curso
telefono
windows
wp7
2D
APP HUB
America latina
Andorid
Archivos
Basic
Blog
C++
Camara
Conectar
Estructuras
HD
IBM
Internet
Ipod
Keyboard
Kinect
Kinect vs Move
Kinect vs Wii
LG optimus 7
Lucid
Mouse
Noticia
Python
Raton
SQL
Teclado
Utilidad
Vector
Visual
Visual Basic
XNA 4.0
XNA Frameworks
aplicaciones
celular
celulas fotoelectricas
desarrolladores
descargar
energías renovables
input
java
juegos
lenguajes
php
phpMyAdmin
precio
ruby
ubuntu


2 comentarios:
hice mi propio modelo 3D en blender, pero al guardarlo me lo pone en .blend , como hago para guardarlo en .x o .fbx??
por favor que alguen me responda lo antes posible^^
gracias.....
K bn sta. Gracias
Publicar un comentario en la entrada