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

我正在尝试学习现代 OpenGL 并想画一个这样的三角形:

http://img4.mukewang.com/60f54a400001798e10290791.jpg

我正在关注本教程: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 进行调试,但到目前为止它没有显示任何错误。


慕桂英4014372
浏览 264回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go