Архив за Сентябрь, 2007

Оптимизация интерактивности

25.09.2007 Антон Волков

Хочу поделиться подходом к оптимизации интерактивности 3D-объектов. Когда-то, ещё во второй версии 3D-движка, мы использовали стандартные MouseEvent для получения мышиных событий на 3D-объектах. Однако, проэкспериментировав с 1-2 тысячами граней, когда каждая является слушателем событий, мы убедились в несовершенности и перегруженности стандартного механизма рассылки мышиных событий. FPS при перемещении мышью над объектами падал с 100 до 50.

Смириться с этим мы не могли, поэтому решили делать собственную систему 3D-событий. Суть её сводится к тому, что все полигоны являются обычными Shape (что, кстати, опять же даёт некоторый прирост производительности), а на камере есть хит-область. При получении мышиного события на этой области мы математически анализируем, какие полигоны входят в этот сектор (см. пример карты границ). Далее, анализируя геометрию, находим ближайший полигон и далее по формуле плоскости ищем пересечение луча из точки мыши до выбранного полигона. В итоге получаем честные 3D-координаты мыши. При этом производительность не пострадала ни на FPS.

Динамические тени

22.09.2007 Антон Волков

Автоматический UV-маппинг продолжает приносить плоды. Органично внедрились теневые текстурные объекты, рисующие соответствующее затемнение от объектов в текстуре.

Помимо этого реализована mipmap-коррекция — при удалении камеры от объекта снижается качество текстур, что позволяет избежать муара и экономит память.

Динамические тени

  • Пробел — старт-стоп анимации
  • Enter — изменить объект
  • Колёсико (ИЛИ кнопки “Вверх-вниз”, для юзеров макинтоша) — изменить масштаб
  • Ctrl + Колёсико (или кнопки “Влево-вправо”) — качество текстуры
  • L — статическое освещение/динамическое освещение
  • Q — вкл/выкл интерполяцию текстуры

Английская версия блога

18.09.2007 Антон Волков

Наконец-то товарищ Карпович завершил перевод блога на английский язык. В связи с отсутствием профессионального переводчика в штате возможны ошибки, но на смысл, я думаю, это не повлияет.

Английская версия будет только частично копировать русскую.

Будем благодарны за распространение ссылки: http://blog.alternativaplatform.com/en/
Очень интересно будет узнать мнение англоязычных пользователей о проекте.

Редактор 3D-объектов

10.09.2007 Иван Зыков

Для создания простых 3d-объектов не нужно создавать сложного редактора, и поэтому не нужны сотни модификаторов и интерфейсных элементов. В идеале можно обойтись 3-4 инструментами. Сформулировал необходимые требования, текстурирование не учел, это отдельная тема. Если вы видели какие-то удобные фишки в других редакторах, скажите.

Читать полностью »

Эскизы, эскизы

04.09.2007 Иван Зыков

Меж тем идет строительство демо-сцены города. Поможет отработать многие вещи, связанные с логикой и юзабилити.
Демо-сцена города