模型在 XNA 中无法正确显示,忽略了一些骨骼变形回复引用编辑我对 3D 建模非常陌生,但是我需要为我承担的项目做一些事情。
基本原则是我需要一个可以变形为用户测量值的人体模型(使用 Kinect 测量,但那是另一回事了!)。例如,我想为较大的用户拉伸腹部区域等。
使用 3Ds Max,我已经能够使用 Biped 装配人体模型,然后添加一些额外的骨骼来改变胃部:
这一切看起来都很好,但是当我将它加载到 XNA 中时,胃部变形消失了——
对于为什么会发生这种情况,我有些茫然,任何建议都将受到欢迎,或者任何有关如何完成此类事情的教程的链接。
此外,当我在 QuickTime 的 FBX 查看器插件中查看导出的 FBX 时,变形显示得非常好。
显示模型的代码(它的 F# 代码,转换形式的 ac# 示例,但是我已经使用原始 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);
想知道是否有人对出了什么问题有任何想法,或者对如何解决这个问题有任何想法。
任何建议将不胜感激。
谢谢