Есть такое понятие Liminal Space — пространство, являющееся переходным между двумя другими. Как правило это пустой коридор, пустая проходная комната, большой пустой двор и так далее. Такие места вызывают у людей определённые эмоции, поэтому за данным понятием стоит целая визуальная эстетика. Есть сабреддит по теме, и из него данные публикуются в твиттер аккаунт Liminal Spaces, у которого более 800 тысяч подписчиков (по меркам Твиттера это как на ютубе 20 млн).
Эстетика сама по себе интересная, но сегодня хочу рассказать вам об игре Superliminal, на которую недавно наткнулся. Она из тех игр, что целиком продают себя своей идеей, и вообще, строятся вокруг неё. Посмотрите на видео ниже, и сразу станет понятно, в чём прикол. Помимо классной идеи не могу не отметить техническую реализацию: мне страшно даже представить, с каким количеством сложностей и краевых случаев столкнулись разработчики. Там дальше по игре вообще такие выверты пространства идут, что авторы Portal нервно курят в сторонке. И да, игра активно использует концепцию Liminal Space. Под конец даже слишком.
Хотя местами создаётся ощущение, что ты словил баг, но это так и задумано. И один раз мне пришлось подсмотреть на ютубе, как проходить — оказалось, что был неочевидный для меня способ взаимодействия с предметами, который нигде не презентуется. Возможно, разработчики как раз и ставили перед игроком задачу догадаться, но я не осилил.
Тем не менее, очень яркое и запоминающееся видеоигровое впечатление. Рекомендую.
#games
💡HDR. В чем преимущества и как использовать на Android
Чем отличается HDR (High Dynamic Range) видео или фото от обычного или SDR (Standard Dynamic Range)? Дисплей устройства становится ярче и насыщеннее. В этом и есть задача HDR - обеспечить больше информации о цвете и яркости картинки, чтобы передать максимально близко к задумке автора контента.
SDR формат с которым мы живем довольно давно и он разрабатывался из расчет на устройства того времени, которые просто не могли передать параметры выше:
- максимальная яркость ~100 нит
- ограниченная цветовая палитра (sRGB)
- светлое не такое уж светлое, а тёмное — просто чёрная клякса
Современные дисплее смартфонов имеют пиковую яркость в несколько тысяч нит, большие возможности по показу разных цветов и скорость отображения, поэтому SDR просто не может раскрыть их возможностей. Для этого сделали HDR и он позволяет раскрыть максимум от экрана устройства.
В Android 14 начали активную поддержку HDR контента и его его совместимость с устройствами без поддержки формата, а именно добавили возможности:
✅ показывать HDR-видео в SurfaceView и MediaCodec
✅ накладывать поверх яркий, живой интерфейс — тоже в HDR
✅ узнать через API, поддерживает ли устройство HDR
✅ использовать ImageDecoder для работы с HDR-изображениями
✅ автоматически конвертировать HDR в SDR контент
Google внедрила поддержку UltraHDR - формат изображений c HDR. В нем могут снимать современные Android устройства и получать больше эмоций от ваших фото. Каждый раз наслаждаюсь этим на Pixel.
В блоге Android Developers вышла статья с подробностями как устроен цвет на цифровых устройствах и какие преимущества даёт HDR
#android#hdr
🤖Важность HDR в приложениях для передачи естественных цветов
Почитал интересную статью от Google про важность использования HDR. Самое важное - HRD не только про яркость, а именно про правильность передачи цветов в приложениях, особенно когда дело касается фото.
В Android 15 появилось API для контроля того смешивания HDR и SDR контента:
// Требуется, чтобы Windows учитывало желаемый HDR headroom.
// Обратите внимание, что эквивалентный API в SurfaceView НЕ требует
// COLOR_MODE_HDR для ограничения headroom,
// если на SurfaceView отображается HDR-контент.
window.colorMode = ActivityInfo.COLOR_MODE_HDR
// разные значения headroom могут
// использоваться в зависимости от
// желаемого headroom контента
// И особенностей UI-дизайна приложения.
window.desiredHdrHeadroom = when {
/* только SDR */ -> 0f
/* Смешанный, в основном SDR */ -> 1.5f
/* Смешанный, в основном HDR */ -> 3f
/* только HDR */ -> 5f
else -> 0f
}
#android#hdr#android15