我有一个打包的顶点缓冲区,包含位置坐标以及格式为{X,Y,Z,R,G,B,A}的顶点的颜色值.
当我通过取出a_Color属性并硬编码gl_FragColor的vec4值但是我无法将颜色vec4属性传递到片段着色器(矩形)时,我可以使用硬编码颜色正确显示矩形.将不会显示在该场景中).
使用glVertexAttribPointer(...)和glDrawElements(...)从OpenGL ES 2.0中的压缩顶点缓冲区绘制的正确方法是什么?
请参阅下面的代码:
public class GameRenderer implements Renderer {
public static final int POS_SZ = 3;
public static final int COL_SZ = 4;
public static final int FLOAT_SZ = 4;
public static final int SHORT_SZ = 2;
private FloatBuffer gridVB;
private ShortBuffer gridIndices;
int programCode, paPositionHandle, paColorHandle, puMVPMatrixHandle;
private final String vertexShaderCode =
"uniform mat4 u_MVPMatrix; \n" +
"attribute vec4 a_Position; \n" +
"void main(){ \n" +
" gl_Position = u_MVPMatrix * a_Position; \n" +
"} \n"; …Run Code Online (Sandbox Code Playgroud)