Наконец-то благословение было запущено, стало удаляться в верхние слои стратосферы, и мы, сидящие за столом, расцепили потные руки. В поле моего зрения неотвратимо вдвинулось блюдо с индейкой, которую мне предстояло резать. О, эти скользкие твердые с кровью внутри хрящи! А золотистая кожица, которая на поверку прочнее скотча! Эстер в отличие от Лилиан любила немного подсушить птицу, поэтому грудку приходилось резать тонкими, как лист, ломтиками, иначе посыплются крошки, мясо начнет отваливаться кусочками, и вся работа пойдет насмарку.
Расселись мы за столом в таком порядке (иду по часовой стрелке): Верна, я, Ричи, Дейл, Эстер и Пола на старом высоком стульчике сына, который жена принесла с мансарды. Уставшая от тряского автобуса, от уличной пешей прогулки, от кусания крышки у табакерки, девчушка то и дело проваливалась в сон. Я, хотя и не проваливался, временами клевал носом, отключался на секунду-другую. Оттого такие зияющие провалы в памяти о том, что говорилось во время трапезы.
Раскладывая по тарелкам оранжевые комки вареной тыквы и белые комки картофельного пюре, Эстер спросила Дейла, в чем именно заключается его работа на компьютере.
— Это сложно объяснить, понимаете? Одна из задач, которую приходится решать, — как снизить расход ресурсов памяти в машине и увеличить скорость системы изображений. Для этого надо растровое изображение приблизить к векторному. Вот мы и ищем, как лучше это сделать. При векторном изображении между двумя точками проводится прямая или кривая линия — в зависимости от программы. Таких линий очень много, но машина делает заданные расчеты быстро, и в результате мы видим движущуюся картинку. Растровое изображение похоже на газетную фотографию, оно состоит из множества точек, которые называются пикселями. На экране обычного размера располагается квадрат: пятьсот двенадцать пикселей на пятьсот двенадцать. То есть у нас имеется примерно двести шестьдесят две тысячи элементов вывода, и в каждом постепенно появляется изображение. А чтобы картинка была как в жизни, нужно, чтобы изображение менялось очень быстро. На телеэкране в секунду проходит тридцать кадров. Если помахать пальцами перед экраном, то можно представить себе, как быстро меняется картинка. Но программировать надо не только размеры вещей и их расположение в перспективе. Надо передавать еще и цвет, и свет, и отражения света на предметах, сделанных из разных материалов и разной формы. На нашем столе, к примеру, огромнейшее количество визуальной информации. Посмотрите, как лоснится кожица индейки, как отражается эта ваза в стакане с водой и как в самой вазе отражается вот эта луковица. Посмотрите, как поднимается пар от горячего, как играет красный цвет на гранях ножки бокала — это от клюквенного сока на расстоянии фута. Японцы научились делать поразительные вещи в этом плане. У них над шахматной доской плавают стеклянные шарики, и полупрозрачные цилиндрики, и какие-то кубики. Но для этого надо рассчитать каждый пиксель, как если бы он был маленьким окошком, надо понять, как поведет себя луч, которым ты стреляешь через это окошко, и в какое место он попадет или разделится. — Дейл растопырил пальцы, показывая, как может разделиться луч. Сквозь голые березы и окна с узорчатыми стеклами — ярко-золотистыми, пронзительно-голубыми и ядовито-красными, как клюквенный сок, просвечивало грязно-желтое низкое ноябрьское небо, и в его неверном свете неестественно смотрелся Дейлов багрово-зеленый галстук. — Для расчета некоторых пикселей приходится усреднять пять или шесть разных значений. Как только ты пытаешься скопировать какой-нибудь набор объектов, возникают жуткие сложности. Даже страшно становится.
— Страшно? — переспросила Эстер. Она съела несколько кусочков и сразу же закурила, пуская из ноздрей и рта голубоватые струйки дыма.
— Ну да — пытаться воспроизвести тварный мир в плоскости визуальной информации. Это не то, что фотограф, снимающий пейзаж или группу людей. И даже не то, что художник, который мазками кисти изображает, что находится перед ним. В компьютерной графике в машину закладывается математическое описание объекта, а ты потом выводишь его изображение на экран — с любой стороны, или в перспективе, или в разрезе. Машина делает это в мгновение ока, но иногда процесс затягивается, ты словно чувствуешь, как напрягается компьютер, и секундная задержка кажется вечностью.