ТОР 5 статей: Методические подходы к анализу финансового состояния предприятия Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века Характеристика шлифовальных кругов и ее маркировка Служебные части речи. Предлог. Союз. Частицы КАТЕГОРИИ:
|
Проективное текстурированиеДля повышения реалистичности изображений в компьютерной графике применяется текстурирование. Текстура - это одномерное или двумерное изображение поверхности. В библиотеке OpenGL имеется ряд функций для работы с текстурами. Поддержку текстурирования включают командой glEnable(GL_TEXTURE_2D). Так как библиотека рассчитана на работу под различными операционными системами, то она имеет собственный формат хранения изображений. Каждая точка храниться как 24 битное число. При этом первый байт - это красная составляющая, второй – зеленая составляющая, третий - синяя составляющая цвета. Текстуры могут иметь размер только кратный степени 2. Библиотека OpenGL поддерживает пирамидальную фильтрацию. В этом случае требуется задать несколько текстур для каждого уровня или параметры масштабирования текстур для автоматического расчета уровней. Текстура привязывается к вершине путем задания перед вершиной координат текстуры. Также библиотека OpenGL поддерживает и простой вывод массива пикселов на экран. Для преобразования изображения в системе Windows в формат, совместимый с библиотекой OpenGL, требуется выполнить следующие действия: 1. Загрузить изображение LoadImage 2. Подготовить структуру BITMAPINFO. Очистить ее нулем. В поле bmiHeader.biSize занести размер поля bmiHeader. 3. Получить параметры загруженного изображение (GetDIBits при задании количества линий 0). 4. Заполнить структуру BITMAPINFO: bmiHeader.biPlanes=1; // 1 цветовая плоскость; bmiHeader.biBitCount=24; // количество бит на цветов; biTexture.bmiHeader.biCompression=BI_RGB; // без компрессии; biTexture.bmiHeader.biHeight=dwHeight; // установим требуемую высоту; bmiHeader.biWidth=dwWidth; // установим требуемую ширину; выделить память под данные. Размер выделяемой памяти можно вычислить как ширина*высоту* количество_байт_на_цвет. 5. Получить данные изображения в требуемом формате (GetDIBits с передачей структуры BITMAPINFO) 6. Для каждого пиксела в полученных данных требуется поменять местами красную и синюю составляющую.
Для вывода массива пикселов на экран требуется выполнить следующую последовательность действий: 1. Установить координаты для вывода изображения (glRasterPos3f). 2. Установить параметры масштабирования (glPixelZoom). 3. Отобразить массив пикселов glDrawPixels.
Не нашли, что искали? Воспользуйтесь поиском:
|