Растеризация
Растеризация — это процесс, с помощью которого примитив преобразуется в двумерное изображение. Каждая точка этого изображения содержит такие сведения, как цвет, глубина и текстура. Точка и связанные с ней сведения называются фрагментом. Текущая позиция растра, указанная в glRasterPos*, используется различными способами на этом этапе для рисования пикселей и растровых изображений. При растеризации точек, сегментов линий и многоугольников возникают различные проблемы. Кроме того, необходимо растеризовать прямоугольники пикселей и растровые изображения.
С помощью OpenGL вы управляете растеризовкой с помощью следующих функций:
- Примитивы. Управление растеризацией примитивов с помощью функций, определяющих размеры и шаблоны стипов: glPointSize, glLineWidth, glLineStipple и glPolygonStipple. Управление растеризацией передней и задней поверхностей многоугольников с помощью glCullFace, glFrontFace и glPolygonMode.
- Пикселей. Несколько функций управляют режимами хранения и передачи пикселей. Функция glPixelStore* управляет кодировкой пикселей в памяти клиента, а glPixelTransfer* и glPixelMap* — способом обработки пикселей перед размещением в framebuffer. Укажите прямоугольник пикселей с помощью glDrawPixels; управление его растеризацией с помощью glPixelZoom.
- Растровые изображения. Точечные изображения — это прямоугольники из нулей, указывающие определенный шаблон создаваемых фрагментов. Каждый из этих фрагментов имеет одинаковые связанные данные. Функция glBitmap задает растровое изображение.
- Память текстур. Если текстурирование включено, текстурирование сопоставляет часть указанного изображения текстуры с каждым примитивом. Это сопоставление выполняется с помощью цвета изображения текстуры в расположении, указанном координатами текстуры фрагмента, чтобы изменить цвет RGBA фрагмента. Укажите изображение текстуры с помощью glTexImage2D или glTexImage1D. Функции glTexParameter* и glTexEnv* управляют интерпретацией значений текстуры и их применением к фрагменту.
- Туман. Чтобы смешать цвет тумана с растеризованным цветом фрагмента после текстурирования, используйте коэффициент смешения, который зависит от расстояния между точкой зрения и фрагментом. Используйте glFog* , чтобы указать цвет тумана и коэффициент смешивания.