Java LWJGL-未渲染四边形
我已经试着让这段代码工作了一段时间,但我仍然不知道我做错了什么。(LWJGL-Java) 我曾尝试在网上查看其他人的代码,但我找不到任何主要区别。事实上,我学会了用C++来使用OpenGL,所以我的思维可能会被卡在它上面,这可能就是我找不到错误的原因 这里是init(调用一次) 下面是渲染函数: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
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;
}