1.7.3. Сборка примитивов После того как определены все параметры каждой конкретной вершины, эти данные используются на этапе, называемом сборкой примитивов (см. рис. 1.1,3). Здесь происходит формирование примитивов: точки из одной вершины, линии из двух вершин, треугольника из трех вершин, четырехугольника из четырех вершин и многоугольника из произвольного количества вершин. Для API-метода «вершина за раз» тип примитива передается в функцию glBegi п, а для метода массивов вершин - в функцию, принимающую массив вершин.

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

1.7.4. Обработка примитивов Следующий этап (см. рис. 1.1, 4) па самом деле состоит из нескольких шагов, для простоты объединенных на диаграмме в один блок. Первый шаг - отсечение, операция, которая сравнивает каждый примитив с плоскостями отсечения, заданными вызовами функции gl CI i pPl апе, и с отображаемым объемом из видовой матрицы и матрицы проекции. Если примитив полностью находится внутри отображаемого объема и плоскостей отсечения, он передается для последующей обработки. Если примитив полностью снаружи, он отбрасывается. Но если примитив частично внутри, а частично - снаружи, его разделяют (отсекают) таким образом, что для последущей обработки передается только внутренняя часть.

Обзор OpenGL

Следующим шагом этого этапа является расчет перспективы. Если данный вид примитива - с перспективой, то координаты х, у и г каждой вершины делятся на однородную координату т. В соответствии с этим каждая вершина будет трансформирована для области отображения на экране, определяемой функциями glDepthRange и gl Viewport, путем генерирования координат внутри окна (области отображения).

На шаге отбраковки проверяется, является ли каждый многоугольный примитив лицевым (расположен на переднем плане) для текущей точки обзора. Отбраковка включается функцией gl Enable, a gl Cull Face определяет, какие примитивы переднего и заднего плана можно игнорировать (отбраковывать).


⇐ Предыдущая| |Следующая ⇒