🗊Презентация Эффективная система анимаций для Nintendo DS

Нажмите для полного просмотра!
Эффективная система анимаций для Nintendo DS, слайд №1Эффективная система анимаций для Nintendo DS, слайд №2Эффективная система анимаций для Nintendo DS, слайд №3Эффективная система анимаций для Nintendo DS, слайд №4Эффективная система анимаций для Nintendo DS, слайд №5Эффективная система анимаций для Nintendo DS, слайд №6Эффективная система анимаций для Nintendo DS, слайд №7Эффективная система анимаций для Nintendo DS, слайд №8Эффективная система анимаций для Nintendo DS, слайд №9Эффективная система анимаций для Nintendo DS, слайд №10Эффективная система анимаций для Nintendo DS, слайд №11Эффективная система анимаций для Nintendo DS, слайд №12Эффективная система анимаций для Nintendo DS, слайд №13Эффективная система анимаций для Nintendo DS, слайд №14Эффективная система анимаций для Nintendo DS, слайд №15Эффективная система анимаций для Nintendo DS, слайд №16Эффективная система анимаций для Nintendo DS, слайд №17Эффективная система анимаций для Nintendo DS, слайд №18Эффективная система анимаций для Nintendo DS, слайд №19Эффективная система анимаций для Nintendo DS, слайд №20Эффективная система анимаций для Nintendo DS, слайд №21Эффективная система анимаций для Nintendo DS, слайд №22Эффективная система анимаций для Nintendo DS, слайд №23Эффективная система анимаций для Nintendo DS, слайд №24Эффективная система анимаций для Nintendo DS, слайд №25Эффективная система анимаций для Nintendo DS, слайд №26Эффективная система анимаций для Nintendo DS, слайд №27Эффективная система анимаций для Nintendo DS, слайд №28Эффективная система анимаций для Nintendo DS, слайд №29Эффективная система анимаций для Nintendo DS, слайд №30Эффективная система анимаций для Nintendo DS, слайд №31Эффективная система анимаций для Nintendo DS, слайд №32Эффективная система анимаций для Nintendo DS, слайд №33

Содержание

Вы можете ознакомиться и скачать презентацию на тему Эффективная система анимаций для Nintendo DS. Доклад-сообщение содержит 33 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1





Эффективная система анимаций для Nintendo DS
Ростислав Хлебников
Евгений Заякин
20 апреля 2008
Описание слайда:
Эффективная система анимаций для Nintendo DS Ростислав Хлебников Евгений Заякин 20 апреля 2008

Слайд 2





Содержание
Постановка задачи
Эволюция анимационной системы
Проблемы и решения
Выводы (NDS animation best practices)
Описание слайда:
Содержание Постановка задачи Эволюция анимационной системы Проблемы и решения Выводы (NDS animation best practices)

Слайд 3





Постановка задачи (1)
Суммарно ~4000 кадров (около 2 минут) анимаций
Описание слайда:
Постановка задачи (1) Суммарно ~4000 кадров (около 2 минут) анимаций

Слайд 4





Постановка задачи (2)
Анимации на DS
Анимация на уровне матриц
Анимация на уровне геометрии
Чтобы было быстро и красиво
На DS – учесть слабые и сильные стороны платформы
Описание слайда:
Постановка задачи (2) Анимации на DS Анимация на уровне матриц Анимация на уровне геометрии Чтобы было быстро и красиво На DS – учесть слабые и сильные стороны платформы

Слайд 5





Существующее решение (1)
Процесс получения результата
Сплайны
Sampling сплайнов и создание матрицы по TRS
Матрицы local-to-parent
Перемножение матриц в иерархии
Матрицы local-to-world
Скиннинг
Результирующий меш
Описание слайда:
Существующее решение (1) Процесс получения результата Сплайны Sampling сплайнов и создание матрицы по TRS Матрицы local-to-parent Перемножение матриц в иерархии Матрицы local-to-world Скиннинг Результирующий меш

Слайд 6





Существующее решение (2)
Исходные данные
Описание слайда:
Существующее решение (2) Исходные данные

Слайд 7





Существующее решение: итоги
Плюсы
Алгоритмы написаны и много раз проверены
Минусы
Низкая производительность
Кроме того, нет возможности распараллелить работу
Описание слайда:
Существующее решение: итоги Плюсы Алгоритмы написаны и много раз проверены Минусы Низкая производительность Кроме того, нет возможности распараллелить работу

Слайд 8





Картридж NDS
Плюсы
Высокая скорость чтения данных (5 Мб/с)
Zero seek time
Минусы
Сравнительно небольшой объем (максимум 128 Мб, а желательно уложиться в 64 Мб)
Описание слайда:
Картридж NDS Плюсы Высокая скорость чтения данных (5 Мб/с) Zero seek time Минусы Сравнительно небольшой объем (максимум 128 Мб, а желательно уложиться в 64 Мб)

Слайд 9





Используем сильные стороны: идея
Preprocessing (PC)
Предрассчитываем данные для каждого кадра:
Матрицы local-to-parent
Скинованная геометрия
Runtime (NDS)
Считываем необходимые данные
Считаем матрицы local-to-world
Описание слайда:
Используем сильные стороны: идея Preprocessing (PC) Предрассчитываем данные для каждого кадра: Матрицы local-to-parent Скинованная геометрия Runtime (NDS) Считываем необходимые данные Считаем матрицы local-to-world

Слайд 10





Первый вариант реализации
Preprocessing 
Частота дискретизации - 30 fps
Формат записи:
Матрицы - 16 значений fixed-32 (по 4 байта)
Геометрия (дисплей-листы для непосредственной отсылки на рендеринг)
Runtime
Дополнительный буфер для матриц
Для дисплей листов дополнительной памяти не требуется
Описание слайда:
Первый вариант реализации Preprocessing Частота дискретизации - 30 fps Формат записи: Матрицы - 16 значений fixed-32 (по 4 байта) Геометрия (дисплей-листы для непосредственной отсылки на рендеринг) Runtime Дополнительный буфер для матриц Для дисплей листов дополнительной памяти не требуется

Слайд 11





Первый вариант: результат
Размеры анимаций на картридже огромны
Описание слайда:
Первый вариант: результат Размеры анимаций на картридже огромны

Слайд 12





Удаляем ненужные узлы в иерархии
Узел является нужным, если:
С ним связана геометрия
Его позиция требуется игре (например, позиция локатора для оружия)
Все остальные узлы являются лишними!
Описание слайда:
Удаляем ненужные узлы в иерархии Узел является нужным, если: С ним связана геометрия Его позиция требуется игре (например, позиция локатора для оружия) Все остальные узлы являются лишними!

Слайд 13





Ненужные узлы
Ненужными оказываются
30 – 90 % узлов!
Описание слайда:
Ненужные узлы Ненужными оказываются 30 – 90 % узлов!

Слайд 14





Удаляем ненужные узлы в иерархии: результат
Объем уменьшили на 60%
Работает ощутимо быстрее
Описание слайда:
Удаляем ненужные узлы в иерархии: результат Объем уменьшили на 60% Работает ощутимо быстрее

Слайд 15





Избавляемся от дубликации в дисплей-листах
Материалы, флаги, UV сохраняем единожды
Вершины и нормали - для каждого кадра
Описание слайда:
Избавляемся от дубликации в дисплей-листах Материалы, флаги, UV сохраняем единожды Вершины и нормали - для каждого кадра

Слайд 16





Удаление дубликации: результат
Объем уменьшили на 50%
Требуется дополнительная оперативная память
Информация о размещении динамических данных
Буфер для считывания анимированной геометрии
Описание слайда:
Удаление дубликации: результат Объем уменьшили на 50% Требуется дополнительная оперативная память Информация о размещении динамических данных Буфер для считывания анимированной геометрии

Слайд 17





Что еще можно уменьшить?
Можем изменить только частоту квантования
Размер данных = размер кадра * частота квантования * длина анимации
Уменьшаем ее вдвое
Описание слайда:
Что еще можно уменьшить? Можем изменить только частоту квантования Размер данных = размер кадра * частота квантования * длина анимации Уменьшаем ее вдвое

Слайд 18





Уменьшение частоты квантования: результат
Точно влезем в 128 Мб!
Анимации стали «дерганными»
Описание слайда:
Уменьшение частоты квантования: результат Точно влезем в 128 Мб! Анимации стали «дерганными»

Слайд 19





Делаем анимации плавнее
Идея: интерполяция между ключевыми кадрами
Классическое решение (основанное на интерполяции сплайнов) не подходит!
Наше решение:
Интерполяция матриц
Морфинг геометрии
Описание слайда:
Делаем анимации плавнее Идея: интерполяция между ключевыми кадрами Классическое решение (основанное на интерполяции сплайнов) не подходит! Наше решение: Интерполяция матриц Морфинг геометрии

Слайд 20





Варианты интерполяции матриц
Интерполяция координатных осей
Простое решение
Требуется ортогонализация
Проблемы с масштабированием
Интерполяция с помощью кватернионов
Качественная интерполяция
Двойное преобразование представлений
Специальный код для масштабирования
Описание слайда:
Варианты интерполяции матриц Интерполяция координатных осей Простое решение Требуется ортогонализация Проблемы с масштабированием Интерполяция с помощью кватернионов Качественная интерполяция Двойное преобразование представлений Специальный код для масштабирования

Слайд 21





Интерполируем матрицы
Используем кватернионы
Избавляемся от двойного преобразования
На экспорте сохраняем по-отдельности:
Кватернионы
Компоненты Translate и Scale
Используем линейную, а не сферическую интерполяцию кватернионов
Описание слайда:
Интерполируем матрицы Используем кватернионы Избавляемся от двойного преобразования На экспорте сохраняем по-отдельности: Кватернионы Компоненты Translate и Scale Используем линейную, а не сферическую интерполяцию кватернионов

Слайд 22





Интерполяция матриц: результат
Матричные анимации стали плавными
Объем уменьшили на 60%
 26 байт вместо 64 на один узел на кадр
Описание слайда:
Интерполяция матриц: результат Матричные анимации стали плавными Объем уменьшили на 60% 26 байт вместо 64 на один узел на кадр

Слайд 23





Морфинг геометрии
Необходимые действия
Распаковка из формата графического ядра
Линейная интерполяция векторов
Обратная упаковка
Используем возможность упаковывать три компоненты в 32 бита (vtx10)
Описание слайда:
Морфинг геометрии Необходимые действия Распаковка из формата графического ядра Линейная интерполяция векторов Обратная упаковка Используем возможность упаковывать три компоненты в 32 бита (vtx10)

Слайд 24





Интерполяция геометрии: результат
Качество скиновой анимации улучшилось
Сэкономили еще 50% памяти
Описание слайда:
Интерполяция геометрии: результат Качество скиновой анимации улучшилось Сэкономили еще 50% памяти

Слайд 25





Проблемы не закончились!
Зверские тормоза
Визуальные артефакты
Описание слайда:
Проблемы не закончились! Зверские тормоза Визуальные артефакты

Слайд 26





Причины тормозов
Компилятор генерирует чрезвычайно плохой ассемблерный код
Основная проблема - код внутренних циклов интерполяции
Погружаемся в ARM ARM и ассемблируем вручную
Описание слайда:
Причины тормозов Компилятор генерирует чрезвычайно плохой ассемблерный код Основная проблема - код внутренних циклов интерполяции Погружаемся в ARM ARM и ассемблируем вручную

Слайд 27





Ручное ассемблирование: что и как?
Ассемблируем функции интерполяции
s16Lerp / s32Lerp / getDotSign
lerpVtx10 (хит сезона)
Используем специфические команды ARM, например SMLABB
Решаем проблемы компилятора, который совершенно неспособен на анализ asm-секций
Описание слайда:
Ручное ассемблирование: что и как? Ассемблируем функции интерполяции s16Lerp / s32Lerp / getDotSign lerpVtx10 (хит сезона) Используем специфические команды ARM, например SMLABB Решаем проблемы компилятора, который совершенно неспособен на анализ asm-секций

Слайд 28





Ручное ассемблирование: результат
Скорость стала такой, что стали думать переписывать на ассемблере всю игру
Описание слайда:
Ручное ассемблирование: результат Скорость стала такой, что стали думать переписывать на ассемблере всю игру

Слайд 29





Визуальные артефакты, борьба
Причина дрожания – потеря точности из-за формата vtx10
Решение
Для персонажей, на которых эффект заметен возвращаем точность (таких оказалось очень немного)
Описание слайда:
Визуальные артефакты, борьба Причина дрожания – потеря точности из-за формата vtx10 Решение Для персонажей, на которых эффект заметен возвращаем точность (таких оказалось очень немного)

Слайд 30





Результаты
Описание слайда:
Результаты

Слайд 31





Дальнейшие улучшения
Уменьшить размер данных и увеличить скорость за счет неравномерного квантования анимаций
Автоматический выбор ключевых кадров

и / или

Превью-плагин в Maya – WYSIWYG для художников
Описание слайда:
Дальнейшие улучшения Уменьшить размер данных и увеличить скорость за счет неравномерного квантования анимаций Автоматический выбор ключевых кадров и / или Превью-плагин в Maya – WYSIWYG для художников

Слайд 32





Выводы
Используйте streaming и интерполяцию ключевых кадров вместо просчета в run-time
Сокращайте иерархии до минимума
Активное используйте ручное ассемблирования time-critical кода
Будьте аккуратны с точностью
Описание слайда:
Выводы Используйте streaming и интерполяцию ключевых кадров вместо просчета в run-time Сокращайте иерархии до минимума Активное используйте ручное ассемблирования time-critical кода Будьте аккуратны с точностью

Слайд 33





Вопросы?
Описание слайда:
Вопросы?



Похожие презентации
Mypresentation.ru
Загрузить презентацию