Go-GL中的曲面细分

时间:2014-01-19 14:54:47

标签: opengl go tesselation

我正在尝试使用Golang OpenGL bindings

来设计一个简单的三角形

该库并未声明对tesselation着色器的支持,但我查看了源代码,添加正确的绑定似乎并不十分棘手。所以我branched it并在adding中尝试gl_defs.go正确的常量。

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

我正在跟随OpenGL Superbible(第6版)并使用它们的着色器进行此项目,所以我没有想象我正在使用破碎的着色器(他们不会吐出错误日志,无论如何)。但是如果着色器本身可能有问题,可以在setupProgram()函数here中找到它们。

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

所以我的问题:

是否有任何理由添加针对tesselation的绑定不起作用?绑定看起来非常简单。 我是否错误地添加了新绑定?

如果它起作用,为什么它对我不起作用? 我在这里做错了什么?

1 个答案:

答案 0 :(得分:1)

可能值得采取的步骤:

  1. 您的驱动程序和视频卡可能支持曲面细分着色器,但您的绑定为您返回的GL上下文可能适用于早期版本的OpenGL。试试glGetString​(GL_VERSION​),看看你得到了什么。
  2. 您是否基本上在所有地方都在调用glGetError并实际检查其值?此绑定是否提供错误返回值?如果是的话,你在检查那些吗?