понедельник, 24 ноября 2008 г.

Принцип модульной конструкции роботов

Все роботы в игре будут состоять из следующих частей: 

  • Корпус 
  • Двигательный модуль 
  • Шасси 
  • Навесное оборудование

Некоторых частей естественно может и не быть или наоборот прицеплено несколько. Всё это будет зависеть от их типа и класса робота.

Художник Grizo (aka Snake) сделал рисунок, объясняющий принцип сборки роботов из составных частей.

Рендер: 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) о том, как реализован деферред рендер в Сталкере. Много интересной и полезной информации которой я сразу и воспользовался :)

Привожу скрины с текущего билда движка. В сцене действует один направленый источник (белый) и один точечный (красный). 




понедельник, 17 ноября 2008 г.

Рендер: Deferred shading

Да, я делаю именно это :) 
Я переписываю рендер на деферед шейдинг. Решение такое было принято отнюдь не из-за желания следовать модным тенденциям, а сугубо суровой необходимостью. 
Эта технология я считаю даст большую производительность рендеру, чем если бы я продолжал писать на форварде. 
Итак, почему же именно деферед?

  1. В игре будет унифицированная модель освещения (Фонг) 
  2. В кадре будет приличное кол-во DIP-ов 
  3. Много точечных (и не очень) источников света 
  4. В кадре отсутствуют полупрозрачные объекты aka стёкла 
  5. Будут пост-эффекты типа SSAO которым всё равно нужны нормали )

Ну и так, без пункта ещё добавлю, что мороки с дефередом гораздо меньше чем с форвардом: не надо делать списки освещаемых этой лампочкой объектов, нет кучи разных шейдеров... 
И лампочки новые добавлять - одно удовольствие :)