ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 26.10.2023
Просмотров: 119
Скачиваний: 2
-
История 3D графики -
Основоположники -
Виды 3D графики
-
Применение
Но время шло, на смену видеоадаптерам пришли комбинации в виде адаптера и 3D-ускорителя, отвечающего исключительно за обработку трехмерных объектов, потом эти разные по классу устройства объединились в одно — видеокарту, обрабатывающую сразу и 2D-, и 3D-графику. К классическим обработчикам графической информации добавились специальные обработчики шейдеров — микропрограмм, которые сейчас отвечают за обработку большинства довольно сложных визуальных эффектов (бликов, дыма, отражений).В 1998 году частоты, на которых работала память видеокарты, были в сто раз меньше, чем сейчас; объем памяти за это время вырос практически в тысячу раз. Про производительность даже говорить не приходится — видеокарты конца 90-х не могут решить и малой доли задач, которые современные видеокарты выполняют сотни раз в секунду.Но в основе этого прогресса, да и самой идеи передачи трехмерного изображения, лежат научные открытия, сделанные даже не десятки, а сотни и тысячи лет назад. Без геометрии и функций невозможно задать поверхность в пространстве, без описания поверхности невозможно создать ее представление в компьютерной графике с помощью кривых, полигонов или вокселей. Все открытия, которые были сделаны в математике до XX века, так или иначе являются базисом современной трехмерной графики.Создататели пространстваЕвклид нам известен больше как основоположник «евклидовой геометрии», но мало кто понимает, что аксиомы, которые он ввел в своем 13-томном собрании «Начала», были многократно доработаны и формализованы, прежде чем дошли до наших дней. Однако его трактат является одним из первых действительно систематизированных собраний аксиом и теорем в области математики и геометрии.Все (ну или почти все) знают про формулы Виета для нахождения корней квадратичного уравнения, однако многим ли известно, что именно он положил начало символьному анализу в алгебре, в результате чего все мы сейчас обозначаем неизвестные как x, y или z, а коэффициенты — как a, b, c? Без его трудов ни одна формула, отражающая функцию в трехмерном пространстве, не выглядела бы так, как она выглядит сейчас.А что же Декарт? Из школьных учебников мы помним про декартово произведение и декартову систему координат, однако нам забывают объяснить, что свои открытия этот человек делал во времена инквизиции. Решиться на то, чтобы опубликовать труды по аналитической геометрии, когда «наградой» за научное открытие могло стать аутодафе, требовало немалого мужества. Именно исследования Декарта стали решающим шагом в переходе к понятию «функция», а без «функции» не существовало бы современной математики, программирования и многих других областей.
Спустя десятилетия после Декарта в математике наступила эпоха Эйлера. Он положил начало топологии, написал первый учебник по аналитической геометрии и основам дифференциальной геометрии. Кстати, Густав Эйлер почти полжизни прожил в России, был здесь избран академиком и даже похоронен в Санкт-Петербурге.В истории 3D-графики не обошлось и без других российских ученых. Так, в начале XX века в России жили Борис Делоне и Георгий Вороной. Первый предложил метод триангуляции, который стал основой для создания современных методов разбиения поверхности трехмерных объектов на так называемые полигоны. Второй создал «диаграмму Вороного», которая тесно связана с триангуляцией Делоне. Прошло сто лет, а математическая составляющая этой диаграммы и сейчас применяется в анализе данных при кластеризации объектов.Виды
-
Воксельная графика
Воксельную графику используют в медицине. Все эти ваши томографии, МРТ и УЗИ визуализируют именно в вокселях.Полигональная графикаПолигональная сетка (жарг. меш от англ. polygon mesh) — это совокупность вершин, рёбер и граней, которые определяют форму многогранного объекта в трёхмерной компьютерной графике и объёмном моделировании. Гранями обычно являются треугольники, четырёхугольники или другие простые выпуклые многоугольники (полигоны), так как это упрощает рендеринг, но сетки могут также состоять и из наиболее общих вогнутых многоугольников, или многоугольников с отверстиями. Учение о полигональных сетках — это большой подраздел компьютерной графики и геометрического моделирования. Множество операций, проводимых над сетками, может включать булеву алгебру, сглаживание, упрощение и многие другие. Разные представления полигональных сеток используются для разных целей и приложений. Для передачи полигональных сеток по сети используются сетевые представления, такие как «потоковые» и «прогрессивные» сетки. Объёмные сетки отличаются от полигональных тем, что они явно представляют и поверхность и объём структуры, тогда как полигональные сетки явно представляют лишь поверхность, а не объём. Так как полигональные сетки широко используются в компьютерной графике, для них разработаны алгоритмы трассировки лучей, обнаружения столкновений и динамики твёрдых тел.Объекты, созданные с помощью полигональных сеток, должны хранить разные типы элементов, такие как вершины, рёбра, грани, полигоны и поверхности. Во многих случаях хранятся лишь вершины, рёбра и либо грани, либо полигоны. Рендерер может поддерживать лишь трёхсторонние грани, так что полигоны должны быть построены из их множества, как показано на рис. 1. Однако многие рендереры поддерживают полигоны с четырьмя и более сторонами, или умеют триангулировать полигоны в треугольники на лету, делая необязательным хранение сетки в триангулированной форме. Также в некоторых случаях, таких как моделирование головы, желательно уметь создавать и трёх- и четырёхсторонние полигоны. Вершина — это позиция вместе с другой информацией, такой как цвет, нормальный вектор и координаты текстуры. Ребро — это соединение между двумя вершинами. Грань — это замкнутое множество рёбер, в котором треугольная грань имеет три ребра, а четырёхугольная — четыре. Полигон — это набор компланарных (лежащих в одной плоскости) граней. В системах, которые поддерживают многосторонние грани, полигоны и грани равнозначны. Однако, большинство аппаратного обеспечения для рендеринга поддерживает
лишь грани с тремя или четырьмя сторонам, так что полигоны представлены как множество граней. Математически, полигональная сетка может быть представлена в виде неструктурированной сетки, или неориентированного графа, с добавлением свойств геометрии, формы и топологии.
Поверхности, чаще называемые группами сглаживания, полезны, но не обязательны для группирования гладких областей. Представьте себе цилиндр с крышками, такой как жестяная банка. Для гладкого затенения сторон, все нормали должны указывать горизонтально от центра, тогда как нормали крышек должны указывать в +/-(0,0,1) направлениях. Если рендерить как единую, затенённую по Фонгу поверхность, вершины складок имели бы неправильные нормали. Поэтому, нужен способ определения где прекращать сглаживание для того, чтобы группировать гладкие части сетки, также, как полигоны группируют трёхсторонние грани. Как альтернатива предоставлению поверхностей/групп сглаживания, сетка может содержать другую информацию для расчёта тех же данных, такая как разделяющий угол (полигоны с нормалями выше этого предела либо автоматически рассматриваются как отдельные группы сглаживания, либо по отношению к ребру между ними применяется какая-либо техника, как например разделение или скашивание). Также, полигональные сетки с очень высоким разрешением менее подвержены проблемам, для решения которых требуются группы сглаживания, так как их полигоны настолько малы, что нужда в них пропадает. Кроме того, альтернатива существует в возможности просто отсоединения самих поверхностей от оставшейся части сетки. Рендереры не пытаются сглаживать рёбра между несмежными полигонами.
Формат полигональной сетки может определять и другие полезные данные. Могут быть определены группы, которые задают отдельные элементы сетки и полезны для установления отдельных подобъектов для скелетной анимации или отдельных субъектов нескелетной анимации. Обычно определяются материалы, позволяя разным частям сетки использовать разные шейдеры при рендере. Большинство форматов сетки также предполагают UV координаты, которые являются отдельным двухмерным представлением полигональной сетки, «развёрнутым» чтобы показать какая часть двумерной текстуры применяется к разным полигонам сетки.