Промежуточные итоги и промежуточные проблемы

Июнь 2, 2009

Вот и прошли полтора месяца со для запуска проекта.  Даже чуть больше.  За это время мы успели немало, но и не успели тоже существенно. Однако, надеемся, создали приличный задел на будущее. Чего же мы добились за это время?

Во-первых, у нас вышла первая сборка движка. Памятное и знаковое событие. Очень много фпс и никаких ошибок. Далее пришла очередь build №2, но натолкнувшись на проблемы с «occlusion culling», мы добавили к цифровой нумерации сборки только 0.5. Итак, у нас есть 1.5 билд, который умеет не сбоить, показывать статистику, отображать/не отображать текстуры, показывать mesh. Кроме того, реализованна работа с мышью и клавиатурой,  появились шейдеры. Пока это normal и glow. Нельзя забывать и о сглаживании с mipmapping. У нас есть два типа источников света (ambient и directional), корректно взаимодействующих с нашими тестовыми полигонами. Итого:

  1. стабильная работа
  2. управление камерой (мышь и клавиатура)
  3. сглаживание и маштабирование текстур
  4. начальные шейдерные технологии
  5. освещение
  6. технология skybox
  7. проигрывание видеоряда

Это то основное, что у нас уже имеется. Сюда можно было бы добавить начальный пользовательский интерфейс и синхронизацию звуко/видеоряда, но всё это в достаточно начальной стадии, и войдет в следующие билды. На сегодня мы вплотную озабоченны падением производительности связанным с  отрисовкой полигонов в области камеры. «Оcclusion culling», а вернее его реализация, очень тормозит нас и вынуждает прикладывать дополнительные усилия. Это одна из причин того, что мы отклонились от плана выпускать 2 сбоки в месяц. В данном календарном периоде мы должны и обязанны исправиться.

А теперь «во-вторых». За прошедшее время нам удалось провести тесты приемлимости для нас того или иного 3д контента. То есть говоря простым языком, мы обкатывали экспорт 3д моделей и их обработку движком. Основной аспект который нами принимался во внимание, это конечно производительность. Вернее даже соотносимость нужного уровня качества к показателям производительности. Тесты продолжатся, но мы уже выявили нужное направление и стратегию, которые и будем реализовывать в дальнейшем. Кроме того, в разработке находится игровой уровень. До 100% готовности ещё далеко, но существующие наработки (и что важно способ разработки) уже позволяют начинать его 3д-производство.

Что же сегодня и завтра? Мы продолжим стараться выпускать по две сборки движка в месяц. Уже в июне мы надеемся показать первые скриншоты. Да! Не просто скрины тестовых моделей, а полноценные скриншоты той графики, которую можно будет ожидать. Существующие наработки пополнятся звуком, LOD-технологией и реализацией порталов.  И конечно 3д-контент. Это то основное, что мы планируем и твердо намеренны реализовать.


Улучшения

Май 10, 2009

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

placeholder1placeholder2

Вот что вышло сейчас с нормалями.


Свет, камера, action!

Май 6, 2009

Теперь у нас есть nobag решение в области видеопотока. Да, теперь мы запускаем видео через движок. Можно сделать видеоплеер :) Но не нужно. Начальные и финальные заставки уже не проблема – код универсален и отрабатывается шустро. Нам по плечу хоть avi, хоть mov, хоть 3g. И что может быть более впечатляющим, чем видеопоток в любой текстуре? Но и это ещё не все.  Есть возможность добавлять и синхронизировать звукоряд. Управление всем этим тоже наличествует. Осталось только одна махонькая проблема: применять это со вкусом и к месту ;)


Управление v1 готово

Май 6, 2009

Итак, вчера был дописан код для управления камерой при помощи клавиатуры и мыши. На данный момент управление клавиатурой и мышью позволяет камере свободно летать по сцене. FPS не сильно проваливается, так для 1440*900, анимации и активного использования управления частота смены кадров упала с 530 до 480. В принципе, я думаю, управление большего провала не даст, что очень хорошо. Следующий этап – загрузка сцены.


Изменения в коде

Апрель 30, 2009

На данный момент идет подгодтовка скелета для кодовой базы. Т.е. это тот костяк, который будет неизменным в течении всего проекта, ну или хотя бы изменяемым частично.

На данный момент реализована начальная работа с мышью от 1-го лица и частично клавиатура.  Так же вместо mipmapping’a включена анизотропная фильтрация, что дало ускорение обработки текстур. И еще интересная новость – новая версия движка ускорила прорисовку с 390 до 610 кадров в сек.


Дистрибуция с Children Face

Апрель 28, 2009

Нет, ни слова про запрещённый контент! :) Ниже пойдёт речь о превращении исходных кодов в дистрибутив и о визуализации 3d в движке.

Итак, буквально вчера, а ещё точнее вчера поздним вечером, у нас появилась отлаженная скриптовая система построения дистрибутива из исходных кодов проекта. Пока использован тестовый проект «Астероиды». Вот как это смотрится в totalcmd:

a_dist1

И не только смотрится, но ещё и работает. Что естественно самое важное. Правда требуются кое-какие библиотеки от ms, но в дальнейшем, скорее всего, они будут включаться в дистрибутив на уровне файлов dll. Остаётся только инсталлятор – и эта часть работы завершена. Конечно в дальнейшем ко многим вопросам придётся вернуться, но это будут уже частности.

Теперь новости повкуснее: визуализация. Встречаем тестовую текстурированную модель остановочного комплекса визуализированную силами движка (DirectX8)

ostanovka_w

ostanovka_t

Дальше попробуем больше вкусностей в части текстурирования: нормали и т.п. А затем вернемся к производительности уже со всем этим – будет очень интересно.


Построение дистрибутива

Апрель 27, 2009

Уверенно движемся к фундаменту пре-техдемо версии. В эти выходные у нас появилась технология билдостроения. В ночь с субботы на воскресенье около трёх часов ночи первый пробный билд был успешно собран. Впереди «как бы мы хотели это выглядело» и прикручивание инсталяции. Или nsis или что-либо ещё. В любом случае уже наверное в ближайшее время setup скрипт и readme благополучно поступят нашему LP, который в дальнейшем и будет выпускать build’ы проекта. А пока доводка и инсталятор.


Russo lingvo

Апрель 20, 2009

Реализовать поддержку русского языка? Нет ничего проще! Наш движок хоть родом eng, ru научился понимать леко. Немного Python’a – и все получилось.

rus2

Достаточно симпотично и минимум кода.


Продолжаем тестирование

Апрель 16, 2009

Теперь производительность. Смотрим как шустро и быстро может жевать полигоны наш движок. Это ОченьМногоСфер, а точнее 125, текстуреные. Текстура пока самая простая. Данный тест – пробный шар.

многосфер

А это вывод статистики

255 total nodes (including 0 instances); 0 LODNodes.
125 transforms; 49% of nodes have some render attribute.
125 Geoms, with 1 GeomVertexDatas and 1 GeomVertexFormats, appear on 125 GeomNodes.
25440 vertices, 25440 normals, 0 colors, 25440 texture coordinates.
GeomVertexData arrays occupy 795K memory.
GeomPrimitive arrays occupy 75K memory.
1580000 triangles:
0 of these are on 0 tristrips.
1580000 of these are independent triangles.
1 textures, estimated minimum 48K texture memory required.

PS: отключил синхронизацию, 230 фпс.


Тестирование mipmapping’a

Апрель 15, 2009

Добились добавления на модель mipmapping, разумеется после танцев с бубном. Так же и свойства материала меняются, но это надо тестить.


Отчет пошёл!

Апрель 14, 2009

Проект официально стартовал вчера 15.04.09, запомним эту дату :)