Компьютерная графика

Компьютерная графика

Что такое компьютерная графика

Компьютерная графика — это визуальный контент для отображения на мониторах, проекторах и очках виртуальной реальности, созданный при помощи компьютера. В английском есть аналогичный термин computer graphics, часто сокращаемый до аббревиатуры CG.

Компьютерная графика используется в таких сферах, как кино, мультфильмы, компьютерные игры, приложения, VFX, VR/ AR, 3D-печать, реклама, дизайн, наука, бизнес, инженерное дело, строительство и образование.

Ниже подробнее рассмотрим историю, области применения и классификацию компьютерной графики.

История компьютерной графики

Впервые необходимость в отображении изображения на дисплее возникла не в индустрии развлечений, а в науке и авиации — для создания экрана радара самолёта. Вскоре после этого на экране обычного осциллографа была создана Tennis for Two для развлечения посетителей, пришедших на день открытых дверей в Брукхейвенскую национальную лабораторию.

Важной вехой в развитии компьютерной графики стало появление устройств ввода информации. Американский учёный Айвен Сазерленд создал программу Sketchpad, работая в которой, пользователь мог рисовать на экране фигуры при помощи стилуса на фотоэлементах. Полученные рисунки можно было сохранить и загрузить в память повторно. В основе многих алгоритмов современных программ лежат процессы, придуманные Сазерлендом в 60-х годах XX века.

Активное развитие компьютерная графика получила, когда в ней увидели потенциал многомиллионные корпорации. Например, компания Boeing использовала CG для исследования вибрации фюзеляжа самолёта. А компания Renault поручила своему инженеру Пьеру Безье разработать технологию проектирования корпусов машин. Математические модели, которые создал инженер, получили его имя — так появились кривые Безье.

В семидесятые годы графика начала делать первые шаги к фотореализму. Появился алгоритм определения видимой поверхности — теперь то, что пользователь видел на экране, зависело от его угла обзора. Если объект «дом» находился за предметом «забор», то зритель видел объект «забор» полностью, а объект «дом» только частично. Появились технологии шейдинга (при помощи bump-текстур простые объекты стали казаться рельефнее) и знаменитая тестовая модель «Чайник из Юты» (см. изображения ниже). Появились аркадные игры Pong, Space Invaders, Gun Fight. Джордж Лукас начал создавать оригинальную трилогию «Звёздных войн».
В 1980-е, благодаря аркадным автоматам, игры стали доступны широкой аудитории. Появились персональные компьютеры с графическим пользовательским интерфейсом. Процессоры становились мощнее, совершенствовались технологии рендеринга изображения, появилась технология глобального освещения, хромакей. В фильме «Молодой Шерлок Холмс» появился первый персонаж, созданный при помощи компьютерной графики в графическом редакторе студии Pixar. На создание 30 секунд инновационной анимации ушло полгода.

В следующем десятилетии графические процессоры эволюционировали настолько, что домашние компьютеры стали способны рендерить картинку, для которой раньше требовались месяцы работы больших студий. Появились технологии OpenGL и DirectX, игровые приставки, 3D-гонки и 3D-файтинги. В 1995 году Pixar выпустила «Историю игрушек» — первую полнометражную компьютерную анимацию.

В 2000-х реалистичность компьютерной графики достигла такого уровня, что появился термин «эффект зловещей долины» — разработчики поняли, что если искусственно созданный персонаж слишком похож на человека, это начинает отталкивать зрителя. Вспомните, к примеру, Соника или персонажей из мюзикла «Кошки». Появилась возможность перераспределения математических вычислений с центрального процессора на графический процессор видеокарты, что увеличило точность и производительность рендера.

В 2013 Google выпустила на массовый рынок первые очки дополненной реальности. Однако, было бы неправильно назвать эту технологию новинкой. Первый наголовный дисплей создал уже знакомый нам Айвен Сазерленд ещё в 1966 году. Главное, почему этим устройствам так долго пришлось ждать своего часа, — это технологические ограничения и цена. Со временем очки виртуальной реальности стали компактнее и дешевле, что позволило VR стать одной из самых перспективных ниш на IT-рынке.

Где применяется компьютерная графика

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

Индустрия развлечений
CG нужна для создания окружения (от реалистичного до стилизованного), персонажей, спецэффектов и интерфейсов. Также графика используется для того, чтобы оживлять воображаемые миры и создавать сцены, которые слишком опасно снимать в реальности. При этом пайплайны кино и игр тесно связаны — так, например, в кино всё чаще используют игровой движок Unreal Engine.

Сфера искусства
Двухмерная графика произвела революцию и в мире искусства, предоставив художникам новый способ для выражения идей. Художники используют графические пакеты для создания картин, иллюстраций и анимации. CG в несколько раз ускорило работу художников. При этом поднялась планка входа в индустрию: теперь от начинающих художников ждут не только знание Photoshop, но и свободное владение пакетами 3D-моделирования, умения накладывать текстуры и генерировать частицы.

За несколько десятилетий использование компьютерной графики стало настолько распространённым, что многие галереи мира оцифровали свои произведения искусства и предлагают посетителям виртуальные туры по музейным залам.

Проектирование и строительство
Архитекторы, инженеры и дизайнеры используют графические пакеты для создания реалистичных цифровых макетов зданий и интерьеров. Работа над современным строительным проектом начинается с разработки его информационной цифровой модели в ArchiCAD, Softdesk или Renga. Цифровые планы зданий позволяют спроектировать сразу несколько вариантов дизайна, проанализировать безопасность для будущих жильцов и оценить общую эстетику проекта.

Реклама
Компьютерная графика используется в рекламе для создания визуально привлекательного контента, который запомнится целевой аудитории. Чем выше узнаваемость бренда, тем легче его продвигать. CG используется в рекламе для создания логотипов, сайтов, приложений, упаковки продуктов, буклетов и анимационных видеороликов.

Медицина
Сферы применения компьютерной графики не ограничиваются развлекательным контентом. Компьютерная графика играет важную роль в таких методах медицинской визуализации, как компьютерная томография (КТ), магнитно-резонансная томография (МРТ) и ультразвук. Алгоритмы CG используются для улучшения качества изображения за счёт уменьшения шума, улучшения контрастности и исправления артефактов. 3D-технология стала особенно полезна в ортопедической и черепно-лицевой хирургии. Другая важная для медицины CG-технология — это симуляция. Хирургические симуляторы создают виртуальную среду, в которой студенты-медики могут выполнять учебные операции на виртуальных пациентах.

Наука
Трёхмерная графика и 2D используются в научных исследованиях для визуального представления сложных данных и явлений. При помощи CG учёные создают подробные визуализации научных концепций, моделей, симуляций и результатов экспериментов. Это облегчает обмен информации между исследователями в различных областях, включая физику, химию, биологию, астрономию, геологию и медицину.

Образование
Используя интерактивную графику, преподаватели могут сделать занятия более наглядными и интересными. Иллюстрации, презентации, анимация и 3D-модели помогают студентам лучше понять абстрактные идеи, природные явления и ход исторических событий. Трудно представить защиту современных дипломов любых специальностей без применения мультимедиа: слайдов, картинок и схем, созданных при помощи компьютерной графики.

Основные виды компьютерной графики

Компьютерную графику можно разделить на два больших направления: двухмерную и трёхмерную. 2D-изображение плоское, тогда как у 3D-объектов появляется третье измерение — глубина. 3D сегодня набирает большую популярность, но двухмерную графику вытеснить с рынка сложно, без 2D не создать концепты, текстуры и другой контент, необходимый для производства трёхмерной графики.

Двухмерная графика (2D)

Двухмерную графику можно разделить на две большие группы.

Виды двухмерной графики:
  • растровая графика;
  • векторная графика.

Растровая графика
Растровое изображение состоит из сетки пикселей. Каждый пиксель содержит информацию о своём цвете и положении на сетке. Растровая графика зависит от разрешения, то есть её качество определяется количеством точек на дюйм (DPI).

Интересный пример применения растровой графики — это пиксель-арт, который сегодня можно увидеть в инди-играх, анимации и графическом дизайне. Это форма цифрового искусства, где для создания изображений используются пиксели. У каждого пикселя свой цвет, и в сочетании друг с другом они образуют цветные «мозаики». Эта технология появилась в ранних компьютерных играх 1980-х годов из-за технических ограничений того времени — экраны просто не были рассчитаны на более совершенную графику. Но широко используется и в наши дни благодаря своей эстетичности и нетребовательности к ресурсам. Примеры пиксель-арт игр: Blasphemous, Stardew Valley, Graveyard Keeper, To the Moon.

Растровые графические редакторы: Adobe Photoshop, GIMP, Krita, PhotoFiltre, Paint.NET и Canva.

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

Векторная графика нашла широкое применение в типографике — искусстве создания шрифтов. Если растровые шрифты проектируются под заранее известный размер, то векторные можно увеличивать или уменьшать до любого размера. Эргономичные шрифты, размеры, стили, интервалы и выравнивания используются для создания визуально привлекательного и читаемого текста в графическом дизайне, рекламе, веб-дизайне и печатных СМИ.

Векторные графические редакторы: Adobe Illustrator, CorelDraw, Inkscape и Figma.

Трёхмерная графика (3D)

Существует несколько способов создать 3D-модель. Каждый из них имеет свои плюсы и успел занять свою нишу в сфере трёхмерной графики. Ниже разберём несколько интересных примеров.

Создание примитивов
Примитив — это минималистичная трёхмерная фигура (куб, сфера, цилиндр, пирамида), которую можно создать в любом 3D-пакете в два клика. Примитивы часто используются для блокинга — подготовительного этапа моделирования, на котором геймдизайнер, двигаясь от общего к частному, создаёт силуэт персонажа или план локации для игры.

Полигональное моделирование
У любой точки (их в полигональном моделировании ещё называют вертексы) в пространстве есть три координаты: x, y, z. Если взять три вертекса и соединить их между собой, получится треугольник — полигон. Часто полигонами называют два треугольника, образовавшие квадрат, а отдельный треугольник — трис. Суммарное количество полигонов в объекте или сцене называют «поликаунт». Перемещая точки в пространстве и создавая новые полигоны, художники создают разные объекты — от персонажей до объектов архитектуры. Пожалуй, создание полигонального 3D одна из самых востребованных в играх область применения компьютерной графики.

NURBS-моделирование
Моделирование 3D-объектов из кривых часто сравнивают с векторной 2D-графикой. Художник задаёт форму кривой, а программа (этот инструмент есть почти во всех современных пакетах 3D-графики) рассчитывает на её основе сложные гладкие поверхности. Кривую легко редактировать и масштабировать — программа быстро пересчитает математическую формулу и обновит 3D-объект. NURBS-моделирование популярно у инженеров-конструкторов при создании технических чертежей.

Скульптинг
Этот способ похож на полигональное моделирование в пакетах 3ds Max или Autodesk
Maya, но у вас в руках другие инструменты. Вместо манипуляторов перемещения, вращения и масштабирования в ZBrush у вас набор кистей. С помощью них вы работаете с моделью как с глиной, постепенно увеличивая количество полигонов для большей детализации. Без скульптинга сложно представить моделирование органики: людей, животных и вымышленных существ.

Процедурное моделирование
Создание объектов в трёхмерной графике происходит не только при редактировании объекта напрямую (как, например, в случае со скульптингом). Другой подход — создание модели из набора правил и алгоритмов путём соединения нод и программного кода. Процедурное моделирование часто используют в кино для генерации уникальных предметов, имитации природных явлений, симуляции разрушений и других целей. Есть в таких пакетах, как Houdini, Blender, Cinema 4D, Modo, SpeedTree.

Фотограмметрия
Ещё один способ создания 3D-модели — воссоздание объекта по фотографиям, сделанным с нескольких ракурсов. Фотографии загружаются в специальную программу (например, RealityCapture или 3DF Zephyr) и на выходе получается реалистичная высокополигональная модель, довольно близко передающая детали оригинала. Однако, автоматически сгенерированная сетка полигонов будет далека от идеальной: чтобы использовать такие модели для игр и фильмов, их придётся доработать и почистить от артефактов.

Симуляция
Для спецэффектов согласно законам физики (полёт стрелы в Skyrim, отскок мяча в FIFA, столкновение машин в GTA) вам потребуется создать симуляцию. Для этого в сцене разрабатывается специальный объект с соответствующими настройками. К примеру, для получения реалистичного костра понадобится указать количество частиц, их цвет и направление движения. Компьютер рассчитает, как частицы будут двигаться и что произойдёт в каждом кадре, когда мы запустим рендер. Анимация огня, дыма, взрывов, колыхания воды и поведения объектов в 3D-сцене делается при помощи симуляций, и это не полный список возможностей, которые представляет компьютерная графика.

Воксельное моделирование
Воксель — это пиксель, получивший третье измерение. Впервые воксели появились в медицине, для отображения результатов компьютерной томографии. После этого рендеринг на основе вокселей начали использовать в играх и кино. Выше мы рассказывали о пиксель-арте — популярном направлении 2D-арта. В 3D есть нечто похожее — воксель-арт. Примеры игр, использующих комбинацию воксель-арта и полигональных моделей: Monument Valley, Minecraft, Roblox.

Будущее компьютерной графики

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

Реалистичный Real-Time рендеринг
Одним из наиболее заметных трендов в компьютерной графике становится стремление к реалистичному рендерингу в реальном времени. Способность генерировать высококачественную графику с интерактивной частотой кадров позволяет добиться большего погружения пользователя. В пятой версии игрового движка Unreal Engine появилось много инструментов (к примеру, технология глобального освещения Lumen и технология микрополигональной геометрии Nanite), которые помогут геймдизайнерам и режиссёрам создавать визуальные эффекты кинематографического качества, не располагая студийным оборудованием.

Искусственный интеллект и машинное обучение
Интеграция искусственного интеллекта и машинного обучения в пайплайны компьютерной графики может произвести революцию в том, как создаётся и визуализируется контент. Эти технологии уже внесли вклад в различные области, включая компьютерное зрение и обработку естественного языка. В компьютерной графике эти методы можно использовать для автоматизации трудоёмких задач, улучшения пайплайнов создания контента и повышения реалистичности визуализируемых сцен. Например, алгоритмы ИИ можно использовать для генерации реалистичных текстур или автоматической анимации персонажей на основе данных motion capture.

Развитие VR\AR технологий
Технологии виртуальной реальности (VR погружает пользователей в полностью виртуальную среду) и дополненной реальности (AR накладывает цифровой контент на реальный мир) быстро набирают популярность и окажут существенное влияние на компьютерную графику в недалёком будущем. По мере развития этих технологий будет возрастать потребность в более сложном и реалистичном контенте для улучшения эффекта погружения. Сюда можно отнести разработки в таких областях, как 3D-моделирование, рендеринг и виртуальные интерфейсы, которые находят всё большее применение по мере развития графики.

Другие статьи: