Кажется, что современные технологии 3D-моделирования умеют абсолютно все: создавать реалистичные картинки, имитировать любые материалы, воспроизводить сложные движения и даже проектировать то, чего не существует в реальной жизни. Все это — достижения последних пятидесяти лет: примерно столько прошло с первых попыток создать элементарную трехмерную графику. Вспоминаем, как это было.
Пионером 3D-моделирования можно назвать американского ученого Айвена Сазерленда, который работал в области информатики. Еще будучи аспирантом, он создал программу SketchPad, которая стала прообразом современных программ 3D-моделирования, а также первый шлем виртуальной реальности, который был настолько тяжелым, что его приходилось подвешивать к потолку (поэтому его называли «Дамоклов меч»).
Айвен Сазерленд и его Sketchpad — первая программа 3D-моделирования
Шлем виртуальной реальности, разработанный Айвеном Сазерлендом
У Сазерленда было множество учеников, которые внесли огромный вклад в развитие компьютерной графики. Например, Буй Тонг Фонг создал эмпирическую модель расчета освещения трехмерных объектов, которая так и называется — Phong reflection model. Впоследствии ее усовершенствовал еще один студент Сазерленда — Джим Блинн. Сейчас настройки параметров материалов «по Блинну» можно увидеть в 3Ds Max и других программах моделирования.
Свиток с настройками параметров материалов по Блинну в 3Ds Max
Другие студенты Сазерленда тоже вписали свои имена в историю 3D. Например, Анри Гуро придумал метод затенения полигональных моделей, который позволил имитировать гладкие поверхности, а Эд Катмулл стал одним из основателей легендарной студии Pixar, выпустившей первый полнометражный компьютерный мультфильм «История игрушек». Впрочем, лавры самого первого в истории 3D-мультика принадлежат другому ролику — короткометражке «Приключения Андре и пчелки Уолли», которую создал еще один основатель Pixar Джон Лассетер в 1984 году. А 25 лет спустя, в 2009-м на экраны вышел потрясающе красивый «Аватар», который весьма наглядно продемонстрировал, как сильно продвинулась индустрия 3D за четверть века.
Кадр из мультфильма "Приключения Андрэ и пчелки Уолли", 1984
Кстати, в Советском союзе тоже создавали компьютерные мультфильмы, правда не 3D, а 2D, зато задолго до Pixar — в 1968 году. Речь о мультике «Кошечка», в котором зрители могут увидеть бегущую кошку с усами и длинным хвостом. Все кадры этого видео были смоделированы на компьютере БЭСМ-4 с помощью дифференциальных уравнений, а затем распечатаны и немного доработаны художником (но не везде).
Кадр из мультфильма «Кошечка», 1968 год
Постепенно начали появляться и трехмерные игры. Одну из первых в 1976-м создали программисты NASA, у которых был доступ к мощным компьютерам. Игра называлась Maze War: игрокам нужно было сражаться друг с другом в трехмерном лабиринте, нарисованном ровными прямыми линиями. Но обычным людям подобные развлечения были недоступны, так как производительные (по тем временам) компьютеры были громоздкими, стоили очень дорого и почти не встречались у частных пользователей — доступ к ним имели только инженеры и программисты. Поэтому массовая двух- и трехмерная графика поначалу развивалась в аркадных автоматах и игровых консолях. Например, в 1980 году в автомате можно было сыграть в 3D-игру Battlezone, созданную известными американскими разработчиками игр Atari. В этой игре нужно было управлять примитивным трехмерным танком и сражаться на поле боя с другими танками.
Игра Battlezone с трехмерным танком
Но со временем компьютеры становились более доступными, а значит появлялись и игры для них, в том числе 3D и псевдо-3D — DOOM, Quake, Descent, Wing Commander III. Правда, качество графики тогда оставляло желать лучшего. Поэтому для улучшения игрового опыта были разработаны первые видеокарты, а точнее графические ускорители, которые работали в паре с обычной 2D-видеокартой. Сейчас их параметры выглядят довольно смешно — например, у культовой 3Dfx Voodoo, выпущенной в 1996 году, был графический процессор на 50 МГц и 4 Мб памяти. Но тогда это был прорыв: ускорители заметно улучшали качество картинки, отображали более детализированные текстуры, просчитывали несложный свет.
Half-Life 3D-ускорителем 3Dfx Voodoo (справа) и без него (слева)
Параллельно с играми развивалось и компьютерное 3D-проектирование — как в области развлечений, так и для других задач, например инженерных. Одной из значимых фигур в этой индустрии был Патрик Хэнретти, первопроходец в создании компьютерных систем проектирования САПР. Он создал первую коммерчески успешную программу Аnvil-4000 — именно она стала предшественницей хорошо знакомого нынешним проектировщикам AutoCAD (он появился почти на 10 лет позднее Anvil - в 1982-м). В 1990-м вышел легендарный 3Ds Max, написанный под операционную систему DOS; позже его адаптировали под Windows, а с 2005 он стал частью компании Autodesk.
ANVIL-4000 - самое начало САПР
Одна из самых важных составляющих 3D-графики, благодаря которой индустрия во многом стала такой, какая она есть сейчас — это трассировка лучей. Под ней подразумевается компьютерный просчет взаимодействия света с поверхностями трехмерной сцены: падение, отражение, преломление, рассеивание лучей от одного или нескольких источников света. Чем точнее просчитывается это взаимодействие, тем более реалистичной получается картинка. Методы, используемые при трассировке лучей в 3D, были позаимствованы у физиков-ядерщиков и производителей оптических систем.
Игра «Portal With RTX» без трассировки лучей (вверху) и с трассировкой (внизу)
До недавнего времени трассировка лучей в программах трехмерного моделирования была возможна только при рендеринге — то есть при финальном просчете сцены, превращающем компьютерную модель в готовую картинку. Однако в 2018 году компания NVIDIA совершила прорыв, выпустив видеокарты с архитектурой Turing, оснащенные специальными процессорами для трассировки лучей — ядрами RT. Они способны рассчитывать перемещение 10 миллиардов лучей в секунду, то есть, фактически, производить трассировку в реальном времени. Но самое интересное, что такие видеокарты получили не только десктопы, но и ноутбуки. Например лэптоп ConceptD 3 Ezel созданный специально для творчества, оснащен видеокартой NVIDIA GeForce RTX 3050 Ti. Это уже второе поколение видеокарт с ядрами RT — на архитектуре Ampere. Такие видеокарты еще больше ускоряют трассировку лучей, как в играх, так и в 3D-моделировании.
Ноутбук ConceptD 3 Ezel с видеокартой GeForce RTX 3050 Ti на архитектуре Ampere с RT-ядрами второго поколения
Очень интересно сравнивать этот ноутбук с первыми компьютерамиами, на которых создавалась 3D графика. Неповоротливые шкафы, занимавшие пол-комнаты, всего за полвека превратились в изящные и компактные устройства, на которых можно создавать любые трехмерные проекты в реальном времени. Впрочем, играть в компьютерные игры на таких ноутбуках тоже классно — как в новые типа Control, так и в обновленные классические, например, Minecraft RTX с трассировкой лучей. А еще ConceptD 3 Ezel официально доступен для покупки в России.