Использование в OpenGL как программируемых, так и фиксированных функций конвейера - PullRequest
4 голосов
/ 22 ноября 2010

У меня есть вершинный шейдер, который трансформирует вершины для создания эффекта «рыбий глаз». Можно просто использовать вершинный шейдер и использовать фиксированный конвейер для фрагмента фрагмента.

Так что в основном у меня есть приложение, которое не использует шейдеры. Я хочу применить эффект «рыбий глаз», используя вершинный шейдер, чтобы преобразовать все вершины, а затем предоставить его приложению для освещения, текстурирования и т. Д.

Если это невозможно, возможно ли получить эффект «рыбий глаз», связавшись с содержимым обратного буфера gl?

Спасибо

Ответы [ 2 ]

3 голосов
/ 22 ноября 2010

Если ваш код имеет фиксированную функцию, то то, что вы описали, является проблемой - вот почему ваш графический код в шейдерах хорош: они позволяют вам легко что-либо менять.Не забудьте использовать их в вашем следующем проекте.:)

ОК, но для этого я предполагаю, что вы не хотите сейчас переписывать весь рендеринг с нуля в шейдеры ...

Вы упомянули, что хотите иметь "рыбий глаз"эффект».Похоже, вам повезло, потому что я верю, что вам не нужны шейдеры для этого эффекта !Если мы говорим об одном и том же эффекте, то вы можете достичь его, просто заменив матрицу GL_PROJECTION из фиксированной функции OpenGL на перспективную матрицу с более широким углом обзора.

1 голос
/ 22 ноября 2010

Да, это возможно, хотя некоторые карты (особенно ATI) не поддерживают использование вершинного шейдера без фрагментного шейдера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...