No estás conectado. Conéctate o registrate

Como generar un modelo 3D por medio del Lenguage C#

Ir abajo  Mensaje [Página 1 de 1.]

Este es una simple demostracion de como abrir un modelo 3D (.fbx) con el lenguage C# a traves del framework .Net (XNA)

Lo primero que necesitamos es bajar el C# express, es gratiuto

[Tienes que estar registrado y conectado para ver este vínculo]

Despues necesitamos bajar el framework XNA, tambien es gratuito para PC, lamentablemente para Xbox 360 hay que tener licencia

[Tienes que estar registrado y conectado para ver este vínculo]

Creamos un nuevo proyecto tipo Windows PC Game y buscamos un modelo 3d, en este lenguaje se le llama Assets

y lo cargamos con el siguiente codigo

// Set the 3D model to draw.
Model myModel;

// The aspect ratio determines how to scale 3d to 2d projection.
float aspectRatio;

protected override void LoadContent()
{
// Create a new SpriteBatch, which can be used to draw textures.
spriteBatch = new SpriteBatch(GraphicsDevice);

myModel = Content.Load<Model>("Models\\p1_wedge");
aspectRatio = graphics.GraphicsDevice.Viewport.AspectRatio;
}

// Set the position of the model in world space, and set the rotation.
Vector3 modelPosition = Vector3.Zero;
float modelRotation = 0.0f;

// Set the position of the camera in world space, for our view matrix.
Vector3 cameraPosition = new Vector3(0.0f, 50.0f, 5000.0f);

Ahora despues de cargar el Asset en memoria necesitamos dibujarlo, pero hay que tener en cuenta que tenemos que dibujar cada vértice y aplicar efectos al objeto, y lo dibujamos con este procedimiento.

protected override void Draw(GameTime gameTime)
{
graphics.GraphicsDevice.Clear(Color.CornflowerBlue);

// Copy any parent transforms.
Matrix[] transforms = new Matrix[myModel.Bones.Count];
myModel.CopyAbsoluteBoneTransformsTo(transforms);

// Draw the model. A model can have multiple meshes, so loop.
foreach (ModelMesh mesh in myModel.Meshes)
{
// This is where the mesh orientation is set, as well
// as our camera and projection.
foreach (BasicEffect effect in mesh.Effects)
{
effect.EnableDefaultLighting();
effect.World = transforms[mesh.ParentBone.Index] *
Matrix.CreateRotationY(modelRotation)
* Matrix.CreateTranslation(modelPosition);
effect.View = Matrix.CreateLookAt(cameraPosition,
Vector3.Zero, Vector3.Up);
effect.Projection = Matrix.CreatePerspectiveFieldOfView(
MathHelper.ToRadians(45.0f), aspectRatio,
1.0f, 10000.0f);
}
// Draw the mesh, using the effects set above.
mesh.Draw();
}
base.Draw(gameTime);
}

Despues de haberlo dibujado necesitamos darle un movimiento; esto se obtiene con el procedimiento Update, pero hay que tomar en cuenta que el XNA nos permite 3 tipos de transformacion que son Rotar, Acercar y Transformar

protected override void Update(GameTime gameTime)
{
// Allows the game to exit
if (GamePad.GetState(PlayerIndex.One).Buttons.Back ==
ButtonState.Pressed)
this.Exit();

modelRotation += (float)gameTime.ElapsedGameTime.TotalMilliseconds *
MathHelper.ToRadians(0.1f);

base.Update(gameTime);
}

Espero que este sea el primer paso para una introduccion al mundo de los Video Juegos y tambien al mundo de un lenguaje muy completo que es el C#

Sigan aprendiendo!

Ver perfil de usuario

2 XNA 4.0 Game Development By Example el Mar Ene 11, 2011 1:03 pm

nevifi

avatar
Admin
Pueden ir al foro eBooks tema Video-Juegos y descargar el libro XNA 4.0 Game Development By Example.pdf

Ver perfil de usuario http://drbuho.forovenezuela.net

Volver arriba  Mensaje [Página 1 de 1.]

Permisos de este foro:
No puedes responder a temas en este foro.