一起学WP7 XNA游戏开发(六. 3d Model的载入)

XNA3D Model 一般都是autodesk公司的fbx 格式。载入的方法和2D基本上是一样的,但是在绘制时是有很大不同的。

一.载入:

protected override void LoadContent()

        {

            tankModel = Content.Load<Model>("tank");//载入fbx model

           

            tankBonesTransforms = new Matrix[tankModel.Bones.Count];//创建一个modelboneTransform数组,用来保存所有的model boneTransform.

 

        }

 

二.绘制:

tankModel.CopyAbsoluteBoneTransformsTo(tankBonesTransforms);//model中的boneTransform拷到数组中,为绘制做准备

     Matrix projection = Matrix.CreatePerspectiveFieldOfView(MathHelper.PiOver4,                                                                    GraphicsDevice.Viewport.AspectRatio, 10, 20000);//创建投影矩阵

 

    Matrix view = Matrix.CreateLookAt(new Vector3(1500, 550, 0) * 1 + new Vector3(0, 150, 0), new Vector3(0, 150, 0), Vector3.Up);//创建视图矩阵,将世界坐标转为摄像机的坐标

 

            foreach (ModelMesh m in tankModel.Meshes)//开始绘制世界坐标中的每个对象

            {

                foreach (BasicEffect e in m.Effects)

                {

                    e.World = tankBonesTransforms[m.ParentBone.Index];

                    e.View = view;

                    e.Projection = projection;

                    e.LightingEnabled = true;

 

                    e.SpecularColor = new Vector3(0.8f, 0.8f, 0.6f);

                    e.SpecularPower = 16;

                    e.TextureEnabled = true;

                  

                }

 

                m.Draw();//使用ModelMesh中的draw方法来进行绘制,而不是用SpriteBatch中的draw方法来绘制

 

            }

 

示例下载地址:http://www.52winphone.com/bbs/viewthread.php?tid=282&extra=page%3D1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值