以下代码使用opengl-ES在Android studio上使用JNI绘制两个不同的多维数据集(红色/绿色)。在虚拟设备上,结果是正确的。但是,在真实设备上,结果看起来很奇怪。 结构(表示3d模型及其在2d上的视图)是正确的。但颜色与AVD不同。此外,它看起来深度测试不起作用。问题是什么?
简单来说, AVD:给出正确的结果(红色,绿色立方体,深度测试特定相机姿势) 真实设备:给出奇怪的结果(相同的相机姿势到AVD。但颜色不同。有两个绿色立方体。还有深度测试不工作)
float color1[] = {1.0f, 0.0f, 0.0f};
float color2[] = {0.0f, 1.0f, 0.0f};
int mColorHandle1;
int mColorHandle2;
glViewport(0,1280,720,1280);
glEnable(GL_DEPTH_TEST);
glUniform4f(mColorHandle1, color1[0], color1[1], color1[2], 1.0f);
glVertexAttribPointer(gvPositionHandle, 3, GL_FLOAT, GL_FALSE, 0, gTriangleVertices1);
glEnableVertexAttribArray(gvPositionHandle);
glDrawArrays(GL_TRIANGLES, 0, 36);
glUniform4f(mColorHandle2, color2[0], color2[1], color2[2], 1.0f);
glDrawArrays(GL_TRIANGLES, 36, 36);
glDisableVertexAttribArray(gvPositionHandle);
glDisable(GL_DEPTH_TEST);