Лекция 8 25февраля 2003 г. (Астана) Видовые преобразования Закраска Гуро и Фонга Удаление невидимых линий и поверхностей
25 февраля 2003 г.Компьютерная графика. Лекция 8. Астана 2 Задача
25 февраля 2003 г.Компьютерная графика. Лекция 8. Астана 3 Решение задачи T(-1,-1) Sh(-1,0) S(1,2.5) T(4,0) P= T(4,0)*S(1,2.5)*Sh(-1,0)*T(-1,-1)*P
25 февраля 2003 г.Компьютерная графика. Лекция 8. Астана 4 Перспективная проекция
25 февраля 2003 г.Компьютерная графика. Лекция 8. Астана 5
25 февраля 2003 г.Компьютерная графика. Лекция 8. Астана 6 Синтез изображений (экранизация)
25 февраля 2003 г.Компьютерная графика. Лекция 8. Астана 7 Конвейер (Pipeline)
25 февраля 2003 г.Компьютерная графика. Лекция 8. Астана 8
25 февраля 2003 г.Компьютерная графика. Лекция 8. Астана 9
25 февраля 2003 г.Компьютерная графика. Лекция 8. Астана 10
25 февраля 2003 г.Компьютерная графика. Лекция 8. Астана 11 Видовое преобразование (Viewing transformation)
25 февраля 2003 г.Компьютерная графика. Лекция 8. Астана 12 План лекции Видовые преобразования Локальные модели освещения Закраска Гуро и Фонга Удаление невидимых линий и поверхностей
25 февраля 2003 г.Компьютерная графика. Лекция 8. Астана 13
25 февраля 2003 г.Компьютерная графика. Лекция 8. Астана 14
25 февраля 2003 г.Компьютерная графика. Лекция 8. Астана 15
25 февраля 2003 г.Компьютерная графика. Лекция 8. Астана 16
25 февраля 2003 г.Компьютерная графика. Лекция 8. Астана 17
25 февраля 2003 г.Компьютерная графика. Лекция 8. Астана 18
25 февраля 2003 г.Компьютерная графика. Лекция 8. Астана 19 Отсечение (CLIPPING)
25 февраля 2003 г.Компьютерная графика. Лекция 8. Астана 20 Конвейер (Pipeline)
25 февраля 2003 г.Компьютерная графика. Лекция 8. Астана 21 Камера в OpenGL Positioning the camera in OpenGL The OpenGL auxilliary library provides the call gluLookAt() to create the viewing transformation. gluLookAt(ex,ey,ez,rx,ry,rz,ux,uy,uz> where (ex,ey,ez) gives the eye point, (rx,ry,rz) gives the reference or 'lookat' point, and (ux,uy,uz) gives the up vector. This function call postmultiplies the current matrix, so the easiest way to use it is: glMatrixMode(GL_MODELVIEW); glLoadIdentity() gluLookAt(ex,ey,ez,rx,ry,rz,ux,uy,uz); /* setup modelling transformations here */
25 февраля 2003 г.Компьютерная графика. Лекция 8. Астана 22 Освещение и отражение
25 февраля 2003 г.Компьютерная графика. Лекция 8. Астана 23 Функции освещения и отражения
25 февраля 2003 г.Компьютерная графика. Лекция 8. Астана 24 Диффузное и зеркальное отражение
25 февраля 2003 г.Компьютерная графика. Лекция 8. Астана 25 Функции отражения
25 февраля 2003 г.Компьютерная графика. Лекция 8. Астана 26 Диффузное отражение
25 февраля 2003 г.Компьютерная графика. Лекция 8. Астана 27 Зеркальное отражение
25 февраля 2003 г.Компьютерная графика. Лекция 8. Астана 28 Модель Фонга
25 февраля 2003 г.Компьютерная графика. Лекция 8. Астана 29 Синтез изображений for each polygon in model project polygon onto viewing plane for each pixel in polygon calculate pixel colour calculate pixel z-value compare pixel z-value to value stored for pixel in z-buffer if pixel is closer, draw it in frame-buffer and z-buffer end
25 февраля 2003 г.Компьютерная графика. Лекция 8. Астана 30 Интерполяционная закраска (Interpolative Shading) Аппроксимация объекта плоскими гранями Вычисление нормалей Гладкая интерполяция нормалей
25 февраля 2003 г.Компьютерная графика. Лекция 8. Астана 31 Вычисление нормалей Нормали в вершинах вычисляются усреднением нормалей смежных граней
25 февраля 2003 г.Компьютерная графика. Лекция 8. Астана 32 Интерполяция цвета Вычислить цвет (RGB) в каждой вершине. Вычислить цвет в точках P1 и 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))
25 февраля 2003 г.Компьютерная графика. Лекция 8. Астана 33 Исчезают блики
25 февраля 2003 г.Компьютерная графика. Лекция 8. Астана 34 Интерполяция нормалей Вычислить нормали (RGB) в каждой вершине. Вычислить нормаль в точках P1 и 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)) Вычислить цвет в точке Р.
25 февраля 2003 г.Компьютерная графика. Лекция 8. Астана 35 «Клонирование» вершин В вершине D нужно иметь две нормали Одна нормаль для гладкой закраски боковой поверхности Другая нормаль для закраски торца На острых ребрах нормали дублируются
25 февраля 2003 г.Компьютерная графика. Лекция 8. Астана 36 Волнообразная поверхность (1)
25 февраля 2003 г.Компьютерная графика. Лекция 8. Астана 37 Волнообразная поверхность (2)
25 февраля 2003 г.Компьютерная графика. Лекция 8. Астана 38 Волнообразная поверхность (3)
25 февраля 2003 г.Компьютерная графика. Лекция 8. Астана 39 Конус
25 февраля 2003 г.Компьютерная графика. Лекция 8. Астана 40 Удаление невидимых линий
25 февраля 2003 г.Компьютерная графика. Лекция 8. Астана 41 Z - буфер В Z-буфере отводится одно значение на каждый пиксел. Вначале всем им присваивается 1.0 (что соответствует z = в перспективной проекции). Многоугольник заполняется обычным образом. Пиксел рисуется, если он ближе.
25 февраля 2003 г.Компьютерная графика. Лекция 8. Астана 42 Достоинства и недостатки
25 февраля 2003 г.Компьютерная графика. Лекция 8. Астана 43 Удаление невидимых поверхностей
25 февраля 2003 г.Компьютерная графика. Лекция 8. Астана 44 Алгоритм художника (маляра)
25 февраля 2003 г.Компьютерная графика. Лекция 8. Астана 45 Алгоритм сортировки по глубине (depth-sort) Упорядочить все многоугольники в соответствии с наименьшей (дальней координатой z Разрешить неоднозначности, которые вызывают наложение z-габаритов Нарисовать многоугольники в порядке возрастания наименьшей координаты z
25 февраля 2003 г.Компьютерная графика. Лекция 8. Астана 46
25 февраля 2003 г.Компьютерная графика. Лекция 8. Астана 47 Неоднозначности (ambiguities)
25 февраля 2003 г.Компьютерная графика. Лекция 8. Астана 48 Пять тестов 1. Накладываются ли x-габариты мн-ков? 2. Накладываются ли y-габариты мн-ков?
25 февраля 2003 г.Компьютерная графика. Лекция 8. Астана 49 Наложение габаритов по x и y
25 февраля 2003 г.Компьютерная графика. Лекция 8. Астана 50 Пять тестов 1. Накладываются ли x-габариты мн-ков? 2. Накладываются ли y-габариты мн-ков? 3. P полностью за плоскостью Q по отношению к наблюдателю? 4. Q полностью перед плоскостью P по отношению к наблюдателю?
25 февраля 2003 г.Компьютерная графика. Лекция 8. Астана 51 Тест 3 и Тест 4
25 февраля 2003 г.Компьютерная графика. Лекция 8. Астана 52 Пять тестов 1. Накладываются ли x-габариты мн-ков? 2. Накладываются ли y-габариты мн-ков? 3. P полностью за плоскостью Q по отношению к наблюдателю? 4. Q полностью перед плоскостью P по отношению к наблюдателю? 5. Пересекаются ли проекции многоугольников на плоскость (x, y)?
25 февраля 2003 г.Компьютерная графика. Лекция 8. Астана 53 Результат сортировки шести многоугольников