这将是漫长的:

我正在努力在XNA 4.0中更改* .fbx模型的尺寸。假设我创建了一个简单的原始多维数据集。它具有边界框,易于提取坐标。以下是图片中可见的一些示例尺寸:



我还有另一个格式为* .fbx的模型。这是示例模型的另一幅图片:



为了更好的缩放它们两个的图片(我更改了颜色以获得更好的可见性):



我想要实现的是将交叉对象放入蓝色的bindingBox中,因此看起来像这样:



请注意,我没有交叉旋转!我更改了三个轴中每个轴的尺寸(当然,每个轴上的缩放比例不同)。

如您所见,我需要更改“十字”的大小,以使其适合装订盒内。我的问题是:我可以在XNA中自由使用* .fbx模型的尺寸进行操作吗?我在互联网上进行了一些研究,但没有发现任何线索来提示fbx模型在加载后或至少在可能的情况下如何更改外观。

编辑

我注意到我可以像以下示例一样在xna中更改模型的比例:

除了简单地拖动其中一个轴(在特定情况下,红色轴代表x轴)外,我还可以在一个轴上更改模型的比例。



现在,当我知道要更新我的问题时:
我可以用代码控制我的内容管理器吗?

最佳答案

答案可能比进入内容管理器要简单。我尝试实现此目标的第一种方法是从一个交叉模型开始,该模型的顶点经过烘焙以使其宽1个单位,高1个单位和深1个单位。然后,可以在代码中将缩放矩阵应用于该矩阵,该矩阵会将其缩放为每个轴上框的多少单位。

为了根据我的想法在图2中制作出原始的十字架,您可以应用这样的缩放矩阵。

Matrix crossWorld = Matrix.CreateScale(6f, 4f, 9f); //now your 1x1x1 cross will render as a 6x4x9 cross (your figure 2) if you apply this to your `Effect.World` matrix

//then, to fit it into your box:
crossWorld = Matrix.CreateScale(10f, 8f, 6f);//now your 1x1x1 cross will render as a 10x8x6 cross and fit perfectly into your box (your figure 1)

10-01 18:35
查看更多