Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
danek130995
24 / 24 / 1
Регистрация: 25.05.2014
Сообщений: 872
#1

Привязка текстур и SpriteBatch - Программирование Android

21.02.2016, 13:00. Просмотров 169. Ответов 2
Метки нет (Все метки)

Читал в хелпе по LibGDX, что дергается видеокарта всякий раз, когда привязывается текстура. И что типа если использовать TextureRegion, то дергаться не будет так часто. Вопрос у меня вот в чем:когда именно возникает это подергивание? В методе render() при отрисовке? И если так, почему использование региона текстур помогает нам сократить привязки текстур? Мы же по сути также рисуем текстуры, просто берем часть текстуры и вырезаем ее из атласа. Почему меньше-то подергиваний будет? Или подергивание возникает не по этому? Вот как написано в руководстве:
Также в SpriteBatch есть публичное поле renderCalls. Оно указывает, сколько раз
SpriteBatch "дергал" видеокарту между вызовами begin() и end(). Каждое такое
"подергивание" случается, когда привязывается(binding) новая текстура или достигнуто
максимальное количество спрайтов в кэше (размер мы указываем в конструкторе). Если размер кэша указан близкий к оптимальному, а renderCalls велико
(больше, чем где-то 15-20), это значит, что у вас слишком большое количество текстур.
Пакуйте ваши картинки в атласы текстур.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.02.2016, 13:00
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Привязка текстур и SpriteBatch (Программирование Android):

Как можно ускорить рендер больших текстур? - Программирование Android
Задался вопросом: Имеются две текстуры 1024х1024. Они подаются на вход фрагментному шейдеру, шейдер с ними что то делает (в моем случае...

OpenGL на Android 4.4 и Android 5.0 - нет текстур - Программирование Android
Всем доброго дня. Пишу 2D игру с использование OpneGL. На устройстве с версией Android 4.4.2 (HTC 626) все текстуры на месте, все...

Привязка класса к ArrayAdapter - Программирование Android
Добрый день. Есть класс, содержащий опросы private static class Polls { private final int _Id; private final...

Привязка веб интерфейса - Программирование Android
Попробую более точно описать что мне нужно... Вот у меня например есть веб интерфейс для управления каким то прибором, например светом в...

Привязка OnGestureListener к ListView - Программирование Android
Вообщем нужно чтоб лист реагировал на свайпы влево и вправо. Реализовал это при помощи OnGestureListener. Ниже логика реализации. ...

Привязка приложения к Wi-Fi сети - Программирование Android
Добрый день! Появился такой вопрос... Есть приложение, есть Wi-Fi сеть (одна единственная)...в приложении я делаю какое-то действие,...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
danek130995
24 / 24 / 1
Регистрация: 25.05.2014
Сообщений: 872
22.02.2016, 17:54  [ТС] #2
Если быть точным, про упаковку текстур в атлас говорит автор урока Виталий Непочатов, а на сайте про это не написано.
Я думаю, что так как SpriteBatch все равно пакует текстуры и посылает их в графический процессор, то не важно, из атласа их берешь или просто как отдельные.
danek130995
24 / 24 / 1
Регистрация: 25.05.2014
Сообщений: 872
23.02.2016, 23:58  [ТС] #3
Вот что рассказал один человек:
Ситуация 1 - две текстуры из двух разных файлов:
Две текстуры находятся в разных областях памяти и для отрисовки каждой нужен свой dc - в сумме две.

Ситуация 2 - один текстурный атлас с десятком регионов
Из атласа создаётся десяток текстур. Но они, по сути представляют собой одну текстуру, которую можно отрисовать одним махом (один dc).
Это для программиста каждая текстура представляет собой отдельную сущность. А для gpu - нет. Он просто отрисовывает все текстуры из одного атласа за один заход.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.02.2016, 23:58
Привет! Вот еще темы с ответами:

Привязка кнопки к компоненту ExpandableListView - Программирование Android
Подскажите, как можно привязать кнопку к ExpandableListView так, чтобы при пролистывании списка кнопка двигалась вверх-вниз вместе с...

Привязка времени к стрелочным часам canvas - Программирование Android
Как привязать реальное время к стрелкам часов, нарисованных канвой? Секундная стрелка работает, но почему-то начитается отсчет с 15 минут...

Привязка маркера к камере в google maps - Программирование Android
Нужно сделать так что бы маркер добавленый на карту двигался вместе с камерой как вот здесь : http://jsfiddle.net/doktormolle/jcHqt/ ...

Как происходит привязка мобильного приложения с сервером? - Программирование Android
Вот, пишут, что после входа в м.п. 200,000 (etc.) пользователей - сервер упал. То есть, для того, чтобы мобильное приложение нормально...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru