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

UptoLike

Рубрика: 

Е. Ю. Ечкина, С. Б. Базаров, И. Н. Иновенков «Визуализация в научных исследованиях»
Кафедра АНИ факультета ВМК МГУ имени М. В. Ломоносова http://ani.cs.msu.su
55
GL heightin,
GLenum typein,
const void *datain,
GLint widthout,
GLint heightout,
GLenum typeout,
void *dataout)
В качестве значения параметра format обычно используется значение GL_RGB или
GL_RGBA, определяющее формат хранения информации. Параметры widthin, heightin,
widhtout, heightout определяют размеры входного и выходного изображений, а с
помощью typein и typeout задается тип элементов массивов, расположенных по
адресам datain и dataout. Как и обычно, то может быть тип
GL_UNSIGNED_BYTE, GL_SHORT, GL_INT и так далее. Результат своей работы
функция заносит в область памяти, на которую указывает параметр dataout.
Во-вторых, надо предусмотреть случай, когда объект по размерам значительно меньше
наносимой на него текстуры. Чем меньше объект, тем меньше должна быть наносимая
на него текстура и поэтому вводится понятие уровней детализации текстуры. Каждый
уровень детализации задает некоторое изображение, которое является как правило
уменьшенной в два раза копией оригинала. Такой подход позволяет улучшить
качество нанесения текстуры на объект. Например, для изображения размером 2
m
x2
n
можно построить max(m,n)+1 уменьшенных изображений, соответствующих
различным уровням детализации.
Эти два этапа создания образа текстуры в памяти можно провести с помощью команды
void gluBuild2DMipmaps(GLenum target,
GLint components,
GLint width,
GLint height,
GLenum format,
GLenum type,
const void *data)
где параметр target должен быть равен GL_TEXTURE_2D, components определяет
количество цветовых компонент текстуры, которые будут использоваться при ее
наложении и может принимать значения от 1 до 4 (1-только красный,2-красный и
alpha, 3-красный, синий, зеленый, 4-все компоненты).
Параметры width, height, data определяют размеры и расположение текстуры
соответственно, а format и type имеют аналогичный смысл, что и в команде
gluScaleImage().
В OpenGL допускается использование одномерных текстур, то есть размера 1xN,
однако это всегда надо указывать, используя в качестве значения target константу
GL_TEXTURE_1D. Существует одномерный аналог рассматриваемой команды-
gluBuild1DMipmaps(), который отличается от двумерного отсутствием параметра
height.
Е. Ю. Ечкина, С. Б. Базаров, И. Н. Иновенков «Визуализация в научных исследованиях»


                 GL heightin,
                 GLenum typein,
                 const void *datain,
                 GLint widthout,
                 GLint heightout,
                 GLenum typeout,
                 void *dataout)
В качестве значения параметра format обычно используется значение GL_RGB или
GL_RGBA, определяющее формат хранения информации. Параметры widthin, heightin,
widhtout, heightout определяют размеры входного и выходного изображений, а с
помощью typein и typeout задается тип элементов массивов, расположенных по
адресам datain и dataout. Как и обычно, то может быть тип
GL_UNSIGNED_BYTE, GL_SHORT, GL_INT и так далее. Результат своей работы
функция заносит в область памяти, на которую указывает параметр dataout.
Во-вторых, надо предусмотреть случай, когда объект по размерам значительно меньше
наносимой на него текстуры. Чем меньше объект, тем меньше должна быть наносимая
на него текстура и поэтому вводится понятие уровней детализации текстуры. Каждый
уровень детализации задает некоторое изображение, которое является как правило
уменьшенной в два раза копией оригинала. Такой подход позволяет улучшить
качество нанесения текстуры на объект. Например, для изображения размером 2mx2n
можно построить max(m,n)+1 уменьшенных изображений, соответствующих
различным уровням детализации.
Эти два этапа создания образа текстуры в памяти можно провести с помощью команды
void gluBuild2DMipmaps(GLenum target,
                    GLint components,
                    GLint width,
                    GLint height,
                    GLenum format,
                    GLenum type,
                    const void *data)
где параметр target должен быть равен GL_TEXTURE_2D, components определяет
количество цветовых компонент текстуры, которые будут использоваться при ее
наложении и может принимать значения от 1 до 4 (1-только красный,2-красный и
alpha, 3-красный, синий, зеленый, 4-все компоненты).
Параметры width, height, data определяют размеры и расположение текстуры
соответственно, а format и type имеют аналогичный смысл, что и в команде
gluScaleImage().
В OpenGL допускается использование одномерных текстур, то есть размера 1xN,
однако это всегда надо указывать, используя в качестве значения target константу
GL_TEXTURE_1D. Существует одномерный аналог рассматриваемой команды-
gluBuild1DMipmaps(), который отличается от двумерного отсутствием параметра
height.


Кафедра АНИ факультета ВМК МГУ имени М. В. Ломоносова http://ani.cs.msu.su            55