вторник, 21 декабря 2010 г.

Решил узнать какого качества игру можно сделать на quad. Для того, чтобы не замахиваться на что-то огромное, было решено накидать пакмана. Да не простого — а золотого!

Идея:
Классический пакман, но в темноте. Пакман — солнышко, которое подзаряжается точечками и светит ярче. Солнышко освещает всё вокруг, но свет не проходит сквозь стены.

Реализация:
Сложности реализации дали о себе знать с первых минут разработки. Если с полом всё понятно — там normalmapping, то со светом всё сложнее на порядок. Как делался свет. Итак, для затенения мы накладываем через умножение (multiply) карту освещенности. В карту освещенности должны попасть светящиеся точки (они слегка мерцают), небольшая область в пару пикселей вокруг точек (эффект свечения) и, собственно, свет от солнышка. Свет от солнышка заслуживает отдельной большой статьи. Обмолвлюсь лишь, что рендеринг в данном случае 17-ти проходный. Да, да! Однако результат превосходит ожидания. Свет не проходит сквозь препятствия, угасает с дальностью и более того — рассеивается с дальностью.

После окончания разработки света было решено оформить его дополнительным модулем и поставлять с движком, чтобы не было у простых смертных проблем с реализацией подобного эффекта. Чик и готово. Чуть больше прогресса покажу позже, пока только один скриншот.

вторник, 14 декабря 2010 г.

Длительное время не писал сюда. Думал что делать с блогом. В итоге решил переименовать и исправить  названия (старое название Joy3D Framework кануло в лету). За это время движок успел заметно подрасти и научиться рисовать довольно хитрые картинки. Обзавелся собственным сайтом http://quad-engine.com и даже парой игр, сделанных с его использованием. Но обо всём по порядку.

Скриншот, прикрепленный к этому посту показывает результат работы шейдеров и quad engine в целом. Результатом является честный raytracing теней от выбранных объектов сцены. Рендеринг многопроходный (сейчас около 17 проходов), но это будет оптимизироваться. На машинах с видеокартами класса GeForce7600 дает около 210fps. Мило?