Шейдеры GLSL [ч.2 - Добавление в игру] [upd: ч.2.5 - логирование ошибок]

Шейдеры GLSL [ч.2 - Добавление в игру] [upd: ч.2.5 - логирование ошибок]

1,976
68
221
AlexSocol добавил новый ресурс:

Шейдеры GLSL [ч.2 - Добавление в игру] - Добавляем рендер с шейдерами!

Доброго времени суток! о/

В этой части я расскажу, как добавить в игру созданный в предыдущей части вершинный шейдер. Если вы не читали её и вообще понятия не имеете, что такое шейдер, вам сюда: Шейдеры GLSL [ч.1 - Fragment Shaders]

Узнать больше об этом ресурсе...
 
Последнее редактирование:
Молодец. Но не используй ARB. Есть GL20, он давно вошел в спецификацию. Используй его
 
Ты забыл написать, что включать-выключать один и тот же шейдер для каждого объекта - очень плохо.
 
Опять же, не стану объяснять, как рендерить блок/предмет/моба/ещё что, ибо раз вы взялись за написание шейдеров, "
Для 1.12 я бы не отказался посмотреть на код, который зарендерить блок
 
В статье очень не хватает пункта про логирование ошибок компиляции шейдера.
Ведь случается такое, что у разработчика всё работает, а у конечного пользователя - нет, особенно если не ставить директиву #version (которой, кмк, в прошлой статье не уделили достаточно внимания).
 
Последнее редактирование:
Текст из обновления лучше вставить в сам туториал, а на вкладке обновления просто написать, что добавлен раздел с логированием ошибок.
А то люди могут даже не догадаться туда заглянуть.

Ну и иконка, конечно же :)
 
Ты забыл написать, что включать-выключать один и тот же шейдер для каждого объекта - очень плохо.
Написал хд
Только объясни, как это вообще можно реализовать? т.е. как включать шейдер ДО рендера всех блоков одного типа и выключать ПОСЛЕ?
 
Ну да. Переключение шейдера достаточно дорогая операция.
Хорошие движки умеют сортировать объекты по шейдеру и по стейтам (blend, depth, texture, и т.п.).
 
Ну как бы: bind -> for each i in list draw i -> unbind. Лайтмапа у существ биндится по схожему принципу - 1 бинд, много отрисовок
 
Ясно, что ничерта непонятно, @CoomingSoon
1. Где этот лист брать?
2. Как отменять ванильный рендер этих блоков?
3. Куда совать свой?
 
Перед рендером ВСЕХ блоков( RenderGlobal prepare...) включать. После рендера ВСЕХ блоков (finish) выключать. Как-то так, не пробовал
 
Лайтмапа у существ биндится по схожему принципу - 1 бинд, много отрисовок
Лайтмапа биндится на отдельный TEXTURE_UNIT, который только для этого и используется, так что ничего "подобного" там нет.
Если хочется что-то сортировать по стейту - надо переписывать рендер самостоятельно.
 
Лайтмапа биндится на отдельный TEXTURE_UNIT, который только для этого и используется, так что ничего "подобного" там нет.
Если хочется что-то сортировать по стейту - надо переписывать рендер самостоятельно.
Однако делается это лишь 1 раз, так что пойдёт как пример для понимания
 
Назад
Сверху