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

Преобразование строки в текстуру в Android и OpenGL ES

Я искал в Google всюду, но не могу найти много для рендеринга строк в текстуры, а затем отображения этой текстуры на четырехугольнике на экране. Может ли кто-нибудь подробно описать процесс или предоставить хорошие ресурсы, описывающие, как это сделать? Является ли рендеринг строк в текстуры лучшим способом отображения текста в приложении Android OpenGL ES?

РЕДАКТИРОВАТЬ: Итак, LabelMaker мешает альфа-смешиванию, текстура (созданная из PNG с прозрачным фоном) теперь имеет сплошной черный фон, а не прозрачный фон. Если я закомментирую весь код, связанный с LabelMaker, он будет работать нормально.

ОБНОВЛЕНИЕ: Забудь. Я взглянул на код и обнаружил, что LabelMaker отключал смешивание после рисования этикеток.


Ответы:


1

Я думаю, что это то, что вы ищут.

08.04.2010
  • Да, обнаружил это раньше, но хотел знать, есть ли способ попроще. Думаю, я просто скопирую класс в свой проект и буду работать оттуда. 08.04.2010
  • Итак, LabelMaker мешает альфа-смешиванию, текстура (созданная из PNG с прозрачным фоном) теперь имеет сплошной черный фон, а не прозрачный фон. Если я закомментирую весь код, связанный с LabelMaker, он будет работать нормально. 08.04.2010
  • Привет, у кого-нибудь есть рабочая копия LabelMaker? Ссылка на src в этом сообщении в блоге больше не действует. 26.07.2012

  • 2

    Если вы не хотите использовать расширения GL, вам нужно создать шрифт как растровое изображение, а затем создать класс для преобразования этой строки в квадраты, которые вы можете рисовать.

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

    Другой вариант - отобразить текст в растровом изображении вне экрана с помощью Android, а затем привязать текст как текстуру. Это позволит вам использовать встроенную в Android обработку и рендеринг шрифтов для создания шрифтов на основе текстур.

    Второй метод, который я еще не использовал, но я визуализировал карты Google на внеэкранном холсте, а затем привязал растровое изображение как текстуру GL, поэтому сделать это для текста должно быть намного проще.

    Если вы планируете изменять строковые данные в цикле gl, вам также нужно действительно беспокоиться о StringBuilder, потому что это вызывает проблемы с сборкой мусора и производительностью. Я жестко кодирую все свои строки, чтобы они не распределялись, и все мои быстрые числа выполняются с помощью второй функции рисования, предназначенной для рисования изменяющихся чисел без использования построителя строк.

    06.12.2010
  • Я действительно обновил это в своем коде. Теперь я использую программу Bitmap Font Generator, которая генерирует сжатые карты шрифтов и файлы xml, определяющие, как их рисовать. Это работает намного лучше, чем делать это вручную. 13.12.2010
  • Новые материалы

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

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

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

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

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

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

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