Форум

BGE и Deferred Shading

26 февраля 2016 19:26
Всем привет.
Захотелось написать Deferred Shading через шейдер постобработки, но в blender нет "прохода" нормалей. Вот такого
Есть только
bgl_RenderedTexture - полный рендеринг в текстуру
bgl_DepthTexture - z-pass в тектсуру
bgl_LuminanceTexture - яркость (ч\б)

Хотелось бы добавить ещё рендеринг в текстуру нормалей и теней (буферные тени в BGE учитывают альфа-каналы материалов)
Но разобраться в исходниках как устроен рендеринг OpenGL в blender у меня пока не получилось.
Вопрос к знающим. Возможно ли добавить рендеринг в текстуру нормалей и теней без больших изменений? Не переписывая алгоритм рендерига заново.

Есть ещё одна проблема. В 2Д фильтрах вроде нельзя брать значения переменных из game property объекта. (вроде, у меня не получалось). Координаты источников света относительно камеры удобно брать из game property.
Спасибо.
29 февраля 2016 12:16
Привет! И добро пожаловать на форум!
Взглянул на код. Формирование "проходов" производится в функции "RAS_2DFilterManager::RenderFilters(RAS_ICanvas* canvas)". Но похоже они не являются полноценными проходами. Здесь просто результат одного прохода записывается в текстуры, которые потом можно использовать в шейдере постпроцессинга. Надо выйти вверх по стэку вызовов и смотреть, где производится дроуколл. И делать отдельный дроуколл с шейдером, который рендерит только нормали.
Мне кажется, что лучше всего спрашивать такие специфичные вопросы, не касающиеся blend4web непосредственно, в чате блендера (#bgecoders, #blendercoders), или писать в мэйллист (Bf-gamedev, Bf-commiters). Там люди более осведомленные и заинтересованные в BGE.
Александр (команда Blend4Web)
twitter
 
Пожалуйста, зарегистрируйтесь или войдите под своей учетной записью , чтобы оставлять сообщения.