我正在尝试学习现代 OpenGL 并想画一个这样的三角形:
我正在关注本教程:www.opengl-tutorial.org/beginners-tutorials/tutorial-2-the-first-triangle/,但我得到的只是深蓝色背景(清晰的颜色)。这段代码可能有什么问题?
我正在用 Go 编写它并尝试在 Ubuntu 和 OS X 上运行它。 注意:我使用的是 glfw 3 库而不是教程中使用的 glfw 2.7。
我认为相关部分是:
func setup() {
gl.ClearColor(0.0, 0.0, 0.4, 0.0)
makeProgram(vertexShaderSource,fragmentShaderSource)
vertexBufferData := []float32{
-1,-1,0,
1,-1,0,
0, 1,0,
}
vertexBuffer = gl.GenBuffer()
vertexBuffer.Bind(gl.ARRAY_BUFFER)
gl.BufferData(gl.ARRAY_BUFFER, len(vertexBufferData)*4, vertexBufferData, gl.STATIC_DRAW)
}
func draw() {
gl.Clear(gl.COLOR_BUFFER_BIT)
program.Use()
// first attribute buffer: vertices
var vertexAttrib = program.GetAttribLocation("vertexPosition_modelspace")
vertexAttrib.EnableArray()
vertexBuffer.Bind(gl.ARRAY_BUFFER)
var f float32 = 0.0
vertexAttrib.AttribPointer(
3, // size
gl.FLOAT, // type
false, // normalized
0, // stride
&f) // array buffer offset
// draw the triangle
gl.DrawArrays(gl.TRIANGLES, 0, 3)
vertexAttrib.DisableArray()
}
完整代码链接:https : //gist.github.com/mbertschler/8672365
我已经尝试在 OSX 上使用 OpenGL Profiler 进行调试,但到目前为止它没有显示任何错误。
相关分类