![]() |
Ответ: Sigel
надо юзать морфинг нескольких анимаций для такого, а не анимацию отдельных костей
|
Ответ: Sigel
морфинг (блендинг) это для плавного перехода от одной анимации - к другой.
а анимировать разные части тела по разному - тоже надо |
Ответ: Sigel
HolyDel
ну вот анимируешь ты отдельно только верх анимацией стрельбы и только низ анимацией бега и сойденяешь эти две анимации, по-сути результат тоже самое что отдельная анимация для костей, но качество лутче ps. посмотри либу cal3d https://gna.org/projects/cal3d/ |
Ответ: Sigel
я имел ввиду взять алгоритм анимирования у блитца
Он очень быстрый (раз в 300 быстрее чем в ксорсе, например) Исходники доступны, расковырять, добавить нужные фичи чтобы не изобретать очередной велосипед |
Ответ: Sigel
Олег, насчёт общего скелета, как ты привёл пример - это слишком, ладно общий скелет для всех птиц, с разной геометрией, или для всех разных гномов - это да.
Я понимаю, ты клонишь к идее загрузки анимации отдельным частям/группам_костей? Я считаю это наоборот муторности в некотором роде, да и файл анимации это не каждый фрейм, поэтому тут не много места. Насчёт анимирования костей, и их наследников соответственно, я в самом начале сказал, но могу немного дополнить. У меня в голове 2 идеи, вторая требует дополнительной туулзы, но и результат в несколько раз лучше, правдо это и посложнее в разы. Начну с первой идеи, всё просто: когда указываешь отдельно кости другую анимацию, все её дети тоже наследуют это, но от кости можно получить по индексу, какой секьюэнс (анимацаия) играется на ней, и сколько их наложено, всегда будет минимум одна - та что всей модели (если не стоп стоит на всю модель), накладывая дополнительную анимацию, будет уже 2 анимации, при этом изначально, коэфицент применения 100%, поэтому и просчитывать будет только эту наложенную (оптимизация, ну это и так понятно), но тут главная мысль в чём. Кости можно указать силу применения 0.0-1.0 на любой индекс наложенной анимации, К примеру первая анимация (ну та что на всю модель), как и все наложенные 1.0, а наложив вторую, мы некоторым костям указываем ниже 1.0, к примеру одной из кости 0.5, таким образом на эту кость будет применено 50% изначальной и 50% новой анимации. Таким образом плавный переход. Скажи это технически возможно (думаю да, но не совсем просто), и второе, не будет ли это сильно потреблять ресурсы? Вторая идея, исходит из первой, но более продвинута и удобна. Заключается она в том, что группы для анимации, мы указываем в специальной туулзе заранее. К примеру представь, мы загружаем только сделанную модель со скелетом, предположим простой конь, далее в туулзе мы видим список, в котором одна группа - весь скелет, создаём новую группу, и выделяем кости для головы, и тем что на шее, указываем уже коэффиценты пониже, визуально очень удобно отобразить по цвету вершин: зелёные - те что пренадлежат группе; крастные - те что не пренадлижат; и частичные переходы от коэффицента. Далее в коде будет только возможность получения этих групп сделанных в этой туулзе, которую кстати под 3д макс написать это по сути не слишком сложно, просто новый параметр классу кости, визуализирование, и использование этого для экспортинга (макс скрипт такой уровень доступа думаю потдерживает). Получая в коде группы (нулевая по дефолту - весь скелет), мы можем применять анимацию чисто группам. Этот варриант меня привлекает, т.к. даст реальную динамику в анимации, и очень неплохую при этом, к примеру анимирование рук по отдельности, и головы, рта (речь, хотя тут если речь, то программно юзая функции звуковых движков, для динамики), и запястий с пальцами, короче говоря это даст неслабый функционал анимации в движке. jimon, по сути это и есть морфинг, так? Что думаете? |
Ответ: Sigel
Вложений: 1
вот демка.
стрелки вправо-влево - менять сцену (рисующийся примитив) стрелки вверх - вниз - менять число примитивов рисующихся за раз. пробел - заморозить сцену (т.е. рисоваться будет одна и та же картина) таб - менять режим блендинга между обычным и аддиативным. когда выйдите из программы - будет готов файл infospeed.txt, мне бы хотелось видеть его содержимое. вот мой результат: Цитата:
|
Ответ: Sigel
вот :
Цитата:
|
Ответ: Sigel
jimon, спасибо!
|
Ответ: Sigel
Цитата:
|
Ответ: Sigel
Код:
CPU: 3300 MHz. |
Ответ: Sigel
Олег, слушай, я сижу щас в последнее время на Mac'ах, они как тебе известно чисто на OpenGL, есть ли у тебя возможность чтонибудь скомпилить под Mac? Я с удовольствием затещу на 2 системах, eMac (1.25 GHz PowerPC G4; 512+256 DDR SDRAM; AGP ATI 32Mb (больше инфы о видяхи не нашёл)), и второй, это MacBook (Intel Core 2 Duo 2.0 GHz, 1066MHz fb; 1Gb DDR3 SDRAM; NVIDIA GeForce 9400M, 256MB DDR3 SDRAM).
Могу на обоих тестить. В общем если есть возможность, я с радостью! |
Ответ: Sigel
MoKa, к сожалению у меня нет мака, чтобы можно было под него компилить. Естественно, без доработок не получится взять и просто собрать под другой осью.
щас я качаю образ MacOS, работающий через VMWare 6. Посмотрим что из етого получится )) Литература по разработке OpenGL приложений на MacOS у мну есть (бумажная). |
Ответ: Sigel
HolyDel, это понятно, но я надеюсь ты не будешь упускать весь потенциал OpenGL в области мультиплатформенности? Да и по сути, мне кажется глубже чем инициализация окна, работа с ним, и FullScreen - разница не пойдёт. Как думаешь?
|
Ответ: Sigel
думаю еще ввод, инициализация рсширений, подключение либ прийдется менять (bass, physx, lua) все они рабоают под макосью, но, думаю поключение их прийдется менять.
|
Ответ: Sigel
Хм, это видно немало работы.. Вопрос, если не сделать импорт сейчас, потом будет геморнее? Просто интерестно, понимаю что возможности нет, но всёже. :)
|
Часовой пояс GMT +4, время: 17:22. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot