Пиксель. История одной точки - Элви Рэй Смит
Шрифт:
Интервал:
Иногда все довольно просто. Например, в некоторые ячейки попадает только далекое голубое небо. Именно такого цвета будут их пиксели. В другие ячейки попадает только пастельно-голубая стена кухни. Дальше пирамида пересекается с соседними зданиями, но это значения не имеет. Стена непрозрачная, поэтому она скрывает все цвета стен здания. Это всё скрытые поверхности. Цвет этих пикселей — это цвет кухонной стены.
Ячейки, в которые попадают стопки посуды, более сложные, но тут все понятно. Я смотрю на стопку сложенных друг на друга бело-голубых суповых тарелок. Пирамида, исходящая из моего глаза, пересекает несколько тарелок одновременно, но они непрозрачны, поэтому только поверхности, непосредственно видимые через ячейку, учитываются при выборе окончательного цвета. Цвет, который мне здесь нужен, — это взвешенная комбинация синего и белого в зависимости от пропорций каждого из них. Все остальные тарелки не имеют значения, синяя стена полки за тарелками не имеет значения, старые желтые здания Стокгольма за стеной не имеют значения, синее небо за ними не имеет значения. Хотя они попадают внутрь маленькой пирамиды, все они скрыты от моего взгляда.
С полкой, на которой стоят стаканы, дело обстоит сложнее. В некоторых ячейках через пять стеклянных стаканов видна пастельно-голубая стена, а значит, что ее синева видоизменяется, проходя через десять частично прозрачных стеклянных стенок, которые отделяют ее от меня.
По-настоящему сложные случаи — это ячейки, направленные на окно. В них видны кусочек герани, частично открытая оконная рама, каштан и либо здания Стокгольма, либо облака в небе за деревом, либо и то и другое. Но проблема остается прежней — определить для каждой ячейки, какие поверхности видны и какой цвет дает каждая из них пропорционально видимой области. Тогда окончательный и единственный цвет, выбранный для соответствующего пикселя, будет средним значением всех этих цветов. Маленькие пирамиды здесь пересекают десятки, а то и сотни поверхностей, каждая из которых вносит свой вклад в итоговое среднее значение.
Компьютерная графика существует не на красивой стокгольмской кухне, а внутри компьютера. Здесь нет ни герани, ни посуды, но есть геометрические модели дерева, стопки суповых тарелок, полки со стаканами и так далее. В остальном решается та же проблема: что видит виртуальная камера в каждой ячейке сетки-экрана и какой там средний цвет?
Трассировка лучей и гиперфотореализм: Центральная Догма на стероидах
Это автопортрет художника — отражение в металлическом шаре, который тот держит в левой руке. Лицо Эшера посередине, но геометрически искажено, так что по краям виден его кабинет. На заднем плане окно, сквозь которое, разумеется, проникает свет, прошедший не менее девяноста трех миллионов миль. Суть доклада заключалась в том, что для точного 3D-компьютерного изображения такого простого объекта, как блестящий шар, нужно учесть каждый объект во вселенной.
— Нил Стивенсон. «Падение, или Додж в Аду» (2019)
Если цель состоит в моделировании оптики реального мира, то в описании из предыдущего раздела чего-то не хватает. Представьте, что луч из вашего глаза через ячейку сетки-экрана направлен в мир за пределами окна. Глаза на самом деле не испускают лучей, но давайте ради эксперимента вообразим, что испускают. Такой фальшивый луч — полная противоположность реального луча света, который отражается от какой-то поверхности в наш глаз. Наш воображаемый луч движется по прямой в окружающий мир, пока не встретится с непрозрачной поверхностью, где и остановится (будем считать небо и облака непрозрачными изображениями, нарисованными на бесконечно далекой плоскости). Если луч из глаза попадает на окно или стакан с водой, он проходит через них до любой непрозрачной поверхности, расположенной далее.
Рис. 8.2
Но на реальные световые лучи влияют материалы, через которые они проходят. Например, через линзы очков. Они преломляют световые лучи для наших глаз. Как правило, световой луч меняет направление — преломляется, — когда проходит через прозрачный материал.
Рассмотрим зеркало, присутствующее в нашей сцене. Луч света отражается от его поверхности под тем же углом, под которым упал на нее. Обычно это формулируется как «угол отражения равен углу падения».
Как правило, в реальном мире световой луч частично преломляется и частично отражается материалом, на который падает. То есть световой луч разделяется на два, когда проходит через поверхность.
Здесь я лишь поверхностно намекнул на сложные оптические свойства материалов. При полном реализме и в соответствии с Центральной Догмой сцена, воспроизводящая материалы реального мира, должна имитировать все настоящие оптические свойства — лучи, попадающие в глаз изо всех направлений, а не только из одной точки прямо впереди. Визуализатор, который точно учитывает все свойства, называется трассировщиком лучей.
Трассировка лучей в той или иной форме прорабатывалась с конца 1960-х годов, но превратилась в расцветающую ветвь компьютерной графики только в 1979 году — с выходом статьи Тернера Уиттеда из легендарной Bell Labs в Нью-Джерси. В публикации рассматривалась не трассировка как таковая, а то, что он назвал «глобальным освещением», — имитация освещения с учетом полной оптической физики реальности. С помощью трассировки лучей он отдавал должное Центральной Догме, а закон Мура поддерживал его попытку сделать существенный бросок в продвижении к «физически обоснованному рендерингу». На конференции Siggraph 1979 года Тернер показал картинку, потрясшую сообщество компьютерной графики (рис. 8.3). На самом деле это кадр из сделанной им анимации вафельной сферы, которая вращалась вокруг стеклянной сферы, с соответствующими тенями и оптическими искажениями. Тернер получил награду Coons Award 2013 от Siggraph.
Визуализация Центральной Догмы с трассировкой лучей или без нее часто описывается как фотореализм. Трассировка лучей, очевидно, способствует усилению фотореализма, но она также поощряет и так называемый гиперфотореализм — увлечение оптическими эффектами просто для визуального наслаждения, а не для повествовательной цели. Очень яркие работы в таком ключе, например, создает французский 3D-художник Жиль Тран (рис. 8.4).
Делать это как обезьяны
Оказалось, что один из самых важных методов, когда-либо разработанных для рендеринга компьютерной графики, используется обезьянами и людьми. Он называется случайная выборка (или распределенная трассировка лучей), но нам следует соблюдать осторожность со словом случайный. На рисунке 8.5 показано, как глаз макаки-резуса делает выборку реального мира. Это фото из номера журнала Science за 1983 год. Белые точки — это расположение фоторецепторов в сетчатке глаза обезьяны.
Рис. 8.3
Мы можем сделать вывод, что мать-природа использует не равномерную, а, скорее, зашумленную растровую сетку для взгляда
Поделиться книгой в соц сетях:
Обратите внимание, что комментарий должен быть не короче 20 символов. Покажите уважение к себе и другим пользователям!