gpt4 book ai didi

c# - XNA 4.0。 *.fbx 模型的动态变化尺寸

转载 作者:行者123 更新时间:2023-11-30 17:43:09 24 4
gpt4 key购买 nike

这个会很长:

我正在为改变 XNA 4.0 中 *.fbx 模型的尺寸而苦苦挣扎。假设我创建了一个简单的原始立方体。它具有坐标易于提取的边界框。以下是图片中可见的一些示例尺寸:

BoudningBox

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

some model

为了更好地缩放它们的图片(为了更好的可见性,我改变了颜色):

enter image description here

我想要实现的是将那个交叉的东西放在蓝色的 bindingBox 中,所以它看起来像这样:

enter image description here

请注意我没有旋转交叉!我更改了它在三个轴中的每一个的尺寸(当然每个轴的调整大小比例不同)。

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

编辑

我注意到我可以在 xna 中改变模型的比例,就像这个例子:enter image description here

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

enter image description here

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

最佳答案

答案可能比进入内容管理器更简单。我尝试实现此目的的第一种方法是从一个交叉模型开始,该模型的顶点经过烘焙以使其宽 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)

关于c# - XNA 4.0。 *.fbx 模型的动态变化尺寸,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31332784/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com