Расчет нормализованных координат устройства - PullRequest
0 голосов
/ 29 ноября 2018

Итак, я хотел найти координаты 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...