2
我在OSX上使用LWJGL 3。着色器在使用<版本時工作正常,但將代碼移植到330無法呈現。LWJGL 3着色器版本150和以上不渲染
我的着色器是儘可能簡單:
頂點着色器:
#version 330 core
in vec3 position;
void main(void) {
gl_Position = vec4(position, 1.0);
}
片段着色器:
#version 330 core
out vec4 outColour;
void main(void) {
outColour = vec4(1.0, 0.0, 0.0, 1.0);
}
我創建一個簡單的三角形這樣的(斯卡拉) :
val vertices = Array(
0.0f, 0.5f, 0.0f,
-0.5f, -0.5f, 0.0f,
0.5f, -0.5f, 0.0f
)
val vertexBuffer = BufferUtils.createFloatBuffer(vertices.length)
vertexBuffer.put(vertices)
vertexBuffer.flip()
val buffer = GL15.glGenBuffers()
GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, buffer)
GL15.glBufferData(GL15.GL_ARRAY_BUFFER, vertexBuffer, GL15.GL_STATIC_DRAW)
,我得出這樣的:
GL20.glUseProgram(shader)
GL20.glEnableVertexAttribArray(0)
GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, buffer)
GL20.glBindAttribLocation(shader, 0, "position")
GL20.glVertexAttribPointer(0, 3, GL11.GL_FLOAT, false, 0, 0)
GL11.glDrawArrays(GL11.GL_TRIANGLES, 0, 9)
GL20.glDisableVertexAttribArray(0)
GL20.glUseProgram(0)
着色器編譯罰款和程序運行,但我只是得到了一個空白頁面!我的代碼有什麼明顯的錯誤嗎?
你的VAO在哪裏?這些在Core環境中是必需的。 – genpfault
@ j-p:使用glDrawArrays進行繪製時不涉及索引。只有glDrawElements系列使用索引。 – BDL
爲什麼要投票?請解釋,以便我可以改進問題 – Oli