пятница, 23 июля 2010 г.
Анимация и события.
Сегодня,правда в сыром пока ещё виде, сделал привязку скриптов/собьтий к любому времени трека анимации (не только к ключевым кадрам но и ммежду ними ессно). Теперь с помощью этой фишки я озвучил шаги игрвого персонажа в точное время анимации а не тупо "проигрывание зацикленного трека ходьбы" что ИМХО УГ ещё то. Класс. Можно привязать к событиям что угодно, хоть скрипт порабощения мира и на каждом шагу own it : D
четверг, 22 июля 2010 г.
Багфиксы.
пятница, 9 июля 2010 г.
GUI. Продолжение.
Вот наконецто защитил диплом и имею больше свободного времени на движок.
Пофиксил несколько оставшихся мемориликов, пофиксил подчистку всего мусора после выгрузки движка (в видеопамяти некоторые объекты оставались : \ ) И решил пройтись сначала по движку и привести всё в подобающий вид. Начал с GUI. Множества контролов пока ещё не хватает но больше всего не радовало отсутствие нормальной поддержки скинов для GUI. Вот, посидело немножко, переписал дофига в GUI (по красивше) и сделал поддержку скинов. Правда нужен ещё редактор скинов так как вручную я риальне запарился считать пиксели : D
Вот тут окошко, чекбокс и кнопка. Всё отскинено. Окно под Win7 сделал xDD Только нету кнопок закрытия, сворачивания и т.п. Осталось допилить RadioButton и написать всяческие списки. А так всё шоколадно.
Пофиксил несколько оставшихся мемориликов, пофиксил подчистку всего мусора после выгрузки движка (в видеопамяти некоторые объекты оставались : \ ) И решил пройтись сначала по движку и привести всё в подобающий вид. Начал с GUI. Множества контролов пока ещё не хватает но больше всего не радовало отсутствие нормальной поддержки скинов для GUI. Вот, посидело немножко, переписал дофига в GUI (по красивше) и сделал поддержку скинов. Правда нужен ещё редактор скинов так как вручную я риальне запарился считать пиксели : D
Вот тут окошко, чекбокс и кнопка. Всё отскинено. Окно под Win7 сделал xDD Только нету кнопок закрытия, сворачивания и т.п. Осталось допилить RadioButton и написать всяческие списки. А так всё шоколадно.
суббота, 26 июня 2010 г.
Обновление PSSM
четверг, 24 июня 2010 г.
12 часов ада
2.5 дня писал PSSM. Из них последний мне ещё надолго запомнится...
Надоже! 12... ДВЕНАДЦАТЬ часов подряд ебался с багом в PSSM - неверно считалась глубина! Упорно решил добить сегодня и не отвлекаться ни на что. Какбэ дело принципа - "сделаю и точка". Ну собсно и сделал.
[цитата моего сообщения в аське]
Действительно полезно отвлекаться от проблемы : ))
Пил чай в стеклянном станкане. чота поставил напротив другого станана. В голову пришла мысль об альфаблендинге...БИНГО! альфаблендинг был включен и глубины ТУПО СМЕШИВАЛИСЬ : D вырубил перед отрисовкой карты глубины альфу и вуаля, тени работают! ГЕНИАЛЬНО БЛЯ : D
Надо же. Такая глупая фишка и столько мозга вые*ано было! А сколько бутербродов съедено а сколько пепси выпито...ууууууу. Но тем не менее меня как всегда ждала заслуженная награда - чёткие классные тени ^^

Тут PCF 2x2. Можно будет 3x3 сделать попозже.
Скрин да, ни о чём : )))) Даже выключена фильтрация текстур внизу на террайне и объектов нету. И пох! Главное что естьо пруф существования PSSM ^^ : P
Надоже! 12... ДВЕНАДЦАТЬ часов подряд ебался с багом в PSSM - неверно считалась глубина! Упорно решил добить сегодня и не отвлекаться ни на что. Какбэ дело принципа - "сделаю и точка". Ну собсно и сделал.
[цитата моего сообщения в аське]
Действительно полезно отвлекаться от проблемы : ))
Пил чай в стеклянном станкане. чота поставил напротив другого станана. В голову пришла мысль об альфаблендинге...БИНГО! альфаблендинг был включен и глубины ТУПО СМЕШИВАЛИСЬ : D вырубил перед отрисовкой карты глубины альфу и вуаля, тени работают! ГЕНИАЛЬНО БЛЯ : D
Надо же. Такая глупая фишка и столько мозга вые*ано было! А сколько бутербродов съедено а сколько пепси выпито...ууууууу. Но тем не менее меня как всегда ждала заслуженная награда - чёткие классные тени ^^
Тут PCF 2x2. Можно будет 3x3 сделать попозже.
Скрин да, ни о чём : )))) Даже выключена фильтрация текстур внизу на террайне и объектов нету. И пох! Главное что естьо пруф существования PSSM ^^ : P
суббота, 5 июня 2010 г.
Восстанавливаю систему растений - часть 2: да придёт трава
Сделал BVH для куллинга растительности. Полёт нормальный : )
Однако угнетает тот факт, что растительность хавает слишком много оперативной памяти : ( Всё из за того, что самих растений на ландшафте - десятки миллионов!! Я храню позицию кадого растения - 16 байт. Вот и выходит астрономической прожорливости травка : (
Вот несколько скринов. Они WIP. Тут к траве не применяются тени, не применяется цвет ландшафта.
Просто так выложил : )
Травко:

Или травку или меня или меня травкой проглючило и она начала летать:

Трам пам пам

Сверху трава не выглядит Унылым Говном : )

продолжение следует...
Однако угнетает тот факт, что растительность хавает слишком много оперативной памяти : ( Всё из за того, что самих растений на ландшафте - десятки миллионов!! Я храню позицию кадого растения - 16 байт. Вот и выходит астрономической прожорливости травка : (
Вот несколько скринов. Они WIP. Тут к траве не применяются тени, не применяется цвет ландшафта.
Просто так выложил : )
Травко:

Или травку или меня или меня травкой проглючило и она начала летать:

Трам пам пам

Сверху трава не выглядит Унылым Говном : )

продолжение следует...
пятница, 7 мая 2010 г.
Восстанавливаю систему растений - часть I

Вот.. решил поднять растительность (долгое время всё было закомментено)
Первый скрин первого испытания. На скрине массив деревьев расставлен по ландшафту, отрисован хардварным инстансингом. А также игрок. Почему красный? ээм, на нём просто дефолтная текстура "NoTex.dds" ибо текстуру я ему не назначил (както влом). И в руках у него автомат - прицеплен к костям.
А, кстати,да, кости...
Engine updates:
[+] Добавил иерархию трансформаций объектов. Теперь можно объекты друг к другу цеплять (например зщаписку к двери)
[+] Добавил привязку объектов к костям скелета меша. Теперь вот челу на скрине дал в руки оружие : ) Всё работает шоколадно.
[?] Начал делать поддержку скриптов в треках анимации. Тоесть можно будет какому либо кадру анимации или событию назначать скрипт : )
воскресенье, 25 апреля 2010 г.
В задницу этот ODE...
Сколько этта гадина (ODE) мне крови попила... жесть. Сколько бессонных ночей ушло на настройку ODE!! И всё впустую... ODE ну уже черезчур бажный! То предметы застревают друг в друге, то проваливаются, то система взрывается. Эти баги вылазят везде - где можно и не можнО! Большая часть разработки движка уходить ТОЛЬКО на настройку параметров ODE! Последней каплей было то, когда я сделал физику ландшафта! Оооо... это цирк натуральный! Люди, передвигаясь по ландшафту, вечно в нём застревали, после чего выпрыгивали очень высоко! : D Но было не очень смешно т.к. в моменты застревания в ландшафте двиг..ээ..да чё там двиг.. вся система ложилась нафиг! Секунд 10 были стабильные 3 ФПС а потом всё возвращалось в норму до следующего раза! Нее, нафиг такое счастье!!!!
Порывшись в инете, нашёл несколько физдвигов. PhysX не понравился изза "мутной" политики NVIDIA в отношении него. Есть ощущение, что его скоро сделают платным. Та и дрова таскать с собо не охота.
Посмотрел на Newton physics engine - помоему тоже самое что и ODE, однако сразу насторожило то, что гравитацию нельзя выставить! нужно применять её самому о_О. Бред какойто. Та и функционал вместе с качеством симуляции оставляют желать лучшего... фтопку!
И вот.. наконецто я нашёл Bullet! Вот он, ИМХО лучший бесплатный физдвиг! Порадовало наличие SoftBody физики : ) Движок на первый взгляд сделан качественно. Много "фишек", легко добавляются свои типы физических объекто в и алгоритмы столкновений! Качественная симуляция, присутствуес CCD(!).
Решил юзать его. Однако появилась небольшая проблема - нету враппера для Bullet! O_O Долго я искал врапперы, пробовал разные - одно фуфло. И тут случайно я забрёл сюда: http://code.google.com/p/bulletsharp/ Здесь Andres Traks пишет свой враппер под названием "BulletSharp"! Враппер написан на C++\CLI, тоесть ни каких лишних библиотек : ) Подключаем 1 библиотеку,будто она написана на C# и вперёд! : D Враппер ещё на альфа версии, однако большинство "жизненноважных" фич уже сделано : ) Активность у проекта очень высокая, апдейты выходят каждый день, автор адекватный и всегда быстро реагирует на просьбы и замечания по врапперу. Всё путём ; )
Теперь юзаю Bullet и ни капли не жалею о том, что больше не юзаю ODE.
Прогресс движка:
[+] Сделан базовый KinematicController игрока! Не стоит думать, что я только для игрока, которым играет человек, сделал физику : ) В моём движке ннапример человек-NPC также является игроком - построен на классе CPlayer.
[*] пофиксил баги с физикой, пофиксил текстурирование ландшафта, пофиксил контроллер камеры! Теперь камера работает мегоидеально! : ) Контроллер позволяет с лёгкостью переключаться между First-person и Third-person типами управления, позволяет настраивать максимальные углы поворота камеры, скорость, плавность, всяческие эффекты (трясение при взрыве например).
[+] Добавил реестр классов сущностей. Зачем нужны классы - расскажу вкратце: представим что у нас в игровм уровне находятся 2 бота! Это люди. Один человек является снайпером а второй обычным воякой с АК-47 например. Это один и тотже игровой класс CPlaye, однако модель поведения и некоторые специфичные параметры у них разные. ЧТо теперь? Делать для каждого вида игрока свой класс? Бред!: D Мой реестр классов инициализируется ил LUA скрипта. Тоесть чтобы создать новый класс сущности, мы должны создать его описание в LUA скрипте EntityRegistry.lua Он является базой данных классов сущностей. ри запуске движка база данных сущностей из скрипта грузится в реестр классов. После этого мы можем спокойно создавать инстансы любого класса одной лишь строкой!
ну к примеру ПСЕВДОКОД:
Entity player = Factory.BuildEntity(Registry.GetClass("Player"));
Всё! Мы создали игрока одной строкой : ) При чём у него уже настроено поведение(AI) и некоторые параметры. Удобно в общем : D
*ушёл прогать дальше*
Порывшись в инете, нашёл несколько физдвигов. PhysX не понравился изза "мутной" политики NVIDIA в отношении него. Есть ощущение, что его скоро сделают платным. Та и дрова таскать с собо не охота.
Посмотрел на Newton physics engine - помоему тоже самое что и ODE, однако сразу насторожило то, что гравитацию нельзя выставить! нужно применять её самому о_О. Бред какойто. Та и функционал вместе с качеством симуляции оставляют желать лучшего... фтопку!
И вот.. наконецто я нашёл Bullet! Вот он, ИМХО лучший бесплатный физдвиг! Порадовало наличие SoftBody физики : ) Движок на первый взгляд сделан качественно. Много "фишек", легко добавляются свои типы физических объекто в и алгоритмы столкновений! Качественная симуляция, присутствуес CCD(!).
Решил юзать его. Однако появилась небольшая проблема - нету враппера для Bullet! O_O Долго я искал врапперы, пробовал разные - одно фуфло. И тут случайно я забрёл сюда: http://code.google.com/p/bulletsharp/ Здесь Andres Traks пишет свой враппер под названием "BulletSharp"! Враппер написан на C++\CLI, тоесть ни каких лишних библиотек : ) Подключаем 1 библиотеку,будто она написана на C# и вперёд! : D Враппер ещё на альфа версии, однако большинство "жизненноважных" фич уже сделано : ) Активность у проекта очень высокая, апдейты выходят каждый день, автор адекватный и всегда быстро реагирует на просьбы и замечания по врапперу. Всё путём ; )
Теперь юзаю Bullet и ни капли не жалею о том, что больше не юзаю ODE.
Прогресс движка:
[+] Сделан базовый KinematicController игрока! Не стоит думать, что я только для игрока, которым играет человек, сделал физику : ) В моём движке ннапример человек-NPC также является игроком - построен на классе CPlayer.
[*] пофиксил баги с физикой, пофиксил текстурирование ландшафта, пофиксил контроллер камеры! Теперь камера работает мегоидеально! : ) Контроллер позволяет с лёгкостью переключаться между First-person и Third-person типами управления, позволяет настраивать максимальные углы поворота камеры, скорость, плавность, всяческие эффекты (трясение при взрыве например).
[+] Добавил реестр классов сущностей. Зачем нужны классы - расскажу вкратце: представим что у нас в игровм уровне находятся 2 бота! Это люди. Один человек является снайпером а второй обычным воякой с АК-47 например. Это один и тотже игровой класс CPlaye, однако модель поведения и некоторые специфичные параметры у них разные. ЧТо теперь? Делать для каждого вида игрока свой класс? Бред!: D Мой реестр классов инициализируется ил LUA скрипта. Тоесть чтобы создать новый класс сущности, мы должны создать его описание в LUA скрипте EntityRegistry.lua Он является базой данных классов сущностей. ри запуске движка база данных сущностей из скрипта грузится в реестр классов. После этого мы можем спокойно создавать инстансы любого класса одной лишь строкой!
ну к примеру ПСЕВДОКОД:
Entity player = Factory.BuildEntity(Registry.GetClass("Player"));
Всё! Мы создали игрока одной строкой : ) При чём у него уже настроено поведение(AI) и некоторые параметры. Удобно в общем : D
*ушёл прогать дальше*
Подписаться на:
Сообщения (Atom)