# 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 ? – MhdSyrwan Jan 13 '12 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. – Patrick Hughes Jan 13 '12 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 '12 at 1:25
• Unless you're playing tricks with your models the scale will always be 1.0. – Patrick Hughes Jan 13 '12 at 5:04
• I wouldn't expect them to; there really isn't any correlation between 3ds units and XNA units. – DMan Jan 13 '12 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.