От модели к пикселю
Обычный словарь компьютерной графики легко проскочить, потому что у каждого слова есть и простое бытовое значение. В этом предмете слова строже.
Пиксель, примитив, изображение
В цифровой изобразительной технике пиксель, элемент изображения, это одна точка растрового изображения. Пиксели сидят на регулярной двумерной сетке, и их часто рисуют точками или квадратами. Каждый пиксель это выборка исходного изображения. Больше выборок обычно даёт более верный отчёт об этом исходнике. Интенсивность пикселя меняется. В цветной системе у пикселя обычно три субпикселя: красный, зелёный и синий. Если увеличить цифровую фотографию достаточно сильно, квадраты перестают притворяться непрерывным тоном. Это не вина дисплея. Это само представление, увиденное не с того расстояния.
Примитив это базовая единица, из которых графическая система собирает более сложное изображение или модель. В двумерной игре примитивами могут быть спрайты и карты символов. В САПР это геометрические примитивы, которые предлагает моделлер. В трёхмерном рендеринге это полигоны, очень часто треугольники. Оборудование может поддерживать примитив напрямую: нарисовать его в кремнии быстрее, чем каждый раз собирать программой. Либо примитив лишь удобство, которое предоставляет приложение, а оборудование видит под ним что-то более простое.
Цифровое изображение бывает векторным или растровым. Растры из двух встречаются чаще. Изображение могло прийти с камеры, с оптического прибора или из расчёта, в котором линзы не было вовсе. Когда представление выбрано, его ещё предстоит превратить в свет на экране.
Рендеринг
Рендеринг это порождение двумерного изображения из трёхмерной модели компьютерной программой. Файл сцены держит объекты на определённом языке или в структуре данных: геометрия, точка обзора, текстурирование, освещение и затенение как описание виртуальной сцены. Эти данные передают программе рендеринга, и наружу выходит цифровое изображение, растровый файл. Рендерер обычно встроен в графическую программу. Некоторые бывают плагинами. Некоторые идут отдельными программами. Слово взято по аналогии с тем, как художник делает подачу сцены: картинка по описанию, а не с сидения перед предметом.
Технические методы различаются. Общая задача одна. Есть трёхмерное описание, и нужна двумерная картинка. Шаги на этом пути, на устройстве вроде GPU, называют графическим конвейером. GPU это устройство, которое помогает CPU в расчёте. Если сцена должна выглядеть достаточно реалистично и предсказуемо при виртуальном освещении, программе приходится учитывать уравнение рендеринга. Уравнение покрывает не всякое световое явление. Это общая модель освещения для изображений, построенных компьютером, а не полная теория оптики. «Рендерингом» называют и тот случай, когда программа видеомонтажа просчитывает эффекты в готовый файл. Слово то же, работа более узкая. Там геометрия уже последовательность кадров, и программа их совмещает.
Проекция, лучи, тень
Трёхмерная проекция переносит трёхмерные точки на двумерную плоскость. Большинство нынешних дисплеев плоские, поэтому такая проекция повсюду. Приложения трёхмерности реального времени обычно делают это растеризацией: спроецированный полигон закрывает какие-то пиксели, и эти пиксели закрашивают. Растеризация спрашивает у каждого полигона, какие пиксели он закрывает. Трассировка лучей спрашивает у каждого пикселя, что сделал свет.
Трассировка лучей относится к алгоритмам порядка изображения. Картинку она порождает, следуя пути света через пиксели плоскости изображения. Она способна на высокую степень фотореализма, обычно выше типичного построчного рендеринга, и цена тоже выше. Долго эта цена не пускала её на интерактивные машины. Цена сдвинулась. Идея не сдвинулась.
Затенение это способ показать глубину переменой темноты. Чертёжники слово уже знали. Красящее вещество кладут гуще или более тёмным цветом там, где форма отворачивается от света, и легче там, где она обращена к свету. Перекрёстная штриховка один из приёмов: перпендикулярные линии сеткой, чаще там, где участок должен читаться темнее. В компьютерной графике слово расширилось. Теперь оно значит ещё и то, что применяют шейдеры, небольшие программы, чья работа решать цвет выборки. Шейдер умеет подражать перекрёстной штриховке. Он умеет и то, чего не умеет никакое перо, потому что знает нормаль поверхности и источники света как числа.
Текстура, алиасинг, объём
Наложение текстур добавляет подробность, фактуру поверхности или цвет порождённой графике или трёхмерной модели. Эдвин Кэтмалл применил его к трёхмерной графике в 1974 году. Карту текстуры укладывают на поверхность формы или полигона. Обычное сравнение: узорная бумага, обёрнутая вокруг простой белой коробки. Сравнение хорошее и ломается в одном месте. Бумага мнётся, а карте текстуры можно велеть не мяться. Мультитекстурирование кладёт на полигон сразу больше одной текстуры. Процедурные текстуры получают, подстраивая параметры алгоритма. Растровые текстуры рисуют в редакторе изображений или берут с камеры. Уложить текстуру на поверхность полигона обычно можно только через UV-развёртку, ручную раскладку текстурных координат. У поверхностей NURBS есть собственная параметризация, и она может служить этими координатами без отдельной развёртки.
Под тем же заголовком идут карты нормалей и карты рельефа, которые подделывают высоту, карты блика, которые подделывают глянец, и карты окружения, которые подделывают зеркало. Ни одна не отменяет того, что поверхность под ними может быть грубой сеткой. Они меняют то, чему верит расчёт освещения относительно этой поверхности.
Когда объект, не зависящий от разрешения, например трёхмерную модель, рисуют на растровом устройстве вроде ЖК-панели или кинескопа, возникает алиасинг. Артефакты сидят в основном вдоль геометрических краёв и вдоль границ текстурной подробности. В разговоре это лесенки. Методы сглаживания их уменьшают. Глазу легче, и расчёт чего-то стоит. Избыточная выборка составляет одно семейство методов. Художник, выбирая настройку, выбирает точку на этом размене. Растровая текстура, подготовленная в одном разрешении и показанная в другом, например на модели далеко от камеры, даст алиасинг. Процедурная текстура может дать алиасинг при любом разрешении: собственных пикселей у неё нет, пока её не дискретизируют. Мипмаппинг и фильтрация текстур обычные средства для случая текстуры. Они не делают задачу философской. Они подгоняют выборку под размер, в котором её рисуют.
Объёмный рендеринг показывает двумерную проекцию трёхмерного набора выборок. Типичный набор это стопка изображений-срезов со сканера компьютерной томографии или магнитно-резонансной томографии, снятых с постоянным шагом, и каждый срез сам есть регулярная сетка пикселей. Каждый элемент объёма, или воксель, хранит одно значение, снятое с ближайшей окрестности. Цвет затем можно назначить по ткани, так что кость, мышца и сосуды читаются в проекции раздельно. Это рендеринг, и это не та же работа, что рендеринг смоделированного персонажа. В данных может не быть поверхности, пока рендерер не решит, где ей появиться.
Трёхмерная компьютерная графика это то, что получается, когда примитивы уже модель твёрдого тела, а не плоский знак. Словарь не меняется. Меняется объём данных, который ему приходится покрывать.
