在COLLADA.dae文件中,我需要哪些信息来缩放opengl的三维模型?
对象的顶点和法线都作为浮动存储在COLLADA文件中,我可以从google sketchup导出。我希望获得信息,告诉我浮子的每个单位是多少,以米为单位,但似乎找不到它。我看到我在下面包含的COLLADA文件中有一个矩阵,根据文件中的顶点值范围和绘制模型的sketchup应用程序中使用的测量值,1.968504值看起来可疑,但它似乎是一种翻译,因为显然Colld使用行主格式,所以1.968504是x翻译。我还注意到xml中有一个名为unit的元素,它可能是相关的,但我不知道该使用什么:/ 理想情况下,我需要知道每个维度中一个仪表与一个浮点数单位之间的常数,我需要缩放所有值,如果我理解了文件中需要的信息,我可能会想出如何做:/ 这是矩阵xml元素:在COLLADA.dae文件中,我需要哪些信息来缩放opengl的三维模型?,opengl,scale,vertices,Opengl,Scale,Vertices,对象的顶点和法线都作为浮动存储在COLLADA文件中,我可以从google sketchup导出。我希望获得信息,告诉我浮子的每个单位是多少,以米为单位,但似乎找不到它。我看到我在下面包含的COLLADA文件中有一个矩阵,根据文件中的顶点值范围和绘制模型的sketchup应用程序中使用的测量值,1.968504值看起来可疑,但它似乎是一种翻译,因为显然Colld使用行主格式,所以1.968504是x翻译。我还注意到xml中有一个名为unit的元素,它可能是相关的,但我不知道该使用什么:/ 理想情
<node id="ID2" name="instance_0">
<matrix>1 0 0 1.968504 0 1 0 0 0 0 1 0 0 0 0 1</matrix>
<instance_node url="#ID3" />
</node>
<unit meter="0.0254" name="inch" />
1 0 0 1.968504 0 1 0 0 0 0 1 0 0 0 0 1
这是单位xml元素:
<node id="ID2" name="instance_0">
<matrix>1 0 0 1.968504 0 1 0 0 0 0 1 0 0 0 0 1</matrix>
<instance_node url="#ID3" />
</node>
<unit meter="0.0254" name="inch" />
这16个数字是一个4x4矩阵,它结合了有关平移、旋转和缩放的信息。如果
m
如果是矩阵,则比例向量为,使用GLM作为表示法:
glm::vec3 scale=glm::vec3(glm::length(glm::vec3(m[0][0],m[0][1],m[0][2])),
glm::length(glm::vec3(m[1][0],m[1][1],m[1][2]),
glm::length(glm::vec3(m[2][0],m[2][1],m[2][2]);
这是一个三分量向量,因为每个轴的缩放可能不同 我希望缩放对象,使其适合opengl使用的-1到1范围,并存储告诉我浮动与实际尺寸(以米为单位)相关的常数的信息