Russian Qt Forum
Ноябрь 22, 2024, 01:04 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Компоновка шейдеров  (Прочитано 2734 раз)
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« : Июль 07, 2020, 13:36 »

Добрый день

Жил-был набор шейдеров (пары вертексеый + фрагментный). Некоторые фиксированы (т.е. грузятся один раз из файла/ресурсов на старте), но большинство создается "на лету", т.е. генерируются исходники и новый шейдер компилится. Собсно каждый хотя бы "копнувший" OpenGL создает такую/подобную байду, практически шейдерная архитектура OpenGL к этому вынуждает.

И вот потребовалось перейти на core profile 3.3. Долго я упирался, пытался отсидеться с compatibility profile - ведь, казалось бы, более новые фичи доступны через extensions. Ни фига, переползать пришлось. Как и следовало ожидать, посыпалось немало. Одна из первых проблем - не работает GL_QUADS, т.е. просто так, задав эту константу в glDrawElements, рисовать квадранглы я уже не могу.

В связи с этим в мутной среде железячников бытует мнение
Цитировать
Должны быть только треугольники
Все-таки как счастливы люди которые могут себе позволить такое решение вопроса! Для меня, однако, все по-другому
Цитировать
- Папа, тебе урезали  зарплату, значит ты будешь меньше пить?
- Нет, сынок, это ты будешь меньше кушать
Погуглив я выяснил что теперь (начиная с 3.3) для рисования квадранглов нужен геометрический шейдер, неск строк, конвертирует GL_LINES_ADJACENCY в GL_TRIANGLES_STRIP

Да, но как "увязать" этот новый шейдер с оравой уже имеющихся? Просто так добавить его везде я не могу, т.к. кроме квадранглов есть и др примитивы. Универсального геметического (для любых примитивов) увы, не существует. И при использовании геометрического я должен менять и фрагментный, теперь сидящий на выходе геометрического.

Собсно тема/вопрос чисто "архитектурный", технические детали OpenGL лишь "фон" и насколько хорошо Вы их знаете - несущественно, достаточно понимать о чем речь. Поэтому прошу не стесняться и высказываться.

Спасибо
« Последнее редактирование: Июль 07, 2020, 13:38 от Igors » Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.045 секунд. Запросов: 22.