На третий месяц использования, батарея перестала держать заряд. Возможно связано с нагревом планшета во время работы, но больше 20 минут от батареи поработать не удаётся.
Слишком сложно.
На мой взгляд было бы логичнее сделать следующее:
1) Перевести все трансформации на квартернионы (либо с позицией, либо двойные), как писал ZimM. В случае с 2D вся их математика значительно упрощается (для ориентации достаточно zw координат).
2) Joint должен хранить:
— индекс родительской кости, и -1 в случае если это root
— имя или хеш имени, для реиндексации (если анимация должна подходить для другого меша, всяких обвесов или оружия)
— инвертированную базовую трансформацию в которой он был прикреплён к мешу или объекту
3) Анимация должна хранить:
— информацию о скорости проигрывания (FPS), количестве кадров в анимации, количестве задействованных Joint'ов
— индекс Joint'а и все его KeyFrame (в виде кватернион+позиция, или двойных кватернионов, что в случае с 2D звучит страшнее чем на самом деле)
4) Для модели хранить стек анимаций, каждая анимация которого имеет динамически изменяемый «вес». Это позволит делать так называемый Merging & Blending анимаций друг с другом (бег + махание руками = бежим и машем)
5) Каждая вершина геометрии (меш) должна хранить индексы влияющих Joint'ов (2 вполне достаточно) и их веса. В случае если достаточно одного влияния, вес будет не нужен (всегда = 1) и можно будет избавиться от инвертированной трансформации из п. 2 применив её к самой геометрии перед сохранением (оптимизация runtime расчётов).
6) Геометрия должна хранить индексы и имена влияющих костей для реиндексации, выработка стандарта имён в скелете позволит применять одну и ту же анимацию для различных мешей, разных пропорций.
7) В итоге, пробежавшись по всем Joint'ам скелета, собрав итоговые интерполированнные трансформации для текущего кадра в стеке, получишь массив итоговых трансформаций, который необходимо умножить на соответствующие инвертированные трансформации из п. 2 (если не используется оптимизация п. 5), и передать всё это добро в шейдер. Далее всё весьма тривиально.
Может что-то забыл, но как-то так…
Для сжатых текстур в Android есть ETC1 + GL_ALPHA8, который существует на всем зоопарке, поэтому остальными нужно пренебречь. s3tc только на Tegra, pvrtc только на PowerVR (+ ограничение на квадратность)
Поверь, по сравнению с телевизорами Philips (а именно 7 серия) любой Витязь будет вызывать гораздо меньше раздрожения. Скоро исполнится год, с момента покупки 7007.
— Чтобы эта 55" бандура ценой в 80к увидела флешку после включения ТВ — её нужно перевоткнуть (всегда), т.е. поднять свою ленивую попу, подойти и перевоткнуть.
— Вам очень повезёт, если после перевтыкания флешка не окажется битой или вовсе сгоревшей
— Включив телевизор ночью — будьте уверены, что все домочадцы будут слышать его ещё около 10 секунд, пока он прогрузится и начнёт реагировать на пульт управления.
— Реакция на пульт тоже странная и заторможенная, можно ввести комбинацию кликов и несколько секунд смотреть как телевизор неспешно её выполняет, это особенно актуально, когда необходимо срочно понизить громкость на 20 пунктов.
— Splash Screen висит порядка 30 секунд, после чего он не реагирует на пульт около 10 секунд и ищет Wi-Fi около 30 сек
— Может внезапно перезагрузиться
— А также не включиться (как подметил автор ветки — приходится дёргать из розетки)
— Очень неспешное меню
— Встроенный декодер видео даёт трески в звуке и не поддерживает субтитры (внешние и вшитые), также не всегда корректно проигрывает видео (отрицательное время, рывки картинки и т.п.)
— Некоторые Smart TV приложения вешают или перезагружают телевизор, и это при том, что они все по сути web-странички
— Split-Screen игра в 3д очках (когда каждый игрок видит только свой экран) у второго игрока показывает полупрозрачный вид первого
— Обновление ПО никаких существенных исправлений за год не привнесло, т.е. все тормоза и баги что были так и остались (ГОД отладки!)
— Российская прошивка за этот год обновлялась всего 1 раз, это единственный случай, когда работало встроенное Обновление ПО, в остальных же приходится качать свежую европейскую и ставить с флешки.
Есть качественные плюсы — ambilight, дисплей, интерполяция изображения, мощный звук. И всё это так небрежно загублено совершенно уродливым ПО.
Френель был бы недоволен ;)
Вероятно, имелось ввиду меню настроек телефона, где каждый поиск редко нужной настройки превращается в квест.
На мой взгляд было бы логичнее сделать следующее:
1) Перевести все трансформации на квартернионы (либо с позицией, либо двойные), как писал ZimM. В случае с 2D вся их математика значительно упрощается (для ориентации достаточно zw координат).
2) Joint должен хранить:
— индекс родительской кости, и -1 в случае если это root
— имя или хеш имени, для реиндексации (если анимация должна подходить для другого меша, всяких обвесов или оружия)
— инвертированную базовую трансформацию в которой он был прикреплён к мешу или объекту
3) Анимация должна хранить:
— информацию о скорости проигрывания (FPS), количестве кадров в анимации, количестве задействованных Joint'ов
— индекс Joint'а и все его KeyFrame (в виде кватернион+позиция, или двойных кватернионов, что в случае с 2D звучит страшнее чем на самом деле)
4) Для модели хранить стек анимаций, каждая анимация которого имеет динамически изменяемый «вес». Это позволит делать так называемый Merging & Blending анимаций друг с другом (бег + махание руками = бежим и машем)
5) Каждая вершина геометрии (меш) должна хранить индексы влияющих Joint'ов (2 вполне достаточно) и их веса. В случае если достаточно одного влияния, вес будет не нужен (всегда = 1) и можно будет избавиться от инвертированной трансформации из п. 2 применив её к самой геометрии перед сохранением (оптимизация runtime расчётов).
6) Геометрия должна хранить индексы и имена влияющих костей для реиндексации, выработка стандарта имён в скелете позволит применять одну и ту же анимацию для различных мешей, разных пропорций.
7) В итоге, пробежавшись по всем Joint'ам скелета, собрав итоговые интерполированнные трансформации для текущего кадра в стеке, получишь массив итоговых трансформаций, который необходимо умножить на соответствующие инвертированные трансформации из п. 2 (если не используется оптимизация п. 5), и передать всё это добро в шейдер. Далее всё весьма тривиально.
Может что-то забыл, но как-то так…
— Чтобы эта 55" бандура ценой в 80к увидела флешку после включения ТВ — её нужно перевоткнуть (всегда), т.е. поднять свою ленивую попу, подойти и перевоткнуть.
— Вам очень повезёт, если после перевтыкания флешка не окажется битой или вовсе сгоревшей
— Включив телевизор ночью — будьте уверены, что все домочадцы будут слышать его ещё около 10 секунд, пока он прогрузится и начнёт реагировать на пульт управления.
— Реакция на пульт тоже странная и заторможенная, можно ввести комбинацию кликов и несколько секунд смотреть как телевизор неспешно её выполняет, это особенно актуально, когда необходимо срочно понизить громкость на 20 пунктов.
— Splash Screen висит порядка 30 секунд, после чего он не реагирует на пульт около 10 секунд и ищет Wi-Fi около 30 сек
— Может внезапно перезагрузиться
— А также не включиться (как подметил автор ветки — приходится дёргать из розетки)
— Очень неспешное меню
— Встроенный декодер видео даёт трески в звуке и не поддерживает субтитры (внешние и вшитые), также не всегда корректно проигрывает видео (отрицательное время, рывки картинки и т.п.)
— Некоторые Smart TV приложения вешают или перезагружают телевизор, и это при том, что они все по сути web-странички
— Split-Screen игра в 3д очках (когда каждый игрок видит только свой экран) у второго игрока показывает полупрозрачный вид первого
— Обновление ПО никаких существенных исправлений за год не привнесло, т.е. все тормоза и баги что были так и остались (ГОД отладки!)
— Российская прошивка за этот год обновлялась всего 1 раз, это единственный случай, когда работало встроенное Обновление ПО, в остальных же приходится качать свежую европейскую и ставить с флешки.
Есть качественные плюсы — ambilight, дисплей, интерполяция изображения, мощный звук. И всё это так небрежно загублено совершенно уродливым ПО.
habrahabr.ru/post/135948/
youtube.com/watch?v=lHyW6Gp6UE8