Я программирую Android-игру. Чтобы уменьшить количество текстур, которые необходимо загрузить (OpenGL ES 2.0), я создал несколько спрайтов размером 1024x1024. Некоторые кадры одной и той же анимации находятся на разных спрайтах. Теперь мой вопрос в том, что это плохо для производительности, поскольку мне нужно привязать (OpenGL.bind()) другую текстуру для каждого кадра анимации?Android OpenGL: используйте несколько текстур для одного анимированного спрайта
ответ
Да, изменение привязки текстуры имеет некоторое влияние на производительность по сравнению с , а не. Скорее всего, лучше всего определить эмпирическое тестирование.
Если вы можете переключиться на OpenGL ES 3, вы можете использовать массив текстур, а не текстуру.
Однако, если это не вариант, почему бы просто не связать все ваши спрайт-листы сразу? Если у вас меньше GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS, вам не нужно менять привязку текстуры, просто предоставьте некоторый способ дать шейдеру знать, к какой связанной текстуре он должен идти.
Эй, Джерико, большое спасибо за ваш ответ. Очень интересный момент, который вы упомянули! Я использую AndEngine и не знаю точно, как привязка выполняется, может быть, вы это делаете? Кадр анимации изменяется после нескольких сотен миллисекунд (не в том же круговом цикле), так действительно ли имеет значение использовать несколько текстур вместо одного? (Потому что и в случае одной текстуры текстура получает привязку в каждом круговом цикле, я думаю неправильно?) – sjkm
- 1. Android OpenGL ES Несколько текстур для одного прямоугольника
- 2. Несколько активных текстур opengl
- 3. Android OpenGL ES2 Множество текстур для одного VBO
- 4. Быстрое обновление текстур OpenGL
- 5. OpenGL рендеринга на несколько текстур, результаты белые
- 6. CCSpriteBatchNode для анимации одного спрайта
- 7. OpenGL ES 1.0 Android: невозможно загрузить несколько текстур
- 8. JAVA OpenGL 3D Cube несколько текстур
- 9. Opengl несколько текстур со смешанными цветами
- 10. openGL связывает несколько текстур с квадратиками
- 11. OpenGL Рисование для нескольких текстур
- 12. Создание анимированного Android-виджета
- 13. Загрузка текстур в Android OpenGL ES App
- 14. Расширение текстур в Android OpenGL ES?
- 15. Неправильные цвета текстур OpenGL
- 16. Зарядка нескольких текстур OpenGL-ES Android
- 17. OpenGL Отображение текстур Icosahedron
- 18. Преобразования текстур OpenGL
- 19. Общие причины отсутствия текстур OpenGL
- 20. Отображение текстур без OpenGL
- 21. Оптимизированное представление OpenGL текстур
- 22. Использование нескольких текстур в OpenGL
- 23. Триггер мыши уходит при нажатии анимированного спрайта
- 24. Изменение TiledTextureRegion анимированного спрайта в Andengine
- 25. Толщина OpenGL 2D-текстур
- 26. OpenGL - слишком много текстур
- 27. OpenGL: отключить цвета текстур?
- 28. Координаты отображения текстур OpenGL
- 29. Удаление артефактов текстур OpenGL
- 30. SDL2 RenderCopy несколько текстур против одного Поверхность
Вы можете смело использовать текстуры 2048x2048 для спрайтов –
Эй, я действительно не думаю, что это правда. Насколько я помню, на некоторых более старых устройствах максимальный размер текстуры составляет 1024x1024 !? – sjkm