Тесселяция в Go-GL
Я пытаюсь создать простой треугольник, используя привязки Golang OpenGL
Библиотека не претендует на поддержку шейдеров тесселяции, но я просмотрел исходный код, и добавление правильных привязок не показалось мне хитрым. Поэтому я его разветвил и попытался добавить правильные константы в gl_defs.go.
Привязки по-прежнему прекрасно компилируются, как и моя программа, и когда я действительно пытаюсь использовать новые привязки, дела идут странно. Программа переходит от отображения красиво кружащего треугольника к черному экрану всякий раз, когда я на самом деле пытаюсь включить шейдеры тесселяции.
Я следую вместе с OpenGL Superbible (6-е издание) и использую их шейдеры для этого проекта, поэтому я не представляю, что использую сломанные шейдеры (в любом случае они не выдают журнал ошибок). Но если сами шейдеры могут ошибаться, их можно найти в setupProgram()
функционировать здесь.
Я уверен, что моя видеокарта поддерживает тесселяцию, потому что печать версии openGL возвращается 4.4.0 NVIDIA 331.38
,
Итак, мои вопросы:
Есть ли причина, по которой добавление привязок го для тесселяции не сработает? Привязки кажутся довольно простыми. Я неправильно добавляю новые привязки?
Если это должно работать, почему это не работает для меня? Что я здесь не так делаю?
1 ответ
Шаги, которые стоит предпринять:
- Ваш драйвер и видеокарта могут поддерживать шейдеры тесселяции, но контекст GL, который вам возвращает привязка, может относиться к более ранней версии OpenGL. Пытаться
glGetString(GL_VERSION)
и посмотрим, что вы получите. - Ты звонишь
glGetError
в основном везде и собственно проверяет его значения? Обеспечивает ли эта привязка возвращаемые значения ошибок? Если так, вы проверяете это?