1.9. Преобразования координат
Цель всего процесса обработки изображений в OpenGL - преобразовать трехмерные описания объектов в двухмерную картинку, которую можно показать па экране. Во миогом этот процесс похож на фотографирование, где для преобразования образа реального трехмерного мира в двухмерный отпечаток используется фотоаппарат. Чтобы завершить преобразование из трех измерений в два, OpenGL определяет несколько пространств координат и правила преобразований между этими координатами. Каждое пространство координат имеет свойства, полезные для какой-либо части процесса визуализации. Преобразования, определенные в OpenGL, дают приложениям большую гибкость в отображении трехмерного снимка на двухмерную плоскость. Очень важно понимать, как все эти пространства координат и преобразования используются OpenGL, - это поможет впоследствии успешно писать программы-шейдеры на языке шейдеров OpenGL.
Моделирование в компьютерной графике - это определение численного представления сложного объекта для рендеринга. В понятиях OpenGL это обычно означает представление объекта большим количеством многоугольников - примитивов, встроенных в OpenGL. Это представление в минимальном виде включает в себя координаты каждой вершины каждого многоугольника и информацию о том, как соединить эти вершины. Дополнительными данными могут быть цвет каждой вершины, нормаль поверхности в каждой вершине, несколько текстурных координат в каждой вершине и т. п.
В прошлом моделирование какого-либо сложного объекта требовало больших усилий, точного измерения и ввода данных. (Вот почему чайник Юты, смоделированный Мартином Ньюэллом (Martin Newell) в 1975 г., использовался в большом количестве графических изображений и получил широкую известность. Это интересный объект, численные данные для которого легко было получить. Несколько шейдеров, приведенных в книге в качестве примеров, иллюстрированы этим объектом; см., например, цветной рис. 201.) В последнее время доступными стали новые инструменты для моделирования, как программные, так и аппаратные, что значительно облегчило создание трехмерных моделей для рендеринга.
Атрибуты трехмерных объектов, такие как координаты вершин и нормали поверхности, определяются в предметном пространстве. Это координатное пространство удобно для описания моделируемого объекта. Координаты указываются в тех единицах, которые удобно использовать для конкретного объекта. Микроскопические объекты могут быть смоделированы в ангстремах, повседневные объекты могут быть смоделированы в дюймах или сантиметрах, планеты - в милях или километрах, галактики - в световых годах или парсеках, Начало координат в этой координатной системе (то есть точка с координатами (0, 0, 0)) тоже удобна для моделирования. Для некоторых объектов начало координат удобно помешать в угол трехмерного ограничивающего параллелепипеда, для других - в центр тяжести объекта. Из-за тесной связи с задачей моделирования координатное пространство иногда называют пространством моделей или модельной системой координат. Координаты также могут называться как координатами объекта, так и модельными координатами.