我在plunkr中的GL中有一个立方体,如下所示:
我想从枢轴缩放,旋转和平移立方体。 希望能像https://www.youtube.com/watch?v=sZeBm8EM3mw&feature=youtu.be
那样制作动画片对于这种转变,我将使用:
gl-matrix。幸运的是,这种转换在mat4.fromRotationTranslationScale()
问题是我有一段时间只使用这种方法吗?没有错误,只是默认实现从屏幕上删除了多维数据集。
mat4.fromRotationTranslationScale(
matrix,
quat.create(),
vec3.create(),
vec3.create()
);
(静态)
fromRotationTranslationScale(out, q, v, s) → {mat4}
根据四元数旋转,矢量平移和矢量比例创建矩阵。
Parameters:
Name Type Description
out mat4 mat4 receiving operation result
q quat4 Rotation quaternion
v vec3 Translation vector
s vec3 Scaling vector
我错误地使用fromRotationTranslationScale
了吗?如果是这样,我哪里出错了。如果没有,怎么能得到某种反馈。
我对数学很弱,但我觉得我可以在你的帮助下进行逆向工程和学习;)。
答案 0 :(得分:0)
我猜你的问题是比例矢量。实际上,我认为默认向量值为0.0
,0.0
,0.0
,如果将此缩放参数放入转换中,则对象会消失,因为它的大小为{{1} } ...和,0太小而不可见:)
传递给这种功能的好的理想价值如下:
0.0
这对应于单位矩阵:
// X Y Z W
Quaternion = 0.0, 0.0, 0.0, 1.0
Translation = 0.0, 0.0, 0.0
Scale = 1.0, 1.0, 1.0
您可以注意 1.0 0.0 0.0 0.0
0.0 1.0 0.0 0.0
0.0 0.0 1.0 0.0
0.0 0.0 0.0 1.0
的对角线,如果您将比例值设置为1.0
此对角线由0.0
填充,则此矩阵转换所有矢量(例如顶点位置)在所有轴上乘以0.0
,在任何地方都会0.0
。