Слайд 125 февраля 2003 г.
Компьютерная графика. Лекция 8. Астана
Лекция 8
25февраля 2003 г.
(Астана)
Видовые преобразования
Закраска Гуро и Фонга
Удаление невидимых линий и поверхностей
Слайд 225 февраля 2003 г.
Компьютерная графика. Лекция 8. Астана
Задача
Слайд 325 февраля 2003 г.
Компьютерная графика. Лекция 8. Астана
Решение задачи
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
Слайд 425 февраля 2003 г.
Компьютерная графика. Лекция 8. Астана
Перспективная проекция
Слайд 525 февраля 2003 г.
Компьютерная графика. Лекция 8. Астана
Слайд 625 февраля 2003 г.
Компьютерная графика. Лекция 8. Астана
Синтез изображений (экранизация)
Слайд 725 февраля 2003 г.
Компьютерная графика. Лекция 8. Астана
Конвейер (Pipeline)
Слайд 825 февраля 2003 г.
Компьютерная графика. Лекция 8. Астана
Слайд 925 февраля 2003 г.
Компьютерная графика. Лекция 8. Астана
Слайд 1025 февраля 2003 г.
Компьютерная графика. Лекция 8. Астана
Слайд 1125 февраля 2003 г.
Компьютерная графика. Лекция 8. Астана
Видовое преобразование (Viewing transformation)
Слайд 1225 февраля 2003 г.
Компьютерная графика. Лекция 8. Астана
План лекции
Видовые преобразования
Локальные модели
освещения
Закраска Гуро и Фонга
Удаление невидимых линий и поверхностей
Слайд 1325 февраля 2003 г.
Компьютерная графика. Лекция 8. Астана
Слайд 1425 февраля 2003 г.
Компьютерная графика. Лекция 8. Астана
Слайд 1525 февраля 2003 г.
Компьютерная графика. Лекция 8. Астана
Слайд 1625 февраля 2003 г.
Компьютерная графика. Лекция 8. Астана
Слайд 1725 февраля 2003 г.
Компьютерная графика. Лекция 8. Астана
Слайд 1825 февраля 2003 г.
Компьютерная графика. Лекция 8. Астана
Слайд 1925 февраля 2003 г.
Компьютерная графика. Лекция 8. Астана
Отсечение (CLIPPING)
Слайд 2025 февраля 2003 г.
Компьютерная графика. Лекция 8. Астана
Конвейер (Pipeline)
Слайд 2125 февраля 2003 г.
Компьютерная графика. Лекция 8. Астана
Камера в 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 */
Слайд 2225 февраля 2003 г.
Компьютерная графика. Лекция 8. Астана
Освещение и отражение
Слайд 2325 февраля 2003 г.
Компьютерная графика. Лекция 8. Астана
Функции освещения и отражения
Слайд 2425 февраля 2003 г.
Компьютерная графика. Лекция 8. Астана
Диффузное и зеркальное отражение
Слайд 2525 февраля 2003 г.
Компьютерная графика. Лекция 8. Астана
Функции отражения
Слайд 2625 февраля 2003 г.
Компьютерная графика. Лекция 8. Астана
Диффузное отражение
Слайд 2725 февраля 2003 г.
Компьютерная графика. Лекция 8. Астана
Зеркальное отражение
Слайд 2825 февраля 2003 г.
Компьютерная графика. Лекция 8. Астана
Модель Фонга
Слайд 2925 февраля 2003 г.
Компьютерная графика. Лекция 8. Астана
Синтез изображений
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
end
Слайд 3025 февраля 2003 г.
Компьютерная графика. Лекция 8. Астана
Интерполяционная закраска
(Interpolative Shading)
Аппроксимация объекта
плоскими гранями
Вычисление нормалей
Гладкая интерполяция нормалей
Слайд 3125 февраля 2003 г.
Компьютерная графика. Лекция 8. Астана
Вычисление нормалей
Нормали в вершинах
вычисляются усреднением нормалей смежных граней
Слайд 3225 февраля 2003 г.
Компьютерная графика. Лекция 8. Астана
Интерполяция цвета
Вычислить цвет (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))
Слайд 3325 февраля 2003 г.
Компьютерная графика. Лекция 8. Астана
Исчезают блики
Слайд 3425 февраля 2003 г.
Компьютерная графика. Лекция 8. Астана
Интерполяция нормалей
Вычислить нормали (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))
Вычислить цвет в точке Р.
Слайд 3525 февраля 2003 г.
Компьютерная графика. Лекция 8. Астана
«Клонирование» вершин
В вершине D
нужно иметь две нормали
Одна нормаль для гладкой закраски боковой поверхности
Другая нормаль для закраски торца
На острых ребрах нормали дублируются
Слайд 3625 февраля 2003 г.
Компьютерная графика. Лекция 8. Астана
Волнообразная поверхность (1)
Слайд 3725 февраля 2003 г.
Компьютерная графика. Лекция 8. Астана
Волнообразная поверхность (2)
Слайд 3825 февраля 2003 г.
Компьютерная графика. Лекция 8. Астана
Волнообразная поверхность (3)
Слайд 3925 февраля 2003 г.
Компьютерная графика. Лекция 8. Астана
Конус
Слайд 4025 февраля 2003 г.
Компьютерная графика. Лекция 8. Астана
Удаление невидимых линий
Слайд 4125 февраля 2003 г.
Компьютерная графика. Лекция 8. Астана
Z - буфер
В Z-буфере
отводится одно значение на каждый пиксел. Вначале всем им присваивается 1.0 (что соответствует z = в перспективной проекции). Многоугольник заполняется обычным образом. Пиксел рисуется, если он ближе.
Слайд 4225 февраля 2003 г.
Компьютерная графика. Лекция 8. Астана
Достоинства и недостатки
Слайд 4325 февраля 2003 г.
Компьютерная графика. Лекция 8. Астана
Удаление невидимых поверхностей
Слайд 4425 февраля 2003 г.
Компьютерная графика. Лекция 8. Астана
Алгоритм художника (маляра)
Слайд 4525 февраля 2003 г.
Компьютерная графика. Лекция 8. Астана
Алгоритм сортировки по глубине
(depth-sort)
Упорядочить все многоугольники в соответствии с наименьшей (дальней координатой z
Разрешить неоднозначности, которые вызывают наложение z-габаритов
Нарисовать многоугольники в порядке возрастания наименьшей координаты z
Слайд 4625 февраля 2003 г.
Компьютерная графика. Лекция 8. Астана
Слайд 4725 февраля 2003 г.
Компьютерная графика. Лекция 8. Астана
Неоднозначности (ambiguities)
Слайд 4825 февраля 2003 г.
Компьютерная графика. Лекция 8. Астана
Пять тестов
1. Накладываются ли
x-габариты мн-ков?
2. Накладываются ли y-габариты мн-ков?
Слайд 4925 февраля 2003 г.
Компьютерная графика. Лекция 8. Астана
Наложение габаритов
по x
и y
Слайд 5025 февраля 2003 г.
Компьютерная графика. Лекция 8. Астана
Пять тестов
1. Накладываются ли
x-габариты мн-ков?
2. Накладываются ли y-габариты мн-ков?
3. P полностью за плоскостью Q по отношению к наблюдателю?
4. Q полностью перед плоскостью P по отношению к наблюдателю?
Слайд 5125 февраля 2003 г.
Компьютерная графика. Лекция 8. Астана
Тест 3 и Тест
4
Слайд 5225 февраля 2003 г.
Компьютерная графика. Лекция 8. Астана
Пять тестов
1. Накладываются ли
x-габариты мн-ков?
2. Накладываются ли y-габариты мн-ков?
3. P полностью за плоскостью Q по отношению к наблюдателю?
4. Q полностью перед плоскостью P по отношению к наблюдателю?
5. Пересекаются ли проекции многоугольников на плоскость (x, y)?
Слайд 5325 февраля 2003 г.
Компьютерная графика. Лекция 8. Астана
Результат сортировки
шести многоугольников