Рисуем тор xy z 0 X Z

Скачать презентацию Рисуем тор xy z  0 X Z Скачать презентацию Рисуем тор xy z 0 X Z

lighting.ppt

  • Размер: 250 Кб
  • Количество слайдов: 11

Описание презентации Рисуем тор xy z 0 X Z по слайдам

Рисуем тор xy z 0 X Z Y P Q)sin, 0, cos()(11 RRP ), ()(), (2Рисуем тор xy z 0 X Z Y P Q)sin, 0, cos()(11 RRP ), ()(), (2 n. RPQ )cossin, cos(cos), ( n ]2, 0[, Q i, j Q i+1, j+1 Q i, j+1. , . . . , 1, 0, , . . . , 1, 0), /2( 2121, Nj. Ni. QQ ji

Уравнение освещенности  по Фонгуsh lmlmlmresslnddaa. I)()( l n r P’ 0), (, 0 0), (),Уравнение освещенности по Фонгуsh lmlmlmresslnddaa. I)()( l n r P’ 0), (, 0 0), (), , ( )( ba ba e Фоновое освещение не имеет источника и зависит только от сцены При диффузном освещении свет от источника равномерно рассеивается во всех направлениях. При зеркальном освещении свет от источника отражается от повехности. в одном направлении. Зеркальная освещенность дополнительно зависит от положения наблюдателя. . ), (nlreflectr

Модели Блинна и Шликаsh lmlmlmhnsslnddaa. I)()(  Вычисление отраженного вектора – трудоемкая операция (Блинн)  ВозведениеМодели Блинна и Шликаsh lmlmlmhnsslnddaa. I)()( Вычисление отраженного вектора – трудоемкая операция (Блинн) Возведение в степень также работает не очень быстро. . . (Шлик) el el h )(, ~)( hn. D DDhh D hn ssh s l n r P’ e

Уравнение освещенности  Open. GL   ). cos(), , ( ), cos(), (, 0 ,Уравнение освещенности Open. GL ). cos(), , ( ), cos(), (, 0 , , 1 ))()(( 2 , , , 1 0 iii ii i i iqilic i h imimim n i iismm lvlv lvspot rkrkk att hnsslnddaaspotattaaecm е m , a m , s m , d m , h m – свойства материалаa i , s i , d i – свойства i — го источника освещения a s – фоновое освещениеatt i – коэффициент затуханияspot i – коэффициент направленности -l v i P’ i

Установка параметров освещения в Open. GL void gl. Materialfv(GLenum face, GL е num param, GLfloat *value);Установка параметров освещения в Open. GL void gl. Materialfv(GLenum face, GL е num param, GLfloat *value); face = {GL_FRONT|GL_BACK} param = {GL_AMBIENT|GL_DIFFUSE|GL_EMISSIVE|GL_SPECULAR} value = float[4] // RGBA void gl. Materialf(GLenum face, GL_SHININESS, GLfloat value); void gl. Light. Modelfv(GL е num param, GLfloat *value); param = LIGHT_MODEL_AMBIENT value = float[4] // RGBA void gl. Lightfv(GLenum light, GL е num param, GLfloat *value); face = {GL_LIGHT 0|GL_LIGHT 1|…} param = {GL_AMBIENT|GL_DIFFUSE|GL_SPECULAR} value = float[4] // RGBA Задаем параметры материала : Задаем цвет источника освещения : Задаем цвет фонового освещения :

Установка параметров освещения.  Часть 2. void gl. Lightfv(GLenum light, GL_POSITION, GLfloat *value);  face =Установка параметров освещения. Часть 2. void gl. Lightfv(GLenum light, GL_POSITION, GLfloat *value); face = {GL_LIGHT 0|GL_LIGHT 1|…} value = float[4] // x, y, z, w Задаем положение источника освещения : Координаты источника освещения преобразуются текущей матрицей модельного преобразования! Включаем расчет освещенности void gl. Enable(GLenum type); type = GL_LIGHTING; Включаем требуемые источники освещения void gl. Enable(GLenum type); type = GL_LIGHT 0; Включаем требуемые источники освещения void gl. Shade. Model(GLenum type); type = GL_FLAT; — плоская закраска грани type = GL_SMOOTH — закраска по Гуро

Интерполяция цвета • Вычислить цвет (RGB) в каждой вершине.  • Вычислить цвет в точках PИнтерполяция цвета • Вычислить цвет (RGB) в каждой вершине. • Вычислить цвет в точках P 1 и P 2: s = ||P 1 — B|| / ||A — B|| C(P 1) = s(C(A)) — (1 -s) (C(B)) • Вычислить цвет в т. Р: s = ||P — P 2|| / ||P 1 — P 2|| C(P) = s(C(P 1))-(1 -s) (C(P 2))

Недостатки закраски по Гуро Недостатки закраски по Гуро

Интерполяция нормали • Вычислить нормали (RGB) в каждой вершине.  • Вычислить нормаль в точках PИнтерполяция нормали • Вычислить нормали (RGB) в каждой вершине. • Вычислить нормаль в точках P 1 и P 2: s = ||P 1 — B|| / ||A — B|| N(P 1) = s(N(A)) + (1 -s)(N(B)) • Вычислить нормаль в т. Р: s = ||P — P 2|| / ||P 1 — P 2|| N(P) = s(т(P 1))-(1 -s) (N(P 2)) • Вычислить цвет в точке Р.

Растеризация V 1 V 2 V 33, 2, 1, . . . }, , {i. RGBAzyx.Растеризация V 1 V 2 V 33, 2, 1, . . . }, , {i. RGBAzyx. Viiiii ), , (), ( izyx. Lyxz Интерполяция цвета вдоль примитива — закраска по Гуро ), , (), ( i. RGBAyx. Lyx. RGBA Интерполяция координаты z

I=0 I=0 I=1 I=1 Ошибки линейной интерполяции  Освещенность зависит от  способа разбиения на I=0 I=0 I=1 I=1 Ошибки линейной интерполяции Освещенность зависит от способа разбиения на примитивы Поле нормалей лучше задавать в виде текстуры!