forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Проекты C++ (http://forum.boolean.name/forumdisplay.php?f=56)
-   -   C3D Engine (http://forum.boolean.name/showthread.php?t=16433)

HolyDel 16.05.2012 15:05

Ответ: C3D Engine
 
ошибаешься.
это два разных подхода - морфная анимация и скининг.

Mr_F_ 16.05.2012 16:36

Ответ: C3D Engine
 
Цитата:

В максе пробегаю по всем кадрам и извлекаю положение вершин помноженое на матрицу объекта. Этим методом неважно каким модификатором в максе сделана анимация, тем самым можно экспортировать совершенно любую анимацию
а в реалтайме как морфишь то? неужто локаешь VB каждый кадр или того хуже держишь VB на каждый кадр?
и насчёт не гибко - это действительно так.
к примеру не выйдет применить одну и ту же анимацию ходьбы к 2м челам с одинаковыми скелетами - придётся засирать память нефигово.

pozitiffcat 16.05.2012 19:59

Ответ: C3D Engine
 
Цитата:

Сообщение от Mr_F_ (Сообщение 228063)
а в реалтайме как морфишь то? неужто локаешь VB каждый кадр или того хуже держишь VB на каждый кадр?
и насчёт не гибко - это действительно так.
к примеру не выйдет применить одну и ту же анимацию ходьбы к 2м челам с одинаковыми скелетами - придётся засирать память нефигово.

А вот я это реализовал! Только что. И не засирает память

В реалтайме морфит каждый кадр 3д макс. Мне кроме интерполяции вообще ненадо никаких вычислений


ЗЫ. я локаю буфер каждый кадр. Не просто так же придумали флаг DYNAMIC для буффера... спецом для анимаций

pozitiffcat 16.05.2012 20:00

Ответ: C3D Engine
 
Цитата:

Сообщение от HolyDel (Сообщение 228061)
ошибаешься.
это два разных подхода - морфная анимация и скининг.

Естественно! У меня скин переводится в морф и записывается в файл. В файле уже морф, сформированый

Mr_F_ 16.05.2012 20:10

Ответ: C3D Engine
 
Цитата:

ЗЫ. я локаю буфер каждый кадр. Не просто так же придумали флаг DYNAMIC для буффера... спецом для анимаций
это небыстро может быть, ну точнее сойдет для медии на уровне 2004 и ниже)
хотя раз казуальный движок то может и ок)
но есть ещё один минус - нельзя получить трансформацию кости в кадре у тебя (бывает нужно).
я последний раз когда делал морфинг, запекал его в флоатовые текстуры (ось Х - номер кадра, ось Y - номер вертекса), и в VS читал и интерполировал, но это с SM 3.0 только можно.

pozitiffcat 16.05.2012 20:15

Ответ: C3D Engine
 
Цитата:

Сообщение от Mr_F_ (Сообщение 228069)
но есть ещё один минус - нельзя получить трансформацию кости в кадре у тебя (бывает нужно).

Я об этом тоже думал. Я буду держать скелет, по мере необходимости доступа к кости, буду пересчитывать трансформации. Все же это меньше операций, чем перемножать каждую вершину относительно матрицы кости. Скелет будет использоваться для прикрепления к нему объектов, а не для высчитывания анимации.

HolyDel 16.05.2012 20:18

Ответ: C3D Engine
 
Цитата:

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

дружище, не ленись, сделай человеческий скининг.
или оставь человеческий морфинг.
зря ты их скрещиваешь.

pozitiffcat 16.05.2012 20:22

Ответ: C3D Engine
 
У меня морфинг человеческий. Скрещивает 3д МАКС, который выдает мне файл с морфной структурой!

HolyDel 16.05.2012 20:25

Ответ: C3D Engine
 
а. ну тогда нет проблем :) раз морфный файл и морфный рендер :)

pozitiffcat 17.05.2012 22:42

Ответ: C3D Engine
 
Будет встроеный в двиг нормал маппинг. Постараюсь его реализовать с per-pixel освещением и тенями, пока что мало представляю как это все сделать

pozitiffcat 20.05.2012 18:41

Ответ: C3D Engine
 
Добавил видео по рендеру
http://youtu.be/DQvAw-lfzZQ
На этом видео я показываю: морфная анимация загружается один раз, а используется на нескольких моделях, тоже касается и текстур. Анимация каждого человечка играет с разной скоростью, что бы было видно, что морфная анимация не привязана к конкретному объекту, это совершенно отдельный объект.
Загружать морфную анимация не надо ручками, все делается автоматически и движок сам понимает, кому и какой морфный объект, загруженный ранее, присвоить.

16 человечков с анимацией - 300 FPS
памяти ест 26 мб
100 человечков с анимацией - 111 FPS
памяти ест 32 мб

Просьба потестировать на запуск приложение кому не лень - http://rghost.ru/38187610

Randomize 21.05.2012 21:18

Ответ: C3D Engine
 
Охренительно музыка дополняет происходящее

pozitiffcat 22.05.2012 00:25

Ответ: C3D Engine
 
Близится зарелизивание беты


Что нужно сделать
• PointTo у камеры
• Выделение объектов мышью (хз в бэте или нет, там небольшой гемор)
• Попиксельное освещение (не в бэте)
• Множество проходов с источниками света (пока не вкурсе как делается) (не в бэте)
• Тени в стандартном шейдере (не в бэте)
• Настройка физики из скрипта материала
• Везде сделать корректное удаление
• Текст
• 2д графика
• Удалить лишние данные из файла меша
• Использовать центрирование при извлечении меша из нода (перемножить каждую точку на минус матрицу положения меша)
• Названия анимаций
• Рендер в чужое окно
• Задать fov
• Получение текстового значения имени класса
• Получение объектов по именам, задавание имен, получение в виде списка. Получать например так models_count(), get_model(int)
• попроверять правильность поворотов, преобразований


Что сделано
• Пост – эффекты
• Искаропки есть setNormalMap(CTexture*)
• Аудио
• Менеджер звуков
• Загрузка звука
• Проигрывание звука
• Нормальный mouselook
• Функция движения move
• Работа с разными менеджерами сцены (теоретически работает)
• Улучшить координаты текстур при выгрузке из 3ds max (вроде норм)
• При экспорте затирать существующий материал
• Назначать текстуру нормали из 3ds max
• Рендер с камеры
• Камера может быть нодом и цепляться к чему угодно
• Свет может быть нодом и цепляться к чему угодно
• Установка шейдера и техники в материале
• Работа с несколькими камерами
• Исключить варнинги в коде
• Сохранение позиций объектов в файл
• Морфная анимация не грузится повторно для каждого подобного объекта, а берется из кэша
• Проверены правильность работы матриц в иерархии
• Извлечение мешей модели по имени в отдельную ноду
• Текстуры и морфы удаляются с удалением сцены
• Логи
• Освещение (список ламп в менеджере сцены)
• Настройка параметров эффекта
• Физика Bullet
• Физический мир
• Добавление физических тел



4yBa4Ok 22.05.2012 13:45

Ответ: C3D Engine
 
PhysX будет подключаться отдельной .dll

pozitiffcat 22.05.2012 14:01

Ответ: C3D Engine
 
Цитата:

Сообщение от 4yBa4Ok (Сообщение 228510)
PhysX будет подключаться отдельной .dll

Да. Искаробки будет bullet. Верней он уже есть )))


Часовой пояс GMT +4, время: 00:04.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot