我有一个可在高分辨率设备上使用的动态壁纸,特别是在 Galaxy s3 和 nexus 7 上。我已经在也是 720p 设备的 htc one x 上对其进行了测试,但壁纸似乎被放大了。我没有 htc x,所以我无法检查墙纸的屏幕尺寸。墙纸适用于 openGL 2.0,因此它可能是相机 z 值,但为什么它看起来与 nexus 7 或 s3 不同? 有谁知道问题可能是什么?
谢谢!
编辑:这是视图初始化代码:
// Adjust the viewport based on geometry changes,
// such as screen rotation
GLES20.glViewport(0, 0, width, height);
// Create the projection matrix so that it converts the 3000px grid to actual screen dimensions, centered (letterboxed)
Matrix.frustumM(mProjMatrix, 0, -(width / 3000.0f) / 2.0f, (width / 3000.0f) / 2.0f, -(height / 3000.0f) / 2.0f, (height / 3000.0f) / 2.0f, 3, 7);
// Set the camera position (View matrix)
Matrix.setLookAtM(mVMatrix, 0, 0.0f, 0, 3.0f, 0f, 0f, 0f, 0f, 1.0f, 0.0f);
// Calculate the projection and view transformation
Matrix.multiplyMM(mMVPMatrix, 0, mProjMatrix, 0, mVMatrix, 0);
`
我使用 3000x3000 像素的“虚拟”网格来放置元素,然后使用投影矩阵将其信箱。它在 N7 或 S3 上运行良好,但 Z 值在 One X 上看起来不太好。
所有顶点都设置为 Z 为 0。