Для того, чтобы изображение было реалистично, нам необходимо свойства объектов, и свойство среды, где эти объекты находятся. Свойства объекта включают в себя параметры материла, из которого сделан объект, способы нанесения текстуры на его поверхность, степень прозрачности объекта. Свойства же среды включают количество и свойства источников света, уровень прозрачности среды, а также модель источников света. Давайте сейчас разберем как в OpenGL можно задать свойства материала. Для задания параметров текущего материала используются команды: void glMaterial[i f] (GLenum face, GLenum pname, GLtype param) void glMaterial[i f]v (GLenum face, GLenum pname, GLtype *params) Вторая команда отличается только тем, что мы передаем массив значений в одно переменной. С их помощью можно определить рассеянный, диффузный и зеркальный цвета материала, а также цвет степень зеркального отражения и интенсивность излучения света, если объект должен светиться. Значение params зависит от значения pname.
А для чего же тогда служит параметр face? Параметр face определяет тип граней, для которых задается этот материал и может принимать значения GL_FRONT (передняя грань), GL_BACK (задняя грань) или GL_FRONT_AND_BACK (задняя и передняя).Теперь посмотрим на маленький пример: float mat_dif[]={0.8,0.8,0.8}; // цвет диффузного отраженияfloat mat_amb[]= {0.2,0.2,0.2}; //цвет материала в тени float mat_spec[]={0.6,0.6,0.6}; //цвет зеркального отражения float shininess=0.7*128;//указываем степень зеркального отражения
До встречи в следующем уроке!
|