Nano Hash - криптовалюты, майнинг, программирование

Android OpenGL ES draw_texture с обрезкой или VBO?

Привет всем, я переделывал свое приложение для Android, чтобы использовать OpenGL вместо холста (поскольку он безбожно медленный), и мне было интересно, поскольку я использую лист плитки (текстура атласа), будет ли быстрее использовать VBO или draw_texture с набором обрезки следующим образом:

// Crop our texture
((GL11) gl).glTexParameteriv(GL10.GL_TEXTURE_2D, GL11Ext.GL_TEXTURE_CROP_RECT_OES, cropRect[cropIndex], 0);
gl.glColor4f(1, 1, 1, 1);

Послушав некоторое время Криса Пруэтта, я понял, что draw_texture, несомненно, является самым быстрым для отдельного спрайта, но если я обрезаю атлас, это все еще верно?


Ответы:


1

было бы быстрее использовать VBO или draw_texture

Рисование с использованием текстуры атласа

Обратите внимание, что он использует «плиточный мир», что объясняет, почему он использует эту технику. Если вы не используете мозаичный мир, вам, вероятно, следует использовать draw_texture.

Послушав некоторое время Криса Пруэтта, я понял, что draw_texture, несомненно, является самым быстрым для отдельного спрайта, но если я обрезаю атлас, это все еще верно?

Не всегда. Если вы используете большую текстуру атласа с большим количеством спрайтов, функция glTexParameteriv() будет слишком дорогой. Если вы просто используете меньшее количество спрайтов, это, вероятно, будет быстрее, что также зависит от количества вызовов функции glTexParameteriv().

01.04.2011
  • Ну, чтобы дать вам представление, мой атлас 1024x1024, и у меня максимум около 12 спрайтов на экране (не статично). И они не составляют мир, мир - это простое фоновое изображение. Большое спасибо за отличный ответ кстати! 02.04.2011
  • @Alex: Тогда вы, вероятно, умеете использовать draw_texture и glTexParameteriv(). 02.04.2011
  • Спасибо! Но если бы я хотел реализовать, скажем, систему частиц, было бы лучше всего использовать настройку vbo? 02.04.2011
  • @Alex: Вы можете пойти с draw_texture. Я не вижу причин производительности, если я должен идти по пути VBO. 02.04.2011
  • Спасибо за вашу помощь! Просто для справки в будущем, когда я захочу использовать подход VBO? Я имею в виду, что эти системы частиц будут порождать 20-30 частиц, но при этом рисовать текстуру с кадрированием? 02.04.2011
  • @Alex: Вам следует использовать подход VBO, когда draw_texture недоступен. 02.04.2011
  • Хорошо, скажите, насколько это необходимо? Является ли draw_texture стандартным в openGL 2.0? Я имею в виду, что 2.0+ составляет почти 90% рынка, и телефоны с более низкими стандартами обычно его поддерживают... 02.04.2011
  • @Alex: я не знаю о стандартизации в 2.0, но в 1.0 не всегда гарантируется ее доступность. С некоторым логическим мышлением это должно быть стандартом в 2.0, но я точно не знаю. 02.04.2011
  • Хорошо, пожалуй, я начну еще один вопрос для этого. Большое спасибо! 02.04.2011
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

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

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..