Метод наложения, реализованный в OpenGL, учитывает особенности конвейерной архитектуры этой графической системы. До сих пор мы делали основной упор на конвейерной обработке геометрической информации. Но в системе имеется и отдельный конвейер обработки пикселей, причем результаты обработки на обоих конвейерах сливаются на этапе тонирования изображения (рис. 9.10). В последующих разделах будут описаны операции, выполняемые в этом конвейере, но главное, что любое изображение, сформированное им, может быть наложено на изображение геометрических объектов. Такая архитектура предопределяет тип функций наложения, которые она способна поддерживать. В частности, проективное наложение выполняется в процессе растрового преобразования. Этот процесс отображает трехмерные точки пространства сцены на двухмерное пространство экрана (пиксели). Каждый генерируемый фрагмент тестируется на видимость (с помощью z-буфера) и, если он видим, закрашивается. Можно считать, что наложение текстуры входит как отдельный этап в процесс закрашивания. Вершины отображаются на координаты текстуры, а нужные значения интенсивности текстуры вычисляются путем интерполяции, как это делалось при закрашивании внутренней области многоугольника, вершинам которого назначены разные цвета.

Конвейеры обработки геометрической информации и пикселей

Рис. 9.10. Конвейеры обработки геометрической информации и пикселей Непременным компонентом программы наложения двухмерной текстуры является массив текселей. Предположим, что ранее программой каким-то образом сформировано или считано из файла изображение с размерами 512x512 и сохранено в массиве ту_Ьехе1з.

Ы.иЬу1е ту_^ехе18[512][512]; Вызов функции д1Тех1таде2Б() специфицирует этот массив как предназначенный для хранения двухмерного образца текстуры"opengl5_422.html">⇐ Предыдущая| |Следующая ⇒