我试图在OpenGL2.0中将纹理绘制到四边形上.到目前为止,我得到了四边形和一切,但纹理不存在 - 四边形都是黑色的.
我的主要怀疑是我没有正确地映射纹理 - 我的纹理不是2的幂,它们也不是正方形 - 它们的宽度在字段mWidth中,它们的高度在mRowHeight中.
四边形绘制在垂直列表中,使用转换矩阵完成.
如果有人能够解决这个问题我会非常绝望,我将非常感激!
这是相关的代码:
初始化缓冲区:
void initBuffers() {
float r = (float) mRowHeight / (mHeight / 2f);
ByteBuffer bb;
float[] bounds = { // X Y Z
/* 0 - TL */-1f, 1f, 0f,
/* 1 - BL */-1f, 1 - r, 0f,
/* 2 - BR */ 1f, 1 - r, 0f,
/* 3 - TR */ 1f, 1f, 0f };
bb = ByteBuffer.allocateDirect(bounds.length * 4);
bb.order(ByteOrder.nativeOrder());
mVertBuffer = bb.asFloatBuffer();
mVertBuffer.put(bounds).position(0); …Run Code Online (Sandbox Code Playgroud)