Archives February 2011

WIP

Пофиксил экспортёр – стал немного быстрее + экспортит объекты, состоящие из нескольких отдельных мешей.

Переписываю класс mesh-а. Изначально это был один общий класс. Сейчас сижу – разделаю. Будет общий интерфейс IMesh через который все виды мешей можжно будет одинаково рендерить, апдейтить. Давно пора было сделать. Например мне нужны некоторые методы для работы со скелетной анимацией (со скелетом И с вершинами) ну и т.п. зачем эти методы внутри статичного меша? Не нужны! Так же прикручу процедурные меши, что будет достаточно просто : ) А процедурные мне очень нужны (геометрические шейдеры не спасут).

Загрузил персонажа Miranda из Mass Effect 2 ^____^

где-то баг в загрузке материала о_О Глаза у миранды чёрные, гхм

ах да, убрал ещё добавление ambient освещения из всех типов лайтов. Было не пр
72;вильно сделано – каждый лайт добавлял свою долю ambient! так, добавив 10 лайтов радиусом 1 мм можно было засветить всю сцену о-О. Добавил новый тип источника света – AmbientLight который не нужно добавлять, который рендерится автоматом в зависимости от настроек сцены. Теперь освещение правильное.

0
0

Итоги работы

Так, что же я на этом С++ смог наваять на данный момент:

Графический двиг:

статическая библиоткека, реализовано:

1. система плагинов
2. мультирендер
3. менеджер ресурсов (правда пока всёравно в общем потоке работает Про потоки С++ хочу больше узнать, прежде чем юзать)
4. Виртуальная файловая система – поддержка ZIP архивов, обычных файлов с HDD, свой формат PAK файлов.
5. Скелетная анимация
6. Большой ландшафт. Макисмальный тестированный размер – 8*8 километров (с шагом сетки в 1 метр)
7. Рендеринг с отложенным освещением (не путать с полностью отложенным рендерингом!)
8. рендеринг травы – есть менеджер, занимающийся апдейтом, генерацией и рендерингом травы. Она отделена от основоного алгоритма рендеринга с целью оптимизации в следствие специфичности самой травы. Инфа о траве весит крайне мало. В памяти распаковываются только нужные инстансы травы, рендеринг в несколько DIP-ов идёт с использованием хардварного инстансинга. Мжно бьло бы сделать 1 DIP, но в таком случае Map/Unmap буферов будет каждый кадр.
9. Рендеринг растительности – все растения кроме травы. Свои методы анимации, свои методы отрисовки и шейдинга. Поа не прикрутил импосторы – провожу оптимизацию рендеринга того, что есть.
10. NormalMapping – тяжёлые параллаксы не люблю. Позже сделаю а пока и нормалмаппинга хватит.
11. EnvironmentMapping – накладываемс отражения из кубической карты, которая грузится с файла или же рендерится динамически.
12. ShadowMapping для spot light-ов. Сглаживание пока только PCF с настраиваемым ядром фильтра.
13. PSSM – каскадные тени для аутдора. Также юзаю PCF 4*4 Все тени рисуются в одну общую текстуру.
14. HDR – в нём реализован bloom, адаптация глаза, blue shift
15. Система убер-шейдеров
16. потом допишу, может что забыл )

Тулзы:

1. Экспортёры мешей, треков анимации (При экспорте меша можно точно указать какие данные экспортить а какие нет)
2. Эксплорер PAK файлов – так как формат мой собственный – нечем было просматривать “архивы”. Пришлось написать “эксплорер” для PAK файлов. Написан на C#

Игровой движок:

только начал! Прикрутил физику к сущностям. Всё ))

пока всё : ( Мда, не густо..

0
0