Название: QGLShaderProgram controlShader и evaluationShader Отправлено: Disa от Декабрь 22, 2012, 01:28 Доброй ночи.
Руки потихонечку дотягиваются до тесселяции в OpenGL. Вопрос, как правильно подгружать контрол и евал шейдер? Флагов для QGLShaderProgram я не нашел, видимо нужно что-то типа: Код: glCreateShader(...); В итоге получается немного некрасиво, то есть часть шейдеров загружается так, часть так. В общем буду благодарен за любую помощь. Название: Re: QGLShaderProgram controlShader и evaluationShader Отправлено: Igors от Декабрь 22, 2012, 12:55 Связкой Qt + OpenGL пока не пользовался. Юзал это (толковые исходники)
http://www.opengl.org/sdk/docs/tutorials/ClockworkCoders/downloads/GLSL_Lighting.zip (http://www.opengl.org/sdk/docs/tutorials/ClockworkCoders/downloads/GLSL_Lighting.zip) Просматривая QGLShaderProgram вижу что он делает те же самые обвязки. Смысл простой: шейдера грузятся, компилируются и линкуются один раз (удовольствие дорогое). Для использования (перед рендером) вызывается glUseProgram(id), в конце соответственно glUseProgram(0). (см QGLShaderProgram::bind). После glUseProgram можно передавать переменные. По смыслу флажков QGLShaderProgram иметь не должен и низкоуровневые вызовы gl не нужны Название: Re: QGLShaderProgram controlShader и evaluationShader Отправлено: Disa от Декабрь 23, 2012, 23:48 Спасибо, я раньше не знал, что шейдер можно не делить на файлы. Сейчас буду ковыряться в обертке
Название: Re: QGLShaderProgram controlShader и evaluationShader Отправлено: Igors от Декабрь 24, 2012, 10:11 Спасибо, я раньше не знал, что шейдер можно не делить на файлы. Сейчас буду ковыряться в обертке Пример: есть vertex shader + fragment shader. Обычно их исходники - это 2 разных файла. Однако оба загружаются в один QGLShaderProgram, компилируются и линкуются. Получается одна "боевая единица" с общими переменными для обоих исходных Название: Re: QGLShaderProgram controlShader и evaluationShader Отправлено: Disa от Декабрь 25, 2012, 21:00 Понял, спасибо!)
|