小编jaz*_*awg的帖子

使用glVertexAttribPointer和glDrawElements从打包的顶点缓冲区中进行绘制

我有一个打包的顶点缓冲区,包含位置坐标以及格式为{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)

java shader android opengl-es-2.0

3
推荐指数
1
解决办法
4686
查看次数

标签 统计

android ×1

java ×1

opengl-es-2.0 ×1

shader ×1