2

我正在尝试使用Golang OpenGL 绑定来细分一个简单的三角形

该库没有声称支持镶嵌着色器,但我查看了源代码,添加正确的绑定似乎并不十分棘手。所以我将它分支并尝试在gl_defs.go中添加正确的常量。

绑定仍然编译得很好,我的程序也是如此,当我真正尝试使用新绑定时,事情变得奇怪了。每当我实际尝试包含镶嵌着色器时,该程序就会从显示一个漂亮的圆形三角形变为黑屏。

我正在关注 OpenGL Superbible(第 6 版)并在这个项目中使用他们的着色器,所以我不认为我正在使用损坏的着色器(无论如何,它们不会吐出错误日志)。但如果着色器本身有问题,可以在此处setupProgram()的函数中找到它们。

我很确定我的显卡支持曲面细分,因为打印 openGL 版本会返回4.4.0 NVIDIA 331.38 .

所以我的问题:

是否有任何理由为细分添加 go 绑定不起作用?绑定看起来很简单。我是否错误地添加了新绑定?

如果它应该工作,为什么它不适合我?我在这里做错了什么?

4

1 回答 1

1

可能值得采取的步骤:

  1. 您的驱动程序和视频卡可能支持曲面细分着色器,但您的绑定为您返回的 GL 上下文可能适用于早期版本的 OpenGL。试试看glGetString​(GL_VERSION​)你会得到什么。
  2. glGetError基本上是在到处打电话并实际检查它的值吗?此绑定是否提供错误返回值?如果是这样,你检查那些?
于 2014-01-23T20:30:56.997 回答