Модель не отображается правильно в XNA, игнорирует некоторые деформации кости Ответить Цитировать Редактировать Я очень новичок в 3D-моделировании, однако мне нужно сделать некоторые из проектов, которые я предпринял.Модель не отображена правильно в XNA
Основным принципом является то, что мне нужна человеческая модель, которая может быть деформирована для измерений пользователей (измеряется с помощью Kinect, но это уже другая история!). Например, я хочу, чтобы растянуть область живота для крупных пользователей и т.д.
Использование 3Ds Max я смог подстроить модель человека с использованием двуногое, а затем добавить некоторые дополнительные кости, чтобы изменить живот:
Это все выглядит хорошо, однако, когда я загрузить его в XNA, деформация желудка имеет vanished-
Я несколько в недоумении, почему это имеет час и любые предложения были бы наиболее желанными, или любые ссылки на учебные пособия о том, как это должно быть сделано.
Кроме того, когда я просматриваю экспортированный FBX в плагине просмотра FBX для QuickTime, деформации показывают абсолютно все.
Код для отображения модели (ее F # код, преобразованный вид C# пример, но я попробовал его с оригинальным C# код и получить тот же результат) является:
override this.Draw(gameTime)=
// Copy any parent transforms.
let (transforms:Matrix array) = Array.zeroCreate model.Bones.Count
model.CopyAbsoluteBoneTransformsTo(transforms);
this.Game.GraphicsDevice.BlendState <- BlendState.Opaque
this.Game.GraphicsDevice.DepthStencilState <- DepthStencilState.Default
// Draw the model. A model can have multiple meshes, so loop.
for mesh in model.Meshes do
// This is where the mesh orientation is set, as well
// as our camera and projection.
for e:Effect in mesh.Effects do
let effect = e :?> BasicEffect
effect.EnableDefaultLighting()
effect.World <- mesh.ParentBone.Transform *
Matrix.CreateRotationZ(modelRotation)
* Matrix.CreateTranslation(modelPosition)
effect.View <- Matrix.CreateLookAt(cameraPosition,
focusPoint, 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);
Интересно, есть ли у кого-нибудь какие-либо идеи относительно того, что пошло не так, или какие-либо идеи о том, как их сортировать.
Любые предложения были бы очень признательны.
Благодаря
И, изучая этот образец, сосредоточьтесь на концепциях BlendWeight & BlendIndices, а не на аспект анимации образца. –
ОК, замечательно, я уверен, что это поможет. Все равно имеет смысл! Я хорошо посмотрю и посмотрю, смогу ли я заставить его работать. Большое спасибо за помощь –