Джоэл прав, было бы идеально, если бы вы могли объединить 2d и 3d.2d действует как орфографический вид, а 3d - как вид в перспективе.Используйте несколько 2D спрайтов для 2D рендеринга вместо орфографического представления.Что касается геометрии, то лучшим выбором будет использование вспомогательных функций структуры Matrix .. что-то вроде
Matrix view = Matrix.CreatePerspective(.......)
и других подобных статических вспомогательных функций ....
http://msdn.microsoft.com/en-us/library/microsoft.xna.framework.matrix_members.aspx
Кроме того, для преобразования моделей по масштабу, повороту, сдвигу может быть использована сама матричная структура.
Matrix oldWorld = Matrix.CreateWorld(...);
// something happens ; next update
Matrix scaleMat = Matrix.CreateScale(...);
Matrix rotXMat = Matrix.CreateRotationX(...);
Matrix rotYMat = Matrix.CreateRotationY(...);
Matrix rotZMat = Matrix.CreateRotationZ(...);
Matrix translationMat = Matrix.CreateTranslation(...);
Matrix newWorldMat = scaleMat*rotXMat*rotYMat*rotZMat*translationMat*oldWorldMat;