计算归一化设备坐标

时间:2018-11-29 17:10:49

标签: java matrix opengl-es

因此,我想在变形后找到该三角形的红色顶点的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

0 个答案:

没有答案