Шейдеры. Буферы

Версия Minecraft
1.7.10
1,415
44
596
Доброго времени суток.

Работал с www.shadertoy.com, и там я использовал буферы , которые потом непосредственно засовывал в каналы и шла прорисовка. Вопрос таков. Как осуществить весь шейдер с этими буферами теперь кодом для майна? Как наложить без беферов всю эту вещь - изучил, но что делать с каналами, которые являются буферами? В общем, с GL не очень дружу, поэтому прошу вас объяснить чайнику в этой сфере более подробно.

Заранее спасибо.
 
Это просто какая-то их внутренняя система. Просто скопипастить это в майн, естественно, не получится.
Суть здесь в том, что первый шейдер рисует сцену в channel0. Во втором шейдере делается блюр текстуры channel0 в channel1 (в плане производительности - плохой). Третий шейдер склеивает обе текстуры.

Реализация в игре никак не отличается от той, что уже итак объясняли не раз.
1. Рендеришь светящиеся объекты в отдельный фбо. Лучше конечно же использовать multiple rendering targets (MRT) и сразу рисовать в отдельную текстуру. Или можно в конце отрисовки сцены (в постпроцессе) наложить на сцену brightpass shader, выявив яркие участки, но тогда светиться будут и нежелательные участки. Еще можно перед отрисовкой объекта биндить другой фбо и рендерить туда сам объект, но это прям совсем плохо. Вероятно, у этого фбо должен быть тот же буфер глубины, что и у фбо, в который рисуется вся сцена. Сам я так делать не пробовал. В общем, тебе нужно получить текстуру, на которой зарендерены светящиеся объекты.
2. Затем блюришь эту тектуру. Можно взять тот шейдер (второй), но сложность алгоритма там большая. Поэтому это явно место для оптимизаций.
3. Склеиваешь все текстуры.
 
Рендеришь светящиеся объекты в отдельный фбо
Еще можно перед отрисовкой объекта биндить другой фбо и рендерить туда сам объект, но это прям совсем плохо
А как рендрить объект в другое фбо, если другой фбо не забинжен?
 
Я не особо шарю в opengl, и как я знаю, что бы зарендрить в отдельный фбо, надо его создать и забиндить.
Ну естественно заранее создать, а потом использовать.

Без бинда ток multiple rendering targets надо использовать?
Эм. Это использование нескольких калор буферов в фбо. Майн 1.7.10 использует фбо с одной текстурой. Можно прикрутить вторую.
 
Назад
Сверху