Визуализация в научных исследованиях. Ечкина Е.Ю - 54 стр.

UptoLike

Рубрика: 

Е. Ю. Ечкина, С. Б. Базаров, И. Н. Иновенков «Визуализация в научных исследованиях»
Кафедра АНИ факультета ВМК МГУ имени М. В. Ломоносова http://ani.cs.msu.su
54
системы координат. Это может улучшить качество освещения, но усложняет его
расчет.
Значение по умолчанию: FALSE.
GL_LIGHT_MODEL_TWO_SIDE параметр param должен быть булевским и
управляет режимом расчета освещенности как для лицевых, так и для обратных
граней. Если он равен FALSE, то освещенность рассчитывается только для лицевых
граней. Если же он равен TRUE, расчет проводится и для обратных граней. Значение
по умолчанию: FALSE .
GL_LIGHT_MODEL_AMBIENT параметр params должен содержать четыре целых
или вещественных числа, которые определяют цвет фонового освещения даже в случае
отсутствия определенных источников света.
Значение по умолчанию:(0.2, 0.2, 0.2,1.0).
Текстуры
Наложение текстуры на поверхность объектов сцены повышает ее реалистичность,
однако при этом надо учитывать, что этот процесс требует значительных
вычислительных затрат. Под текстурой будем понимать некоторое изображение,
которое надо определенным образом нанести на объект. Для этого следует выполнить
следующие этапы:
выбрать изображение и преобразовать его к нужному формату
загрузить изображение в память
определить, как текстура будет наноситься на объект и как она будет с ним
взаимодействовать.
Рассмотрим каждый из этих этапов.
Подготовка текстуры
Принятый в OpenGL формат хранения изображений отличается от стандартного
формата Windows DIB только тем, что компоненты (R,G,B) для каждой точки хранятся
в прямом порядке, а не в обратном и выравнивание задается программистом.
Считывание графических данных из файла и их преобразование можно проводить и
вручную, однако удобней воспользоваться функцией, входящей в состав библиотеки
GLAUX (для ее использования надо дополнительно подключить glaux.lib), которая
сама проводит необходимые операции. Это функция
AUX_RGBImageRec* auxDIBImageLoad(string file)
где file– название файла с расширением *.bmp или *.dib. В качестве результата
функция возвращает указатель на область памяти, где хранятся преобразованные
данные.
При создании образа текстуры в памяти следует учитывать следующие требования.
Во-первых, размеры текстуры как по горизонтали, так и по вертикали должны
представлять собой степени двойки. Это требование накладывается для компактного
размещения текстуры в памяти и способствует ее эффективному использованию.
Использовать только текстуры с такими размерами конечно неудобно, поэтому перед
загрузкой их надо преобразовать. Изменение размеров текстуры проводится с
помощью команды
void gluScaleImage(GLenum format,
GLint widthin,
Е. Ю. Ечкина, С. Б. Базаров, И. Н. Иновенков «Визуализация в научных исследованиях»


системы координат. Это может улучшить качество освещения, но усложняет его
расчет.
Значение по умолчанию: FALSE.
GL_LIGHT_MODEL_TWO_SIDE параметр param должен быть булевским и
управляет режимом расчета освещенности как для лицевых, так и для обратных
граней. Если он равен FALSE, то освещенность рассчитывается только для лицевых
граней. Если же он равен TRUE, расчет проводится и для обратных граней. Значение
по умолчанию: FALSE .
GL_LIGHT_MODEL_AMBIENT параметр params должен содержать четыре целых
или вещественных числа, которые определяют цвет фонового освещения даже в случае
отсутствия определенных источников света.
Значение по умолчанию:(0.2, 0.2, 0.2,1.0).
Текстуры
Наложение текстуры на поверхность объектов сцены повышает ее реалистичность,
однако при этом надо учитывать, что этот процесс требует значительных
вычислительных затрат. Под текстурой будем понимать некоторое изображение,
которое надо определенным образом нанести на объект. Для этого следует выполнить
следующие этапы:
выбрать изображение и преобразовать его к нужному формату
загрузить изображение в память
определить, как текстура будет наноситься на объект и как она будет с ним
взаимодействовать.
Рассмотрим каждый из этих этапов.
Подготовка текстуры
Принятый в OpenGL формат хранения изображений отличается от стандартного
формата Windows DIB только тем, что компоненты (R,G,B) для каждой точки хранятся
в прямом порядке, а не в обратном и выравнивание задается программистом.
Считывание графических данных из файла и их преобразование можно проводить и
вручную, однако удобней воспользоваться функцией, входящей в состав библиотеки
GLAUX (для ее использования надо дополнительно подключить glaux.lib), которая
сама проводит необходимые операции. Это функция
AUX_RGBImageRec* auxDIBImageLoad(string file)
где file– название файла с расширением *.bmp или *.dib. В качестве результата
функция возвращает указатель на область памяти, где хранятся преобразованные
данные.
При создании образа текстуры в памяти следует учитывать следующие требования.
Во-первых, размеры текстуры как по горизонтали, так и по вертикали должны
представлять собой степени двойки. Это требование накладывается для компактного
размещения текстуры в памяти и способствует ее эффективному использованию.
Использовать только текстуры с такими размерами конечно неудобно, поэтому перед
загрузкой их надо преобразовать. Изменение размеров текстуры проводится с
помощью команды
void gluScaleImage(GLenum format,
                 GLint widthin,
Кафедра АНИ факультета ВМК МГУ имени М. В. Ломоносова http://ani.cs.msu.su            54