пятница, 31 декабря 2010 г.

Новый год же!111

Это какбэ последняя запись в блоге в этом году ) Сейчас надо вырубать компьютер, идти пить и веселиться, к чёрту ЗОЖ!! : ))

Всём, кто прочитает - успешной реализации и комериализации всех ваших проектов, крепкого здоровья и настроя на новые победы в новом году.

С Новым Годом, "мои невероятные друзья"(с) xD! Ура!!

четверг, 30 декабря 2010 г.

Добавил тени и скиннинг.

Теперь в движке тени кастятся от лайтов. На кадр максимум 4 источника света могут отбрасывать тень.

На скринах ниже та хрень прпосреди сцены, она заскинена и движется в динамике, хоть на статичном скрине этого и не видно. Потом человечка поставлю


четверг, 23 декабря 2010 г.

GOD DAMN YOU, MAX SCRIPT!!!! SHIT!!!

Сцуко, нахрен разработчиков 3DS MAX в биореакторы, блеать!!!111одинодин

Весь день угрохал на скелетную анимацию. НЕ РАБОТАЛА И ВСЁ! И не понятно в чём дело! Ведь я прекрасно знаю как делать скелетку! О_О <-- это какраз больше всего и бесит!

И, хвала великому Ктулху, я СДЕЛАЛ ЭТО : D В чём фишка была - ? Неет, вот нихрена, не я на этот раз накосячил!

Экспортёр у меня написан на MAXscript-е.

Вначале была такая логика работы: прохожусь по всем объектам сцены, если класс объекта == "кость" то в массив костей добавляем, если объект - проверяем, есть ли у него скиннинг. Если есть скиннинг, то этот объект экспортим (ну там ещё куча проверок и т.п.)

всё это в таком цикле:

for obj in objects do
{
БЛА БЛА БЛА
}

всё работало отлично на шарпе.

А вот когда начал портировать на С++, я какбы всё оптимизирую, в том числе и экспортёры. Переписал с нуля и собсно привнёс новую логику работы:

for obj in selection do
{
БЛА БЛА БЛА
}

тоесть экспортить так можно будет ВЫДЕЛЕННЫЙ объект и ВЫДЕЛЕННЫЕ кости, это удобно ведь!

Вот и всё, в ЭТОМ и проблема! for obj in selection do - в таком цикле ПОЧЕМУТО совершенно другие индекы у костей! В следствие чего и иерархия костей экспортится КРИВАЯ, из за чего и в движке жепЪ.

Почему так? - х.з. Я специально в цикле for obj in objects do вывел все объекты сцены и не был удивлён - вывелись все и только те, которые я выбирал при экспорте. Тоесть в количестве объектов внутри objects и selection разницы нет ни какой. Тогда ПОЧЕМУ индексы у костей в selection не верные? Для меня лично загадка.

Ффф, вынос мозга.

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

Новые скрины

Пилю освещение дальше. Сделал спот-лайты и много чего ещё.

Крайний апдейт:
добавил проективные текстуры спотлайтам.






а тут ВИДНО споты : )

понедельник, 20 декабря 2010 г.

Освещение.

Ух, провозился с ним 2 дня! Однако результ ат доставляет : ) Внизу скрин, на котором 48 лайтов. Рендерится вся сцена с 800+ FPS. Ни когда ранее в одном кадре не делал столько лайтов : ) На скрине комната на полу которой лайты, хоть этого и не видно (комнаты). Демка с лайтами, диффузом и т.п. будет в течение 3 дней.




update:

доделал финальный пасс. Там есть диффуз : )



апдейт: сделал блики + normalMapping




воскресенье, 19 декабря 2010 г.

Light pre-pass renderer

Какбэ начал прикручивать Light pre-pass renderer : ) Офигенная штука и главное избавлена от сурового ИМХО недостатка DS - проблемы с количеством материалов + невозможность юзать MSAA.

Как обычно - смотреть неначто! Но запостю : )


следующая будет демка. По-интереснее : )

среда, 15 декабря 2010 г.

Update

[+] Добавлен инпут джойстика, мыши, клавы
[+] Добавлены 100500 врапперов всевозможных ресурсов GAPI
[+] Добавил класс "сцена" и менеджер сцен (так как сцен может у меня рендериться несколько одновременно)
[+] Собсно наконец-то сделал базовый рендер и отрисовал чёртов кубик : )
[+] Добавил сценеграф, материалы, лайты, тесты видимости

Вот он, мой первый ацкий кубик на С++

суббота, 11 декабря 2010 г.

Экспортёр

Переделываю экспортёр для 3DS MAX8. Теперь он у меня экспортит не только меши со скелеткой : ) Можно экспортировать любую нужную инфу, всё работает бысро и правильно. Пофиксил баги с миррором в TBN и множество других старых недочётов. Всё вроде как путём. Завтра (ух ё, уже сегодня) если будет время таки доделаю рендеринг моделей, наконец скрины выложу (да хоть для себя самого : ))