• A
  • A
  • A
  • АБВ
  • АБВ
  • АБВ
  • А
  • А
  • А
  • А
  • А
Обычная версия сайта

История 3D-графики: от Евклида до наших дней

В рамках проекта «Университет, открытый городу: Лекции молодых ученых Вышки в Культурном центре ЗИЛ» старший преподаватель департамента компьютерной инженерии Алексей Соболевский рассказал о том, как человечество научилось воспринимать и воспроизводить мир объемным.

Геометрия на компьютере

Первую кафедру компьютерной графики, в Университете Юты, открыли в 1960-х годах Айван Сазерленд и Дэвид Эванс. Сазерленд создал программу, которая являлась прообразом всех современных 3D-редакторов и CAD-систем — Sketchpad. На кафедре Сазерленда и Эванса работали такие люди, как Джим Блинн (создатель многих алгоритмов текстурирования), Би Тюн Фонг и Анри Гуро, которые также приложили руку к развитию алгоритмов затенения и текстурирования (Phong shading и Gouraud shading). Студентом Сазерленда также был Эд Катмулл — впоследствии технический директор и президент Pixar Animation Studios, кинокомпании, которая подарила нам «Историю игрушек», первый полнометражный анимационный фильм, созданный в трехмерных редакторах и программах трехмерной анимации. Его сборы по миру превысили 380 миллионов долларов, его триквел стал первым анимационным фильмом, собравшим в мировом прокате более миллиарда долларов, а про славу, которую этот мультфильм принес компании Pixar, даже говорить не нужно.

Но «История игрушек» вышла на экраны в 1995 году, а премьера первого фильма с использованием отдельных элементов трехмерной графики (Futureworld) состоялась еще в 1976-м. В то же время создавались первые программы 3D-моделирования, первые алгоритмы трассировки лучей для рендеринга трехмерной сцены и активно развивался полигональный метод моделирования трехмерных объектов, который сейчас является основным.

В середине 1980-х появились первые стандарты и адаптеры для обработки двумерной графики — MGA, CGA, EGA. Сейчас это кажется странным, но в начале 1980-х палитра в 16 цветов была пределом мечтаний для любителей компьютерной графики, да и из этой палитры можно было одновременно использовать только 4 цвета для вывода изображения. А разрешения экранов вообще измерялись не пикселями, как сейчас, а строками, так как в то время еще не стояла остро задача выводить изображения на дисплей.

Все открытия, которые были сделаны в математике до XX века, так или иначе являются базисом современной трехмерной графики

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

В 1998 году частоты, на которых работала память видеокарты, были в сто раз меньше, чем сейчас; объем памяти за это время вырос практически в тысячу раз. Про производительность даже говорить не приходится — видеокарты конца 90-х не могут решить и малой доли задач, которые современные видеокарты выполняют сотни раз в секунду.

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

Создатели пространства

Евклид нам известен больше как основоположник «евклидовой геометрии», но мало кто понимает, что аксиомы, которые он ввел в своем 13-томном собрании «Начала», были многократно доработаны и формализованы, прежде чем дошли до наших дней. Однако его трактат является одним из первых действительно систематизированных собраний аксиом и теорем в области математики и геометрии.

Все (ну или почти все) знают про формулы Виета для нахождения корней квадратичного уравнения, однако многим ли известно, что именно он положил начало символьному анализу в алгебре, в результате чего все мы сейчас обозначаем неизвестные как x, y или z, а коэффициенты — как a, b, c? Без его трудов ни одна формула, отражающая функцию в трехмерном пространстве, не выглядела бы так, как она выглядит сейчас.

А что же Декарт? Из школьных учебников мы помним про декартово произведение и декартову систему координат, однако нам забывают объяснить, что свои открытия этот человек делал во времена инквизиции. Решиться на то, чтобы опубликовать труды по аналитической геометрии, когда «наградой» за научное открытие могло стать аутодафе, требовало немалого мужества. Именно исследования Декарта стали решающим шагом в переходе к понятию «функция», а без «функции» не существовало бы современной математики, программирования и многих других областей.

Интересно, могли ли Евклид, Декарт и Эйлер представить, какой технологический прорыв готовят их открытия? Могли ли вообразить, что люди создадут экран, с которого мы читаем этот текст

Спустя десятилетия после Декарта в математике наступила эпоха Эйлера. Он положил начало топологии, написал первый учебник по аналитической геометрии и основам дифференциальной геометрии. Кстати, Густав Эйлер почти полжизни прожил в России, был здесь избран академиком и даже похоронен в Санкт-Петербурге.

В истории 3D-графики не обошлось и без других российских ученых. Так, в начале XX века в России жили Борис Делоне и Георгий Вороной. Первый предложил метод триангуляции, который стал основой для создания современных методов разбиения поверхности трехмерных объектов на так называемые полигоны. Второй создал «диаграмму Вороного», которая тесно связана с триангуляцией Делоне. Прошло сто лет, а математическая составляющая этой диаграммы и сейчас применяется в анализе данных при кластеризации объектов.

Помимо алгоритмов развивались техника и технологии для обработки подобного рода информации. Нельзя не упомянуть имя Алана Тьюринга, который участвовал в разработке первого транзисторного компьютера в мире — «дедушки» современных iMac’ов и PC. В 1956 году Уильяму Шокли, Джону Бардину и Уолтеру Браттейну была присвоена Нобелевская премия по физике за открытие биполярных транзисторов. На транзисторах сейчас базируется практически вся электроника включая видеокарты современных компьютеров. Конечно, на развитие современной полупроводниковой схемотехники повлияли и исследования Жореса Алферова, также лауреата Нобелевской премии.

Что дальше?

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

Кластеры, в которые объединяют графические адаптеры, используются в совершенно разных областях — химии, прикладной физике, наноэлектронике, медицине. Благодаря технологическим возможностям видеокарт ученые, моделируя процесс свертывания белков, могут быстрее найти, к примеру, лекарство от рака или болезни Альцгеймера. По результатам таких проектов пишутся сотни научных работ на темы, уже не связанные непосредственно с трехмерной графикой.

Современные вычислительные мощности, используемые в этих проектах, являются прямым результатом эволюции человеческой мысли, трудов сотен философов, математиков и инженеров. Интересно, могли ли Евклид, Декарт и Эйлер представить, какой технологический прорыв готовят их открытия? Могли ли вообразить, что люди создадут экран, с которого мы читаем этот текст, и технику, которая обрабатывает и выводит символы и изображения?