-1
我有一个顶点数组定义带有以下XYZW方坐标:如何翻译顶点坐标
-0.5, 0.0, 0.0, 0.0,
-0.5, -1.0, 0.0, 0.0,
0.5, -1.0, 0.0, 0.0,
0.5, 0.0, 0.0, 0.0
我想这两个单位转换到右侧,这样所产生的排列成为
1.5, 0.0, 0.0, 0.0,
1.5, -1.0, 0.0, 0.0,
2.5, -1.0, 0.0, 0.0,
2.5, 0.0, 0.0, 0.0,
我知道我可以通过简单地将一个添加到x坐标来实现这一点,但我试图使用矩阵来做到这一点。我阅读了很多关于这个主题的教程和文章,但是我找不到任何确切的例子。我想用OpenGL ES和Java(android)来做到这一点。我也想在将阵列发送到GPU之前应用它。我尝试使用Matrix.translateM,multiplyMM没有成功。
顶点数组并不是一个矩阵,而是一个向量列表。你需要对每个矢量单独做矩阵运算。这页可能有助于https://en.wikipedia.org/wiki/Translation_(几何) –
@Craig我知道它不是一个矩阵,但它被视为一个。只要看看Matrix.multiplyM签名。它接受两个浮点数组作为被视为矩阵的参数。 https://developer.android.com/reference/android/opengl/Matrix.html#multiplyMM(float [],int,float [],int,float [],int) –
不是。它是放入4x4矩阵中的4个任意向量。如果是三角形呢? 3x4的?怎么样一个复杂的角色模型有1000个顶点。你不能用一个矩阵乘法来转换它们。 –