opengl - Go-GL 中的曲面分割

标签 opengl go tesselation

我正在尝试使用 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)?

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

最佳答案

可能值得采取的步骤:

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

关于opengl - Go-GL 中的曲面分割,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21218290/

相关文章:

c - 使用不同颜色的三角形镶嵌球体

rendering - 如何镶嵌贝塞尔三角形?

c++ - SDL2主要报价系统(openGL)

c++ - OpenGL gl*Pointer 函数有什么作用

OpenGL 3.3 两个 GPU 上具有阴影贴图的 nVidia Optimus 上的两种不同结果

go - 如何 "bridge"writer 和 reader in go

web-services - 简单的申请人列表webapp

opengl - 如何使用GLSL在现代OpenGL中渲染文本

go - Golang 中的 HTTP 重定向

c++ - glPolygonMode 未以正确模式呈现