Архив блога: Ноябрь 2008
Автор: Олег Антипов
Рендер: Deferred shading
Да, я делаю именно это :)
Я переписываю рендер на деферед шейдинг. Решение такое было принято отнюдь не из-за желания следовать модным тенденциям, а сугубо суровой необходимостью.
Эта технология я считаю даст большую производительность рендеру, чем если бы я продолжал писать на форварде.
Итак, почему же именно деферед?
1) В игре будет унифицированная модель освещения (Фонг)
2) В кадре будет приличное кол-во DIP-ов
3) Много точечных (и не очень) источников света
4) В кадре отсутствуют полупрозрачные объекты aka стёкла
5) Будут пост-эффекты типа SSAO которым всё равно нужны нормали )
Ну и так, без пункта ещё добавлю, что мороки с дефередом гораздо меньше чем с форвардом: не надо делать списки освещаемых этой лампочкой объектов, нет кучи разных шейдеров...
И лампочки новые добавлять - одно удовольствие :)
Рендер: deferred освещение
Начал делать освещение на деферред. Сделал пока освещение от направленных и точечных источников. Освещение естественно полностью bump-specular. При написании шейдера ГБуфера появилась идея использовать дополнительные карты нормалей для повреждённых деталей и увеличение контрасности бампа (normalFromMap.z/=damage_factor;) соразмерно величине этих повреждений. Вообщем идея интересная и вроде не особо сложная в реализации... покрайней мере пока так кажется :)
Ещё хочу сказать спасибо тов. Zeux за лекцию R.E.N.D.E.R. (http://www.gamedev.ru/community/gamedev_lecture/articles/r_e_n_de_r) о том, как реализован деферред рендер в Сталкере. Много интересной и полезной информации которой я сразу и воспользовался :)
Привожу скрины с текущего билда движка. В сцене действует один направленый источник (белый) и один точечный (красный).