23. Метод Гуро
Этот метод предназначен для создания иллюзии гладкой криволинейной поверхности, описанной в виде многогранников или полигональной сетки с плоскими гранями. Если каждая плоская грань имеет один постоянный цвет, определенный с учетом отражения, то различные цвета соседних граней очень заметны и поверхность выглядит именно как многогранник. Казалось бы, этот дефект можно замаскировать за счет увеличения числа граней при аппроксимации поверхности. Но зрение человека имеет способность подчеркивать перепады яркости на границах смежных граней – такой эффект называется эффектом полос Маха. Поэтому для создания иллюзии гладкости нужно намного увеличить число граней, что приводит к существенному замедлению визуализации – чем больше граней, тем меньше скорость рисования объектов.
Метод Гуро основывается на идее закрашивания каждой плоской грани не одним цветом, а плавно изменяющимися оттенками, вычисляемыми путем интерполяции цветов примыкающих граней.
Закрашивание граней по методу Гуро осуществляется в четыре этапа.
Вычисляются нормали к каждой грани.
Определяются нормали в вершинах. Нормаль в вершине определяется усреднением нормалей примыкающих граней (рис. 28).
На основе нормалей в вершинах вычисляются значения интенсивности в вершинах согласно выбранной модели отражения света.
Закрашиваются полигоны граней цветом, соответствующим линейной интерполяции значений интенсивности в вершинах.
Вектор нормали в вершине (a) равен: Na = (N1 + N2 + N3) / 3.
Интерполированные значения интенсивности отраженного света в каждой точке грани (и, следовательно, цвет каждого пиксела) удобно определять во время цикла заполнения полигона. Рассмотрим заполнение контура грани горизонталями в экранных координатах (рис. 29).
Интерполированная интенсивность I в точке (X, Y) определяется исходя из пропорции
(I - I1) / (X - X1) = (I2 - I1) / (X2 - X1).
Отсюда I = I1 + (I2 - I1) (X - X1) / (X2 - X1).
Значения интенсивностей I1 и I2 на концах горизонтального отрезка представляют собой интерполяцию интенсивности в вершинах:
(I1 - Ib) / (Y - Yb) = (Ic - Ib) / (Yc - Yb)
(I2 - Ib) / (Y - Yb) = (Ia - Ib) / (Ya - Yb)
или
I1 = Ib + (Ic - Ib) (Y - Yb) / (Yc - Yb)
I2 = Ib + (Ia - Ib) (Y - Yb) / (Ya - Yb)
- 3. История развития комп графики
- 7, Системы координат
- 8. Устройства ввода
- Диалоговые
- Полуавтоматически (дигитайзер,
- 12. Системы кодирования цвета.
- 13. Устройства вывода
- 16. Алгоритм вывода окружности
- 17. Удаление невидимых линий и поверхностей
- Алгоритм Для каждого окна:
- 18. Показ с удалением невидимых точек. Классификация методов
- 19. Метод z-буфера
- 20. Алгоритмы построчного сканирования
- 2. Интервальный алгоритм построчного сканирования.
- 21. Алгоритм художника
- 22. Flat – закраска
- 23. Метод Гуро
- Метод Фонга
- 25. Построение поверхностей
- 27. Отсечение нелицевых граней
- 29. Параметрические уравнения линий.
- 30 . Кривые Безье
- 31. Форматы файлов растровой графики.
- 32. Аддитивная цветовая модель rgb
- 33. Субтрактивная цветовая модель cmy
- 34. Аффинные преобразования координат на плоскости:
- 35. Проекции
- Параллельные проекции Перпендикулярное проецирование на картинную плоскость Косоугольное проецирование на картинную плоскость
- 36. Аналитическая модель поверхности
- 37. Векторная полигональная модель
- 38. Воксельная модель
- 39. Равномерная сетка
- 40. Неравномерная сетка. Изолинии
- 41. Визуализация трехмерных изображений Проецирование трехмерных объектов на картинную плоскость
- Уровни визуализации
- Каркасная визуализация
- 42 . Расчет нормали к объекту