Рисуем тор

Содержание

Слайд 2

Уравнение освещенности по Фонгу

l

n

r

P’

e

Фоновое освещение не имеет источника и зависит только

Уравнение освещенности по Фонгу l n r P’ e Фоновое освещение не
от сцены

При диффузном освещении свет от источника равномерно рассеивается во всех направлениях.

При зеркальном освещении свет от источника отражается от повехности.в одном направлении. Зеркальная освещенность дополнительно зависит от положения наблюдателя..

Слайд 3

Модели Блинна и Шлика

Вычисление отраженного вектора – трудоемкая операция (Блинн)

Возведение

Модели Блинна и Шлика Вычисление отраженного вектора – трудоемкая операция (Блинн) Возведение
в степень также работает не очень быстро... (Шлик)

l

n

r

P’

e

Слайд 4

Уравнение освещенности OpenGL

еm ,am , sm , dm , hm – свойства

Уравнение освещенности OpenGL еm ,am , sm , dm , hm –
материала

ai ,si ,di – свойства i-го источника освещения

as– фоновое освещение

atti – коэффициент затухания

spoti – коэффициент направленности

-l

vi

P’

Слайд 5

Установка параметров освещения в OpenGL

void glMaterialfv(GLenum face,GLеnum param,GLfloat *value);
face = {GL_FRONT|GL_BACK}

Установка параметров освещения в OpenGL void glMaterialfv(GLenum face,GLеnum param,GLfloat *value); face =
param = {GL_AMBIENT|GL_DIFFUSE|GL_EMISSIVE|GL_SPECULAR}
value = float[4] // RGBA
void glMaterialf(GLenum face,GL_SHININESS,GLfloat value);

void glLightModelfv(GLеnum param,GLfloat *value);
param = LIGHT_MODEL_AMBIENT
value = float[4] // RGBA

void glLightfv(GLenum light,GLеnum param,GLfloat *value);
face = {GL_LIGHT0|GL_LIGHT1|…}
param = {GL_AMBIENT|GL_DIFFUSE|GL_SPECULAR}
value = float[4] // RGBA

Задаем параметры материала:

Задаем цвет источника освещения:

Задаем цвет фонового освещения:

Слайд 6

Установка параметров освещения. Часть 2.

void glLightfv(GLenum light, GL_POSITION,GLfloat *value);
face = {GL_LIGHT0|GL_LIGHT1|…}

Установка параметров освещения. Часть 2. void glLightfv(GLenum light, GL_POSITION,GLfloat *value); face =
value = float[4] // x,y,z,w

Задаем положение источника освещения:

Координаты источника освещения преобразуются текущей матрицей модельного преобразования!

Включаем расчет освещенности

void glEnable(GLenum type); type = GL_LIGHTING;

Включаем требуемые источники освещения

void glEnable(GLenum type); type = GL_LIGHT0;

Включаем требуемые источники освещения

void glShadeModel(GLenum type);
type = GL_FLAT; - плоская закраска грани
type = GL_SMOOTH - закраска по Гуро

Слайд 7

Интерполяция цвета

Вычислить цвет (RGB) в каждой вершине.
Вычислить цвет в точках P1 и

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

Слайд 8

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

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

Слайд 9

Интерполяция нормали

Вычислить нормали (RGB) в каждой вершине.
Вычислить нормаль в точках P1 и

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

Слайд 10

Растеризация

V1

V2

V3

Интерполяция цвета вдоль примитива - закраска по Гуро

Интерполяция координаты z

Растеризация V1 V2 V3 Интерполяция цвета вдоль примитива - закраска по Гуро Интерполяция координаты z
Имя файла: Рисуем-тор-.pptx
Количество просмотров: 101
Количество скачиваний: 0