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

UptoLike

Рубрика: 

Е. Ю. Ечкина, С. Б. Базаров, И. Н. Иновенков «Визуализация в научных исследованиях»
Кафедра АНИ факультета ВМК МГУ имени М. В. Ломоносова http://ani.cs.msu.su
51
Используя параметры команды glViewPort(), вычисляются оконные координаты
центра области вывода (o
x
, o
y
) по формулам o
x
=x+width/2, o
y
=y+height/2.
Пусть p
x
=width, p
y
=height, тогда можно найти оконные координаты каждой вершины:
(x
w
, y
w
, z
w
)
T
= ( (p
x
/2) x
n
+ o
x
, (p
y
/2) y
n
+ o
y ,
[(f-n)/2] z
n
+(n+f)/2 )
T
При этом целые положительные величины n и f задают минимальную и максимальную
глубину точки в окне и по умолчанию равны 0 и 1 соответственно. Глубина каждой
точки записывается в специальный буфер глубины (z-буфер), который используется
для удаления невидимых линий и поверхностей. Установить значения n и f можно
вызовом функции
void glDepthRange(GLclampd n, GLclampd f)
Команда glViewPort() обычно используется в функции, зарегистрированной с
помощью команды glutReshapeFunc(), которая вызывается, если пользователь изменяет
размеры окна приложения, изменяя соответсвующим образом область вывода.
Материалы и освещение
Для создания реалистических изображений необходимо определить как свойства
самого объекта, так и свойства среды, в которой он находится. Первая группа свойств
включает в себя параметры материла, из которого сделан объект, способы нанесения
текстуры на его поверхность, степень прозрачности объекта. Ко второй группе можно
отнести количество и свойства источников света, уровень прозрачности среды. Все эти
свойства можно задавать, используя соответствующие команды OpenGL.
Свойства материала
Для задания параметров текущего материала используются команды
void glMaterial[i f](GLenum face, GLenum pname, GLtype param)
void glMaterial[i f]v(GLenum face, GLenum pname, GLtype *params)
С их помощью можно определить рассеянный, диффузный и зеркальный цвета
материала, а также цвет степень зеркального отражения и интенсивность излучения
света, если объект должен светиться. Какой именно параметр будет определяться
значением param, зависит от значения pname:
GL_AMBIENT параметр params должен содержать четыре целых или вещественных
значения цветов RGBA, которые определяют рассеянный цвет материала (цвет
материала в тени).
Значение по умолчанию: (0.2, 0.2, 0.2, 1.0).
GL_DIFFUSE параметр params должен содержать четыре целых или вещественных
значения цветов RGBA, которые определяют цвет диффузного отражения материала.
Значение по умолчанию:(0.8, 0.8, 0.8, 1.0).
GL_SPECULAR параметр params должен содержать четыре целых или вещественных
значения цветов RGBA, которые определяют цвет зеркального отражения материала.
Значение по умолчанию: (0.0, 0.0, 0.0, 1.0).
GL_SHININESS параметр params должен содержать одно целое или вещественное
значение в диапазоне от 0 до 128, которое определяет степень зеркального отражения
материала.
Значение по умолчанию: 0.
Е. Ю. Ечкина, С. Б. Базаров, И. Н. Иновенков «Визуализация в научных исследованиях»


Используя параметры команды glViewPort(), вычисляются оконные координаты
центра области вывода (ox, oy) по формулам ox=x+width/2, oy=y+height/2.
Пусть px=width, py=height, тогда можно найти оконные координаты каждой вершины:
(xw, yw, zw)T = ( (px/2) xn+ ox , (py/2) yn+ oy , [(f-n)/2] zn+(n+f)/2 )T
При этом целые положительные величины n и f задают минимальную и максимальную
глубину точки в окне и по умолчанию равны 0 и 1 соответственно. Глубина каждой
точки записывается в специальный буфер глубины (z-буфер), который используется
для удаления невидимых линий и поверхностей. Установить значения n и f можно
вызовом функции
void glDepthRange(GLclampd n, GLclampd f)
Команда glViewPort() обычно используется в функции, зарегистрированной с
помощью команды glutReshapeFunc(), которая вызывается, если пользователь изменяет
размеры окна приложения, изменяя соответсвующим образом область вывода.
Материалы и освещение
Для создания реалистических изображений необходимо определить как свойства
самого объекта, так и свойства среды, в которой он находится. Первая группа свойств
включает в себя параметры материла, из которого сделан объект, способы нанесения
текстуры на его поверхность, степень прозрачности объекта. Ко второй группе можно
отнести количество и свойства источников света, уровень прозрачности среды. Все эти
свойства можно задавать, используя соответствующие команды OpenGL.
Свойства материала
Для задания параметров текущего материала используются команды
       void glMaterial[i f](GLenum face, GLenum pname, GLtype param)
       void glMaterial[i f]v(GLenum face, GLenum pname, GLtype *params)
С их помощью можно определить рассеянный, диффузный и зеркальный цвета
материала, а также цвет степень зеркального отражения и интенсивность излучения
света, если объект должен светиться. Какой именно параметр будет определяться
значением param, зависит от значения pname:
GL_AMBIENT параметр params должен содержать четыре целых или вещественных
значения цветов RGBA, которые определяют рассеянный цвет материала (цвет
материала в тени).
Значение по умолчанию: (0.2, 0.2, 0.2, 1.0).
GL_DIFFUSE параметр params должен содержать четыре целых или вещественных
значения цветов RGBA, которые определяют цвет диффузного отражения материала.
Значение по умолчанию:(0.8, 0.8, 0.8, 1.0).
GL_SPECULAR параметр params должен содержать четыре целых или вещественных
значения цветов RGBA, которые определяют цвет зеркального отражения материала.
Значение по умолчанию: (0.0, 0.0, 0.0, 1.0).
GL_SHININESS параметр params должен содержать одно целое или вещественное
значение в диапазоне от 0 до 128, которое определяет степень зеркального отражения
материала.
Значение по умолчанию: 0.


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