![]() |
Модераторы: Rickert |
![]() ![]() ![]() |
|
Selitro |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 20.6.2005 Где: Аделаида Репутация: нет Всего: нет |
Назвать может их кто-нибудь?
|
|||
|
||||
Alastis |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 251 Регистрация: 15.11.2004 Где: Казахстан, Астана Репутация: 2 Всего: 10 |
Selitro
нуу.... встречный вопрос - а какая есть реальная альтернатива скелетной анимации? Если не скелетная анимация, то что? -------------------- Прости, что я говорю, когда ты меня перебиваешь. |
|||
|
||||
Selitro |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 20.6.2005 Где: Аделаида Репутация: нет Всего: нет |
Обычная анимация - просто движение точек относительно системы координат модели.
|
|||
|
||||
Alastis |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 251 Регистрация: 15.11.2004 Где: Казахстан, Астана Репутация: 2 Всего: 10 |
взято отсюда -------------------- Прости, что я говорю, когда ты меня перебиваешь. |
|||
|
||||
Selitro |
|
||||||
![]() Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 20.6.2005 Где: Аделаида Репутация: нет Всего: нет |
Писал, извените, какой-то глупый человек...
Когда речь идёт об оптимизации, то ставку делается на кол-во тактов процессора, а не на задействованную память.
Это вообще не аргумент против других анимаций. Инверсная кинематика относится только к скелетной анимации.
Тоже не аргумент. Раз ты можешь двигать одни и теже точки у одной модели по средствам скелетной анимации, то, следовательно по логике вещей, ты можешь двигать теже точки и без скелетной анимации. Ну и что получается? В том-то и дело, что - ничего. Ответа на вопрос "Почему лучше скелетная анимация?" так и не поступило. Никто не может дать внятного ответа? |
||||||
|
|||||||
Alastis |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 251 Регистрация: 15.11.2004 Где: Казахстан, Астана Репутация: 2 Всего: 10 |
Selitro
зайди на www.gamedev.ru и задай вопрос на том форуме... только мой тебе совет не говори никому, что Сергей Ваткин глупый человек... ![]() ![]() вдогонку:
Это сообщение отредактировал(а) Alastis - 22.6.2005, 08:52 -------------------- Прости, что я говорю, когда ты меня перебиваешь. |
|||
|
||||
Selitro |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 20.6.2005 Где: Аделаида Репутация: нет Всего: нет |
Да мне хоть сам Джон Кармак это написал. Глупость ведь. Вы со мной не согласны? |
|||
|
||||
DrPadawan (from gamedev.ru) |
|
|||
Unregistered |
[quote]
Да мне хоть сам Джон Кармак это написал. Глупость ведь. Вы со мной не согласны? [quote] С Джоном Кармаком лучше не спорить. Тем более когда опыта нет. Для интереса можно попробовать с нуля реализовать хотя бы кейфреймовую анимацию. Потом подумать, а как бы её универсализировать в плане run-time настроек детализации, смешения (блендинга) анимаций. Плюсы скелетной анимации я бы объяснил так. Скелетная анимация позволяет собрать скелет, установить в его сочленениях (joint'ах) иерархические ограничения (contraints). С системой ограничений работает IK solver (inverse kinematics solver). Т.е. он по входному воздействию (заданному перемещению какой-то кости скелета) отрабатывает обратное распространение возмущения, в результате (это конечно зависит от правильности настроек скелета), персонаж двигается реальнее. Второе. Поскольку идет работа с иерархией, то можно смешивать анимацию: прыжок+удар мечом+медленный разворот. Третье. К сочленениям можно присоединять другие предметы, тогда они тоже будут подчиняться ограничениям. Четвертое. Опять же, иерархия и система ограничений могут подчиняться внешним воздействиям (гравитация, приложения импульсов) - за примерами далеко ходить не надо, тот же ragdoll например. Минусы: IK solver - сложная сущность. Чтобы разработать хороший IK Solver опытному программисту потребуется около трех месяцев. Субъективно, но подтверждено опытом. Из сложности вытекает требовательность к ресурсам. Но, к примеру, на большинстве машин (у меня IP3-866) можно иметь в среднем 30 (при достаточно хорошем IK solver'e) скелетно анимированных персонажей в кадре и держать FPS на приемлемом уровне. Этого вполне хватит для основных героев. А монстры пусть бегают в keyframe. Все плюсы скелетки - это минусы кейфреймовой анимации, еще минус - возрастание объема хранимой информации (копируем-то мы все точки модели). В результате, чем больше данных обрабатываем, тем больше промахов кэша получаем. В итоге, кейфрейм-анимация находит свое применение в несложных, заранее просчитанных объектах. |
|||
|
||||
x0ras |
|
||||||||
Unregistered |
Видимо Вам никогда не приходилось оптимизировать код, раз считаете, что обращение к памяти не занимает процессорных тактов.
В этом и есть плюс - возможность использовать инверсную кинематику.
Попробуй. ;)
Полагаешь недостаточный уровень? ![]() ![]() |
||||||||
|
|||||||||
chipset |
|
||||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4071 Регистрация: 11.1.2003 Где: Seattle, US Репутация: 2 Всего: 164 |
При оптимизации достигаеться компромисс: память<->такты CPU.
Эммм... А как насчёт каркаса+текстуры? Точки то каждый двигать умеет ![]() +текстуры? Точки то каждый двигать умеет ![]() --------------------
|
||||||
|
|||||||
AISIN |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 185 Регистрация: 27.1.2005 Где: Пушкино Репутация: нет Всего: 1 |
Если ты имеешь в виду перересовывать все функцией SetPixel то очень медленно будет перересовываться и анимация будет подтормаживаться! --------------------
Внимание!!! Внимание!!!Запущена программа по завоеванию мира!!!Выполненно 0,000000000000000000000000000000000000000000000000000002% |
|||
|
||||
Alastis |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 251 Регистрация: 15.11.2004 Где: Казахстан, Астана Репутация: 2 Всего: 10 |
еще тут
-------------------- Прости, что я говорю, когда ты меня перебиваешь. |
|||
|
||||
Selitro |
|
||||||||||||||||||||
![]() Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 20.6.2005 Где: Аделаида Репутация: нет Всего: нет |
Как же люди любят судить по кол-ву постов! ![]()
Как же вам не понятно. Это не аргумент. Вы просто описывает возможности скелетной анимации. Суть какова? Сдвинуть точки модели. Так? Если делать через скелетную анимацию, то вам приходиться всё самим просчитывать, а если по кейфреймам, что и самый дубовый способ, то идёт тот же сдвиг точек, только без "ненужных" расчётов.
А что вам мешает проигрывать одновременно по кейфреймам сдвиг точек параллельно, не прекращая предыдущей анимации? Проигрывать две анимации параллельно.
Первый реальный аргумент.
Было у меня рандеву с внутренностями альфы дума3, да хотя и в полной версии тоже самое, и вот: система ragdoll "включается" только после смерти "противника", плюс к этому идёт связка через IK. Отсюяда вывод - в данном случае, при смерти противника, и надо включать скелет, а не раньше.
Ладно, будем считать, что я не умею оптимизировать код. Но соласитесь будет быстрее 500 раз обратиться к области памяти, чем 400 раз посчитать тот же cos угла.
А ведь двигаю ![]()
Если человек такое пишет - значит недостаточный.
Происходит движение вершин модели. В данном случае разницы нет - скелетная или кейфрефмовская.
Нет, конечно. Просто сдвиг опред. точек в опред. момент времени. |
||||||||||||||||||||
|
|||||||||||||||||||||
CyberZX(gamedev.ru) |
|
|||
Unregistered |
я писал довольно сложную и навороченую систему скелетной анимации, а так же реаизовывал вершиную анимацию, морфинг, регдолл и IRSolvers. так, что я могу говорить о том, с чем лично работал
так вот какие perfomance нам предоставляет скелетная анимация по сравнению с вершинной. 1. память. в вершинной анимации нам необходимо выделять память для геометрических данных на каждого персонажа. но мало того, еще приходиться каждый кадр гнать эти данные по AGP в видеокарточку для их дальнейшей отрисовки. то есть предположим у нас 50 персонажей в кадре. на каждого уходит по полмегабайта памяти. это 25 мегабайт данных за кадр или порядка 100-200 мегабайт в секунду надо пересылать в видеокарточку. что очень очень много. я не говорю сколько надо системной памяти выделять для всех этих моделей. и их анимаций. в скелетной анимации у нас есть только одна модель, которую можно один раз положить в видеопамять и забыть. CPU просто будет гнать туда матрицы скелета(полтора килобайта за кадр) и модель проскинеться в вершинном шейдере. 2. геометрический процессинг. в вершиную анимацию надо блендить на CPU, у которого и так дел полно и который не так хорошо заточенн под такие операции, SSE конечно рулит. но это полумера. при скелетной анимации скининг может происходить в вершиных конвеерах GPU, которые в принципе простаивают зачастую. да и для GPU такое сделать намного проще и эффективнее 3. интерполяция кадров в вершиной анимации мы можем использывать линейную интерполяцию, которая не сохраняет объем меша, что можно легко заметить, модельки как будто мягкие и желеобразные. к тому же на резких движениях присуствую определенные дергания, что не очень приятно. в скелетной анимации такого не происходит. и мы можем повороты костей представлять кватернионами, которые можно интерполировать сферической линейной интерполяцией, которая сохраняет модуль кватернионов любом значении ключа интерполяции, что позваляет с достаточной точностью интерполировать резкие движения без всяких артефактов. 4. возможность навешывать на скелеты дополнительные меши и динамически их менять. то есть можно в любое время менять оружие, доспехи, одежду и прочие атрибуты. в вершиной анимации этого делать нельзя. 5. возомжность привезать к костям эфекты. например эмитеры партиклов или какое-нибудь свещение. в вершиной анимации этого делать нельзя. 6. возможность анимировать сложные механические конструкции. на скелетной анимации можно моделировать открывание дверей, сундуков, вращение колес и прочее. все эти анимации легко генерируються и используються. в вершиной анимации этого делать не стоит. 7. возможность смешивать анимации. бег, стрельба, поворот головы. интерактивность анимаций. что бы бот смотрел всегда на тебя. управлять направлением взгляда и т.д. в вершиной анимации этого делать нельзя. 8. но зато вершиной анимацей хорошо делать cloth simulation. скелеткой его тоже можно сделать, но выглядить будет не так красиво. >Ладно, будем считать, что я не умею оптимизировать код. Но соласитесь будет быстрее 500 раз обратиться к области >памяти, чем 400 раз посчитать тот же cos угла. совсем совсем не соглашусь. вы отстали от жизни |
|||
|
||||
Guest |
|
||||||||
Unregistered |
Как тебе не понятно? В скелетной анимации есть йерархия, а в кийфреймовой ее нет. Ето позволяет делать красивъй блендинг анимаций, что не сделаеш в кийфреймовом представлении. IK, физика и расчленение костей очень понятнъе плюсъ. У кейфреймовой анимации есть очень узкое и специализированное применение - не более. Всякие low-poly кучи обьектов, или очень сложная анимация, типа одеждъ.
Нет йерархии. Без нее - неправильно и некрасиво, если обе анимации очень разнъе будет отстой.
В Думе может и так. В другом проекте можно и иначе...
Не факт. Даже если для cos ето так, то ето не так для линейной интерполяции. И вообще, спорить о абстрактном - не есть лучшее занятие. Только отмечу, что тактов у современнъх процах на порядок больше, чем чтений из памяти. |
||||||||
|
|||||||||
![]() ![]() ![]() |
Правила форума "Программирование игр, графики и искуственного интеллекта" | |
|
НА ЗЛОБУ ДНЯ: Дорогие посетители, прошу обратить внимание что новые темы касающиеся новых вопросов создаются кнопкой "Новая тема" а не "Ответить"! Любые оффтопиковые вопросы, заданные в текущих тематических темах будут удалены а их авторы, при рецедиве, забанены.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rickert. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Программирование игр, графики и искусственного интеллекта | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |