Типографика в AR и VR
Приветствую всех 🙌
По мере разработки и использования всё более сложных приложений дополненной и виртуальной реальности (AR/VR) внедрение новых функций и возможностей увеличивает сложность информации, предоставляемой читателю. Существующих типографических правил недостаточно для решения этих новых задач.
Тщательное рассмотрение типографики в этом новом формате не ограничивается размерностью. Как ведёт себя текст, когда мы на него смотрим? Следует ли он за движениями нашей головы или зафиксирован где-то в трёхмерном пространстве? Как он ведёт себя, когда мы смотрим на него под углом? Должен ли он быть неподвижным или должен двигаться вместе с нашим взглядом? Должно ли это поведение отличаться, если пользователь движется?
В AR/VR текст больше не воспринимается в статической форме. Движение, вращение и факторы рендеринга (частота кадров, разрешение) создают проблемы для отображения текста, такие как перспективные искажения, чтение на расстоянии, искажение формы букв и т. д. Некоторые из этих проблем отнюдь не новы, но трехмерная среда меняет контекст и вносит некоторые сложности. Например, опыт, полученный при разработке дорожных знаков, можно применить к сценариям, когда нам нужно быстро передать информацию пользователю в AR-очках, идущему вдоль дороги. В этом случае прямой перевод указаний может оказаться недостаточно эффективным из-за ограничений в рендеринге текста, яркости дисплеев, контрастности букв, их фона и т. д. Именно здесь типографика для AR/VR должна развиваться, подстраиваться под необходимые обстоятельства и факторы.
Работа в трехмерном пространстве AR/VR может подтолкнуть вас к полному переходу в 3D, добавив глубину тексту. Это может показаться правильным решением, но оно имеет отрицательные последствия восприятия этого текста. Для ёмких абзацев и предложений рекомендуется использовать двухмерный или плоский текст, а не трёхмерный.
На самом деле, глубина в тексте ухудшает как читаемость, так и разборчивость. Она добавляет формы буквам, влияет на пространство между ними и в определенных ситуациях может сделать буквы неузнаваемыми, требуя от пользователя дополнительных усилий для чтения текста. Эта проблема усугубляется, если пользователь смотрит на текст под углом.
В тексте AR/VR можно использовать переменные шрифты для создания адаптивной пространственной типографики для широкого спектра решений. Например:
- Разборчивость текста на открытом воздухе можно улучшить увеличив толщину, чтобы создать достаточный контраст с фоном.
- Перспективные искажения можно скорректировать с помощью оси ширины.
- Пространство между буквами и их ширина могут быть оптимизированы для текста, рассматриваемого под углом, путем определения новой оси для изменения межбуквенного расстояния. Это также может гарантировать, что соседние буквы не будут заслонять друг другу.
Количество проблем будет экспоненциально возрастать с увеличением сложности текстов, которые мы видим и с которыми взаимодействуем в AR/VR, и вариативные шрифты могут решить некоторые из них уже сейчас.
Вот несколько быстрых советов:
- Ограничивайте 3D-текст заголовками или строками текста.
- Используйте 2D-текст для предложений и абзацев.
- Если 3D-текст абсолютно необходим, отрегулируйте межбуквенное расстояние для улучшения читаемости.
Убедитесь, что разница в оттенке "лицевой" стороны текста обеспечивает достаточный контраст с его глубиной для улучшения читаемости. На момент написания статьи типографика в приложениях AR/VR находится на ранних стадиях развития, и потребуется время, чтобы достичь уровня типографического совершенства, к которому мы привыкли в веб-разработке. Однако рассмотрение этих новых возможностей поможет нам подготовиться к тому, что ждет нас дальше в эволюции носимых устройств.
Динамический рендеринг
Мы прошли тот период, когда дизайнеры имели полный контроль над средой, в которой люди читают. Сегодня мы имеем ограниченный контроль над тем, как и где (устройство, платформа, размер окна) будет прочитан текст.
В дополненной и виртуальной реальности (AR/VR), где точка зрения постоянно меняется, используется динамическая отрисовка. В этих случаях глифы непрерывно "перерисовываются" в зависимости от движения, и размер текста никогда не остаётся неизменным от кадра к кадру. Это требует использования динамической отрисовки, высокой детализации, чтобы учитывать изменения размера и положения текста. Это относится к пространственным решениям, где текст парит в свободном пространстве, в отличие от текста, "прилипшего" к интерфейсу пользователя, как описывал ранее в «Шрифты в виртуальной и дополненной реальности».
Традиционно эти проблемы решались с помощью предварительно отрисованных (растровых) глифов, хранящихся в виде текстур. Хотя это и быстрое решение, этот способ отображения приводит к размытию и другим проблемам, связанным с детализацией, когда размер глифа превышает заданные размеры. Аналогично, FreeType также становится популярной альтернативой, где растровые изображения шрифтов генерируются из векторных данных TrueType.
В Unity пошли ещё дальше и внедрили метод отображения текста на основе SDF, где каждый пиксель фиксирует свое значение относительно границы фигуры, которое затем используется для создания плавного непрерывного перехода, сглаживания, с ближайшими пикселями. Например, чёрная фигура слева — это наша эталонная форма. А на изображении справа то как она будет выглядеть в сетке 16×16. Каждое значение — это расстояние конкретного пикселя до ближайшей точки, границы, фигуры. Эти значения можно использовать для восстановления той же фигуры в разных размерах. Несмотря на то, что этот метод дает лучшие результаты, он склонен к скруглению углов, если размер текста превышает размер сгенерированной текстуры используемой для его рендеринга.
Как может увеличиваться размер текста во время работы приложения? Представьте себе использование навигационного приложения с дополненной реальностью или игру в шутер от первого лица в виртуальной реальности, где перед игроком находится вывеска. По мере приближения к ней размер текста на вывеске будет увеличиваться, имитируя поведение в реальной жизни. С каждым шагом игрока к вывеске приложению приходится рендерить новые кадры текста, чтобы имитировать этот эффект.
При разработке приложения или интерфейса дополненной/виртуальной реальности устанавливается оптимальное расстояние — например, один метр — от места, где должна быть видна вывеска, а затем задаём соответствующий размер текста — например, 30 пунктов. На основе этого размера создаётся текстура шрифта. Но если объект приближается ближе, чем на один метр, буквы начинают выглядеть размытыми и искаженными.
Предположим, объект находится на расстоянии, где воспринимаемый размер текста составляет 70 пунктов. На этом этапе текст генерируется с использованием 30-пунктовой текстуры — то есть, аналогично увеличению 30-пунктового растрового изображения до 70 пунктов (как на первом изображении выше). Аналогично, в методе на основе SDF, как только объект приближается к тексту, он генерируется с использованием экстраполяции сгенерированной текстуры, при этом углы теряют детализацию, поскольку они закругляются.
Если сравнить это с отображением текста в современных браузерах, это примитивный метод, сравнимый с технологией отрисовки растровых шрифтов 90-х годов. В современном мире текст в браузерах отображается непосредственно из векторных фигур в файлах шрифтов OTF/TTF.
Это означает, что при разработке приложений дополненной и виртуальной реальности требуется особая внимательность. Выбранные нами шрифты должны соответствовать определённым условиям.
Хотя как аппаратные, так и программные аспекты реализации AR/VR быстро развиваются, шрифтам в них еще многое предстоит догнать. Долгое время необходимость в дополнительной вычислительной мощности для правильной отрисовки текста сдерживала прогресс. Это вынуждает разработчиков AR/VR использовать наименее ресурсоемкие методы рендеринга текста, что приводит к ухудшению его качества. Это также мешает дизайнерам предлагать решения с ёмким текстовым контентом, ограничивая тем самым потенциал AR/VR-среды.
В будущем носимые устройства могут заменить смартфоны и компьютеры. Судя по текущему прогрессу, кажется, что для качественного рендеринга текста потребуется некоторое время, однако это не должно препятствовать развитию AR/VR. Один из способов ускорить этот процесс — разрабатывать приложения, учитывающие типографические особенности носителя. Параллельно можно продвигать разработку шрифтов, специально созданных для оптимизации производительности существующих систем рендеринга.