为了账号安全,请及时绑定邮箱和手机立即绑定

为什么这个 OpenGL 程序不绘制三角形?

为什么这个 OpenGL 程序不绘制三角形?

Go
慕桂英4014372 2021-07-09 22:07:18
我正在尝试学习现代 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 进行调试,但到目前为止它没有显示任何错误。
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 262 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信