我正在尝试使用 Golang OpenGL bindings 分割一个简单的三角形
库没有声称支持曲面分割着色器,但我查看了源代码,添加正确的绑定(bind)似乎并不十分棘手。所以我branched it并尝试了 adding gl_defs.go 中的正确常量.
绑定(bind)仍然编译得很好,我的程序也是如此,当我真正尝试使用新的绑定(bind)时,事情变得很奇怪。每当我实际尝试包含曲面分割着色器时,程序就会从显示漂亮的圆形三角形变成黑屏。
我正在关注 OpenGL Superbible(第 6 版)并在这个项目中使用他们的着色器,所以我不认为我正在使用损坏的着色器(无论如何他们不会吐出错误日志)。但如果着色器本身可能有问题,可以在 setupProgram()
函数中找到它们 here .
我很确定我的显卡支持曲面分割,因为打印 openGL 版本会返回 4.4.0 NVIDIA 331.38
。
所以我的问题:
是否有任何理由为曲面分割添加 go 绑定(bind)不起作用?绑定(bind)看起来非常简单。 我是否错误地添加了新绑定(bind)?
如果它应该有效,为什么它对我不起作用? 我在这里做错了什么?
最佳答案
可能值得采取的步骤:
- 您的驱动程序和视频卡可能支持曲面分割着色器,但您的绑定(bind)为您返回的 GL 上下文可能适用于早期版本的 OpenGL。试试
glGetString (GL_VERSION )
看看你得到了什么。 - 您是否基本上在所有地方调用
glGetError
并实际检查它的值?此绑定(bind)是否提供错误返回值?如果是这样,你会检查那些吗?
关于opengl - Go-GL 中的曲面分割,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21218290/