Гло — термин в компьютерной графике и архитектуре¶
Гло (англ. glow — свечение, отсюда также «глоу») — многозначный термин, обозначающий эффект свечения, а также название ряда технологий, программных библиотек и архитектурных компонентов в области компьютерной графики и программирования. В русскоязычной практике слово чаще всего используется в контексте графических эффектов (постобработка, bloom-эффект) и библиотек OpenGL (библиотеки GLOW), а также в именах собственных — например, в названии российской компании «Гло» (Glovo — сервис доставки).
¶Глоу-эффект (bloom) в компьютерной графике
Глоу-эффект (glow effect, bloom) — графический постобработочный эффект, имитирующий свечение ярких объектов за счёт размытия и сложения их ярких участков с исходным изображением. Эффект моделирует физическое явление рассеяния света в оптической системе камеры или глаза.
¶Принцип работы
Алгоритм реализуется в несколько этапов:
- Извлечение ярких участков — из исходного кадра выделяются пиксели, яркость которых превышает заданный порог (threshold).
- Размытие — выделенная область подвергается гауссову размытию (Gaussian blur) или другому фильтру (например, двойному проходу по осям X и Y).
- Композитинг — размытое изображение аддитивно (по сложению) накладывается на исходный кадр.
Параметры эффекта — порог яркости, интенсивность, радиус размытия, цвет свечения — позволяют получить как мягкое сияние, так и выраженный ореол вокруг источников света.
¶Применение
Глоу-эффект широко используется в видеоиграх, кинематографе (при постпродакшене), анимации и интерактивной графике. В игровых движках (Unity, Unreal Engine, Godot) эффект реализован как встроенный модуль постобработки. В библиотеке OpenGL эффект традиционно реализуется средствами фреймбуферов (framebuffer objects, FBO) и шейдеров.
¶GLOW — библиотеки OpenGL
GLOW (OpenGL Wrapper) — название ряда библиотек-обёрток над OpenGL, упрощающих работу с графическим API в языках программирования C++, Python и Java.
- Glow (C++) — библиотека для C++, предоставляющая объектно-ориентированный интерфейс к OpenGL, поддержку шейдеров, текстур и фреймбуферов.
- PyOpenGL / PyGlow — Python-обёртки, используемые в образовательных и научных проектах для визуализации данных.
- GLOW (Java) — реализация OpenGL-контекста для Java-приложений.
Такие библиотеки абстрагируют низкоуровневые вызовы OpenGL, предоставляя удобные классы для управления контекстом, окнами, геометрией и материалами.
¶GLO — глобальная сеть и телекоммуникации
Термин GLO встречается в телекоммуникациях как сокращение от Global — например, в названиях стандартов и сетей (Global Location Optimisation, Global Loop). В российском сегменте интернета GLO ассоциируется с международным сервисом доставки Glovo (основан в 2015 году в Барселоне, работает в России и других странах), где «Glo» — часть названия бренда.
¶Использование в языках программирования
В языке Go (Golang) сокращение «glo» иногда используется как префикс для пакетов, связанных с глобальными переменными или глобальным состоянием (global). В GLSL (языке шейдеров OpenGL) переменные и функции, связанные со свечением, часто имеют префиксы glow, bloom, emissive.
¶Интересные факты
- Термин «bloom» для эффекта свечения популяризирован работой Джима Блума (Jim Blinn) и использованием в движке Unreal Engine.
- В физиологии глаза эффект, аналогичный глоу, называется «блик» или «гало» — он возникает при рассеянии света в стекловидном теле.
- В русском языке слово «гло» не имеет устоявшегося значения и чаще всего воспринимается как транслитерация английского glow.
¶Источники
- OpenGL Programming Guide (Red Book), 9th edition.
- «Real-Time Rendering», Akenine-Möller, Haines, Hoffman.
- Документация Unity Manual: Post Processing — Bloom.
- Документация Unreal Engine: Bloom Effect.
- PyOpenGL Documentation.
