Skip to main content

Что такое проекция OpenGL®?

Проекция OpenGL® - это процесс и изображение, полученные в результате перевода трехмерных (3D) объектов в выровненное двумерное (2D) изображение, которое может быть отображено на экране. Слово «проекция» в программировании компьютерной графики относится к тому факту, что трехмерные объекты внутри сцены необходимо математически перемещать или проецировать на виртуальную двухмерную поверхность, чтобы ее можно было отображать на плоском дисплее устройства. Хотя всю последовательность событий, которые принимают трехмерный объект и визуализируют его на двухмерной поверхности, можно назвать проекцией, этот термин также более узко применяется к конкретному набору геометрических преобразований в графическом конвейере, который происходит как шаг между другими наборами преобразования. Два специальных типа проекционных режимов OpenGL®, которые доступны программистам, являются перспективными и орфографическими.

Задача создания проекции OpenGL® состоит в том, чтобы взять данные, которые содержат все объекты в данной сцене, и настроить их так, чтобы при отображении на экране объекты соответствовали режиму проекции, громкости просмотра и настройкам виртуальной камеры. Объем просмотра - это видимая область сцены от местоположения зрителя в пределах сцены или положения глаза. Шесть чисел определяют объем просмотра, включая правое, левое, верхнее и нижнее расстояния от виртуального центра рамки просмотра. Кроме того, два значения, известные как ближняя и дальняя плоскости, определяют глубину объема просмотра. Этот том определяет, какие объекты будут проецироваться, в то время как все другие объекты вне тома будут игнорироваться или обрезаться, чтобы невидимые части не оценивались.

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

Более широко используемый режим проекции OpenGL® известен как перспективная проекция. В режиме перспективного проецирования объекты в сцене масштабируются и располагаются в соответствии с их расстоянием от зрителя. Это означает, что объекты, которые находятся дальше, кажутся меньше. Это также означает, что объекты в сцене корректируются таким образом, что они медленно сходятся в точке на горизонте обзора, известной как точка схода. Перспективная проекция тесно моделирует внешний вид реального мира и используется для создания реалистичных визуализаций, а не технических.