XNA 4.0。 *.fbx 模型的动态变化尺寸
XNA 4.0. Dynamic changing dimensions of *.fbx model
这个会很长:
我正在努力改变 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)
这个会很长:
我正在努力改变 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)