Итак, я хотел найти координаты NDC красной вершины этого треугольника после того, как он был преобразован.Я использую его в качестве прототипа, чтобы понять, как добавлять и позиционировать столбцы здоровья в разрабатываемой мной игре (есть ли другой метод?).
Координаты не рассчитываются правильно (онинесколько близки к тому, чтобы быть правильными и идут по тому же пути, но они не верны).Я не могу понять, почему.
float[] modelMatrix = new float[16];
float[] modelViewMatrix = new float[16];
float[] modelViewProjectionMatrix = new float[16];
// Position/rotate the triangle and draw it.
Matrix.setIdentityM(modelMatrix, 0);
Matrix.rotateM(modelMatrix, 0, angleInDegrees, 0.0f, 1.0f, 1.0f);
Matrix.translateM(modelMatrix, 0, -0.3f, 0.3f, 0.0f);
multiplyMM(modelViewMatrix, 0, mViewMatrix, 0, modelMatrix, 0);
multiplyMM(modelViewProjectionMatrix, 0, mProjectionMatrix, 0, modelViewMatrix, 0);
glUniformMatrix4fv(mMVPMatrixHandle, 1, false, modelViewProjectionMatrix, 0);
glDrawArrays(GL_TRIANGLES, 0, 3);
// The vertex data defined for the red vertex
float[] redVertex = { triangleVertexData[0], triangleVertexData[1],
triangleVertexData[2], 1.0f };
float[] ndcCoordinates = new float[4];
multiplyMV(ndcCoordinates, 0, modelViewProjectionMatrix, 0, redVertex, 0);
Данные вершины треугольника определены как (удалены данные цвета для этого поста для упрощения):
final float[] triangleVertexData = {
-0.5f, -0.25f, 0.0f, // Red vertex
0.5f, -0.25f, 0.0f, // Blue vertex
0.0f, 0.5f, 0.0f // Green vertex
};
'ndcCoodinates' являютсяне совсем верно.Есть предложения? ![The application](https://i.stack.imgur.com/xBboN.jpg)