# What is the metrics of vectors in XNA?

When exporting a model from 3ds Max as FBX to import it into XNA, what metrics should I choose to make 1 unit in 3ds Max equal to 1 unit in XNA?

For example: I have a sphere model with 1m radius exported to XNA. When drawing I use:

Matrix[] transforms = new Matrix[model.Bones.Count];
model.CopyAbsoluteBoneTransformsTo(transforms);
foreach (ModelMesh mesh in model.Meshes)
{
foreach (BasicEffect be in mesh.Effects)
{
be.EnableDefaultLighting();
* TransformMatrix;
be.View = camera.view;
be.Projection = camera.projection;
}
mesh.Draw();
}


Radius is defined in my class as float.

This will draw a ball smaller than 1.

There isn't really a one-size-fits-all solution for this. You can make 1 unit in XNA equal to 1 metre, or 1 kilometre if you'd like. What I'd recommend is you find a transform and stick with it. Start with exporting a 1m sphere into XNA, adjust the scale and/or camera until it looks right, then base everything off that scale.

• but this way is not accurate ? is there any default size ? Jan 13, 2012 at 0:52
• Modeling units have nothing to do with real world quantities like meters, yards or pixels. At the beginning of every real world project a convention is chosen, let's say that 1 "unit" is equivalent to 1 "centimeter." Everyone works with that decision in mind from that point forwards. There is no default "size" because size makes no sense except in this convention chosen at the beginning of the project. <edit> To clarify, this convention is made simply so people can talk about models in people-friendly terms, no other reason. Jan 13, 2012 at 1:23
• Size is relative thus the only two things you need worry about is that: 1) all the models are correctly sized relative to each other and... 2) that the camera setup is proportioned correctly relative to the size of the models to give the look you're after. Unless you're projecting to a specific display in an attempt to display in real world sizes, accuracy is what you make it.
– lzcd
Jan 13, 2012 at 1:25
• Unless you're playing tricks with your models the scale will always be 1.0. Jan 13, 2012 at 5:04
• I wouldn't expect them to; there really isn't any correlation between 3ds units and XNA units.
– DMan
Jan 13, 2012 at 15:42

Not withstanding what Dman is conveying, since you are not following through fully with your matrix[] transforms, there may (or may not) be scaling information inside them that you are not taking into account when setting your be.World.