Трёхмерная компьютерная графика
Трёхмерная компьютерная графика, которую иногда называют трёхмерными компьютерными изображениями (3D CGI), это графика, в которой используется трёхмерное представление геометрических данных. Координаты часто бывают декартовыми. Компьютер хранит их, чтобы производить расчёты и строить цифровое изображение. Обычно изображение плоское. Иногда это стереопара или картинка для дисплея, у которого действительно есть глубина. Результат можно сохранить и посмотреть позже в виде анимации или показывать по мере расчёта.
Название обещает объёмную картинку. А получается обычно плоская. В отличие от 3D-фильма, где сам способ показа должен создавать ощущение глубины, у отрендеренного кадра на обычном мониторе нет глубины, которую можно измерить линейкой. У него есть только признаки глубины. Всё чаще те же данные выводят и на дисплеи, у которых глубина есть, в том числе на дисплеи систем виртуальной реальности. Сами данные при этом не изменились. Изменился экран.
Трёхмерная графика отличается от двумерной компьютерной графики, в которой для создания и рендеринга изображения обычно используются другие методы и другие форматы. При этом трёхмерная графика опирается на многие из тех же алгоритмов: векторные методы в каркасной модели, растровые в итоговом изображении. В реальных программах граница размыта. Двумерная программа может использовать трёхмерные приёмы ради эффекта освещения. Трёхмерная программа может использовать двумерные приёмы для прохода, который никак не связан с камерой. Ярлыки на коробке грубее, чем код внутри.
Модель ещё не изображение
Объекты здесь называют трёхмерными моделями. В отличие от отрендеренного изображения, данные модели хранятся в графическом файле. Трёхмерная модель это математическое представление трёхмерного объекта. Строго говоря, графикой она становится, только когда её выводят на экран. Это звучит как придирка, но избавляет от большой путаницы. С моделью можно провести расчёт и ни разу её не нарисовать. Её можно нарисовать плохо, но модель от этого не изменится. При трёхмерной печати модель воплощают в физическом объекте, и физическая вещь может совпадать с виртуальной лишь с определённой точностью. У принтера есть сопло, толщина слоя и материалы, которые провисают. Файл ничего об этом не знает, пока другая программа ему об этом не сообщит.
Создание изображения делится на три этапа.
- Моделирование: создание компьютерной модели формы объекта.
- Компоновка и анимация: размещение и перемещение объектов, моделей, источников света и всего остального внутри сцены.
- Рендеринг: расчёты, которые по источникам света, типам поверхностей и другим свойствам создают изображение.
Построение модели охватывает первые два этапа. Свет и материалы охватывают третий. Между ними находится файл сцены: геометрия, точка обзора, текстуры, источники света. Рендеринг читает этот файл и записывает пиксели.
Сначала каркас, потом затенение
Sketchpad, показанный в 1963 году, был программой для рисования в двух измерениях. В том же году Sketchpad III Тимоти Джонсона расширил его до интерактивных трёхмерных каркасных моделей с перспективным видом рядом с видами сверху, спереди и сбоку. Скрытые рёбра оставались видимыми. Понять, что объект сплошной, можно было, только внимательно разобравшись в линиях. Именно исследования затенения, которые шли до середины 1970-х годов, сделали так, что полигональные модели стали выглядеть гладкими, а не гранёными. Артур Аппель в 1968 году описал поточечное затенение твёрдых тел вместе с задачей определения того, какие области лежат в тени. Метод Анри Гуро 1971 года вычислял освещённость в вершинах полигона и интерполировал её по грани, благодаря чему швы стали менее заметны. Модель Буй Тыонг Фонга 1975 года интерполировала нормали поверхности и вычисляла зеркальную составляющую в каждом отсчёте, благодаря чему на полигональном приближении кривой поверхности появлялся более чёткий блик.
Одним из первых фильмов, где кинозрители увидели такую анимацию, стал Мир будущего 1976 года. В него вошли лицо и рука, которые Эдвин Кэтмелл и Фред Парк, тогда ещё студенты в Юте, сделали для короткометражки 1972 года A Computer Animated Hand. В конце того же десятилетия своего рода трёхмерные программы появились и на домашних компьютерах. 3D Art Graphics, написанная Кадзумасой Митадзавой, вышла в июне 1978 года для Apple II.
Модель освещения Тёрнера Уиттеда 1980 года продолжала лучи дальше первой поверхности, так что отражение, преломление и тени от точечных источников рассчитывались вместе. Он продлевал лучи, выпущенные от зрителя (этот метод он возводил к Аппелю), а не лучи, прослеживаемые от источников света. В 1984 году Роберт Л. Кук, Томас Портер и Лорен Карпентер опубликовали распределённую трассировку лучей, заменив точные вторичные лучи стохастическими отсчётами. Размытие движения, глубина резкости, полутени, полупрозрачность и глянцевые отражения входят в число эффектов, которые можно получить с помощью таких отсчётов. Уравнение рендеринга, которое Джеймс Каджия представил на SIGGRAPH в 1986 году, записывает перенос света в виде одного интегрального уравнения. Модель Уиттеда и распределённая трассировка лучей это его приближения. Трассировка путей, решение методом Монте-Карло, которое описал Каджия, охватывает более широкий круг оптических эффектов, чем фиксированное дерево лучей отражения и преломления.
Для полнометражной анимации Кук, Карпентер и Кэтмелл в 1987 году описали архитектуру Reyes. Каждую поверхность разбивают на микрополигоны, затеняют в собственных координатах этой поверхности и проверяют на видимость с помощью стохастической выборки в z-буфер. Художники Pixar построили модели для Истории игрушек (1995) на рабочих станциях Silicon Graphics и Sun, а кадры рассчитал RenderMan. Режиссёром фильма был Джон Лассетер. Это был первый полнометражный фильм для кинотеатров, изображение в котором полностью создал компьютер.
31 августа 1999 года Nvidia представила GeForce 256, микросхему, которая объединила преобразование, освещение и рендеринг, и назвала её первым в мире GPU. У более ранней истории графических микросхем своё «первое», и о нём рассказано в истории рабочих станций. Шлем-дисплей для виртуальной реальности запатентовали в 1960 году. Проект Oculus Rift начался с кампании на Kickstarter в 2012 году. Разрыв между этими датами это разрыв между патентом и продуктом, который человек мог заказать.
Всё это вовсе не требует, чтобы изображение было похоже на фотографию. Модель можно намеренно отрендерить в определённом художественном стиле. А изображение может казаться объёмным и вовсе без модели. Но это уже другая тема: картинки, которые только кажутся объёмными.
