Java LWJGL-未渲染四边形

Java LWJGL-未渲染四边形,java,opengl,shader,render,lwjgl,Java,Opengl,Shader,Render,Lwjgl,我已经试着让这段代码工作了一段时间,但我仍然不知道我做错了什么。(LWJGL-Java) 我曾尝试在网上查看其他人的代码,但我找不到任何主要区别。事实上,我学会了用C++来使用OpenGL,所以我的思维可能会被卡在它上面,这可能就是我找不到错误的原因 这里是init(调用一次) 下面是渲染函数: shaderProgram.bind(); GL30.glBindVertexArray(VAO); GL11.glDrawElements(GL11.GL_TRIANGLES, 6, GL11.G

我已经试着让这段代码工作了一段时间,但我仍然不知道我做错了什么。(LWJGL-Java)

我曾尝试在网上查看其他人的代码,但我找不到任何主要区别。事实上,我学会了用C++来使用OpenGL,所以我的思维可能会被卡在它上面,这可能就是我找不到错误的原因

这里是init(调用一次)

下面是渲染函数:

shaderProgram.bind();

GL30.glBindVertexArray(VAO);

GL11.glDrawElements(GL11.GL_TRIANGLES, 6, GL11.GL_BYTE, 0);

GL30.glBindVertexArray(0);

glBindBuffer(GL_ARRAY_BUFFER, 0);
着色器:

顶点:

#version 330 core

layout(location = 0) in vec2 position;
layout(location = 1) in vec3 color;

out vec4 Color;

void main()
{
    gl_Position = vec4(position, 0.0, 1.0);
    Color = vec4(color, 1.0);
}
Framgent:

#version 330 core

in vec4 Color;

out vec4 color;

void main()
{
    color = Color;
}
在中,
Float.SIZE
定义为:

用于表示浮点值的位数


由于
glvertexattributepointer()
需要以字节为单位的跨距和偏移量参数,因此必须将其除以8,然后使用
(Float.SIZE/8)

似乎没有任何作用。调试非常困难,因为我无法访问属性
#version 330 core

in vec4 Color;

out vec4 color;

void main()
{
    color = Color;
}