Архив за Декабрь, 2007
30.12.2007 Антон Волков
Несмотря на приближающиеся праздники и чёткую установку Карповича “забыть о работе и отдохнуть”, не смог выкинуть из головы идею сделать быструю отрисовку рельефа не просто при определённом угле падения света, а от точечного источника. Задача осложняется тем, что из точечного источника свет исходит во всех направлениях, а не в одном, как в случае направленного. Не считать же освещение для каждого пикселя в отдельности?! Появилась идея модифицировать карту нормалей, как бы “выпучивая” её в том месте, где находится источник света. Основная засада в том, что попиксельно её рассчитать вроде бы не сложно, но это будет совершенно непотребно по скорости. Пришлось придумать (действуя наполовину методом тыка) способ модификации, который бы делался пакетно стандартными фильтрами и методами наложения Flash.
Применимость этой техники в движке безусловно есть, т.к. мы делаем ставку на однократные расчёты освещения с последующим прижиганием — т.е. свет как бы рисуется на поверхности поверх текстуры. Ну а с выходом Hydra в Flash Player 10 можно будет перенести эти расчёты на шейдеры со всеми вытекающими.

Размер: 1.6Мб
Управление:
- Мышь — перемещение источника света
- Клик — изменение цвета освещения
- Колёсико или +/- — изменить бликовость материала
- Ctrl + колёсико или +/- — изменить размер светового пятна
- Пробел — следующая текстура
Надеюсь, что меня наконец-то отпустит и это будет последний пост в этом году :)
С наступающим Новым годом!
Опубликовано в Flash, 3D | Комментарии (19) »
27.12.2007 Квиринг Алексей
Закончили систему сбора и просмотра логов. Проблема анализа логов была очень актуальной, так как у нас несколько типов серверов — игровой, ресурсный, генератор.Тем более на этапе тестирования сообщения от клиентов также потребуют обработки.
Архитектура
Сервер логгирования основан на OSGI платформе. Получение логов по RMI с использованием авторизации JAAS (для Log4j был написан appender). Сохранение логов с помощью Hibernate в базу данных PostgreSQL. Для просмотра логов были написаны плагины к Eclipse. Основные возможности — фильтрация логов по различным критериям и сохранение произвольного количества фильтров для последующего изучения.

Опубликовано в Сервер | Комментарии (12) »
27.12.2007 Антон Волков
Если кроме карты нормалей использовать карту высот, то можно добиться так называемого параллакс-эффекта, когда текстура изменяется в зависимости от угла зрения. Не думаю, что эту технику стоит внедрять в 3D-движок по крайней мере до выхода Flash Player 10. Там появится возможность писать скрипты-обработчики текстур на продвигаемом Adobe языке Hydra, которые, как обещают, в дальнейшем будут использовать аппаратное ускорение. Что-то наподобие пиксельных шейдеров.

Размер: 1Мб
Управление:
- Мышь — перемещение
- Клик — изменение цвета освещения
- Колёсико или +/- — изменить бликовость материала
- Пробел — следующая текстура
Опубликовано в Flash, 3D | Комментарии (9) »
26.12.2007 Владимир Бабушкин
Карты нормалей можно использовать для освещения спрайтовых объектов внутри игры. Их, конечно, придётся рендерить или рисовать руками, но эффект стоит того.

Управление:
- Мышь — перемещение источника света
- Колёсико или стрелки вверх/вниз — изменить бликовость материала
Опубликовано в Flash, 3D | Комментарии (9) »
26.12.2007 Антон Волков
Разобрался с построением рельефного освещения при помощи карт нормалей. Суть метода в том, что, используя специально сформированное изображение, можно передать движку информацию об изменении кривизны поверхности. При этом геометрия поверхности не детализируется (например, сбоку эти искажения видно не будет), но специальные механизмы дают возможность сымитировать рельеф.
Пока система в 3D-движок не внедрена, т.к. ещё идёт работа над текстурированием, но уже можно потестировать качество/скорость отрисовки.

Размер: 1.6Мб
Управление:
- Мышь — перемещение источника света
- Клик — изменение цвета освещения
- Колёсико — изменить бликовость материала
- Пробел — следующая текстура
Опубликовано в Flash, 3D | Комментарии (8) »
19.12.2007 Антон Волков
Завершён один из самых сложных этапов в разработке движка 5.0 — динамическое перестроение BSP-дерева. Напомню, что BSP позволяет нам хранить все соответствия “кто за кем” между полигонами. Благодаря этому мы смогли сколь угодно сложно рассекать объекты, и при этом получать отличную производительность при сортировке (при изменениях камеры или объектов на сцене).
Для сравнения мы взяли модель с ландшафтом и домиком из демки движка 3.0.

Управление:
- Стрелки — перемещение
- Таскать мышью — смотреть вокруг
- Колёсико или +/- — изменить перспективу
- Пробел — вкл/выкл анимацию
- Enter — изменить BSP-приоритет
- Q — изменить качество
- B — визуализация BSP-дерева
Опубликовано в Flash, 3D | Комментарии (27) »
14.12.2007 Квиринг Алексей
Закончена большая часть работы по интеграции: готовы редакторы 3D мира, пользователи бегают и общаются, участки мира догружаются и выгружаются, сделана система воздействия на предметы.
Дальнейшая интеграция будет после разработки 3D-движка 5.0.
Полноразмерные скриншоты:

Опубликовано в Интерфейс, Flash, 3D, Сервер | Комментарии (37) »
06.12.2007 Иван Зыков
Секретный и малопонятный скриншот действа:

Опубликовано в Процесс | Комментарии (5) »
05.12.2007 Антон Волков
Для тех, кто не хочет вникать в технические тонкости, сообщаю, что работа над 3D-движком 5.0 двигается нормально. Не так быстро как хотелось бы, т.к. нам пришлось полностью переосмыслить архитектуру. Однако теперь уже видно, что это было сделано не зря. Многие участки ещё требуют серьёзной доработки и оптимизации, но уже можно оценить:

Управление:
- Стрелки — перемещение
- Таскать мышью — смотреть вокруг
- Колёсико — изменить перспективу
На данный момент сделано:
- система сигналов (теперь в случае простоя процессор вообще не нагружен),
- перспективная коррекция (изометрия тоже осталась, не потеряв оптимизации),
- мульти-камерность (можно смотреть на сцену с разных ракурсов одновременно),
- корректная обрезка невидимых граней,
- BSP-сортировка (сколь угодно сложные пересечённые формы теперь сортируются очень быстро).
Опубликовано в Flash, 3D | Комментарии (5) »
|
|