gpt4 book ai didi

android - 使用 glMultMatrixf 进行翻译,以及何时规范化

转载 作者:行者123 更新时间:2023-11-29 22:07:58 24 4
gpt4 key购买 nike

所以我可以更好地理解事情,我试图避免调用 gl 转换函数(glTranslatef/glRotatef 等),而是创建我自己的矩阵并使用 glMultMatrixf()。

我为 x/y/z 旋转创建的矩阵似乎完美无缺,但我的平移矩阵似乎将我的网格的所有顶点折叠成一个轴。

我是否认为传递矩阵是错误的:

    { 1.0f,0.0f,0.0f,x
0.0f,1.0f,0.0f,y,
0.0f,0.0f,1.0f,z,
0.0f,0.0f,0.0f,1.0f };

glMultMatrixf 与 glTranslatef(x,y,z) 是一样的吗? (我是专栏专业。为了确保我没有完全倒退,我转置了上面的矩阵,但它仍然不起作用。只是似乎将所有内容都压平到不同的轴上。)

我是否在某处遗漏了规范化步骤?什么时候标准化矩阵是个好主意。

提前感谢大家给我一些知识!

这些是我的旋转矩阵:X轴

{ 1.0f, 0.0f, 0.0f, 0.0f,
0.0f, (float) Math.cos(x), (float) -Math.sin(x), 0.0f,
0.0f, (float) Math.sin(x), (float) Math.cos(x), 0.0f,
0.0f, 0.0f, 0.0f, 1.0f };

Y轴

{ (float) Math.cos(y),0.0f,(float) Math.sin(y),0.0f,
0.0f,1.0f,0.0f,0.0f,
(float) -Math.sin(y),0.0f,(float) Math.cos(y),0.0f,
0.0f,0.0f,0.0f,1.0f };

Z轴

 { (float) Math.cos(z),(float) -Math.sin(z),0,0,
(float) Math.sin(z),(float) Math.cos(z),0,0,
0.0f,0.0f,1.0f,0.0f,
0.0f,0.0f,0.0f,1.0f };

最佳答案

这看起来对我来说是换位的。元素顺序应该是:

   0   4   8   12
1 5 9 13
2 6 10 14
3 7 11 15

但是元素 3 中有 x,它应该是元素 12(y 和 z 相同)。

===编辑===

抱歉刚刚注意到你已经说过你调换了它。但是x肯定在12号元素里面,只是给你确认一下。我不认为你必须对矩阵做任何额外的事情才能让它工作。

关于android - 使用 glMultMatrixf 进行翻译,以及何时规范化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10337829/

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