我无法让模型的方向正确。在这个项目中,用户加载了 3 个 DXF 文件。
- DXF 1 是由 3dfaces 表示的模型。
- DXF 2 是 3dpoly,表示相机在左侧行驶的路径。
- DXF 3 是为迎面而来的交通提供路径的 3dpoly。
前两个数据集在 C#/XNA 开发中得到了正确处理。用户可以使用上下键盘键沿道路行驶。但我在第三个过程中失败了。我无法正确获取迎面而来的车辆的方向。位置还可以,每100米就有一辆面包车,但是方向不对。
最奇怪的是,将模型转换到正确位置和方向的正常方法是使模型位于相机顶部!我哪里做错了?我已经在以下 URL 上提供了源代码,因此您可以查看代码并了解我哪里出错了(zip 包含用于测试的 DXF 文件):
http://www.4shared.com/zip/Lk3xmCtO
在此先感谢..凯文。
这是最不正确的部分:
Matrix worldMatrix = Matrix.CreateTranslation(VanPos[vi]);
Matrix[] transforms = new Matrix[Van.Bones.Count];
Van.CopyAbsoluteBoneTransformsTo(transforms);
foreach (ModelMesh modmesh in Van.Meshes)
{
foreach (BasicEffect be1 in modmesh.Effects)
{
be1.World = transforms[modmesh.ParentBone.Index] * worldMatrix;
这导致模型被放置在相机位置。仅使用 CreateTranslation 将模型放置在正确的位置,但方向不正确。