OpenGL 顶点缓冲区无法在 Go 中显示三角形
尝试复制在 Go 中使用 OpenGL 创建简单三角形的教程,有人在让顶点缓冲区显示形状时遇到了困难。当窗口打开并且背景变成蓝色时,三角形仍然不可见。
提供的代码片段涉及创建顶点缓冲区,然后使用 glDrawArrays 绘制三角形。然而,在代码的 c 版本中,AttribPointer 函数采用参数 (void*)0 来指定数组缓冲区偏移量,而在 Go 版本中,提供的偏移量参数会导致应用程序崩溃,而 nil 则不会。
更新的解决方案涉及使用 banthar 绑定的工作分支并更改对 AttribPointer 和 BufferData 的调用,如下所示:
<code class="go">vertexAttrib.AttribPointer( 3, // size gl.FLOAT, //type false, // normalized? 0, // stride nil) // array buffer offset data := []float32{0, 1, 0, -1, -1, 0, 1, -1, 0} [...] gl.BufferData(gl.ARRAY_BUFFER, len(data)*4, data, gl.STATIC_DRAW)</code>
通过将字节大小传递给BufferData并在AttribPointer中将数组缓冲区偏移设置为nil,问题解决,三角形成功显示。
以上是为什么我的 Go OpenGL 三角形仍然不可见?的详细内容。更多信息请关注PHP中文网其他相关文章!