- •3.Способы представления объектов в компьютерной графике. 2d и 3d Модели.
- •4.Аффинные преобразования в двухмерном пространстве. Матричная запись.
- •6.Аффинные преобразования в трехмерном пространстве. Повороты. Композиция преобразований.
- •7. Проецирование. Виды проекций. Перспективная проекция.
- •8.Алгоритм Ньюэла-Нюэла-Санча
- •9.Удаления невидимых линий и поверхностей. Алгоритм, использующий z-буфер.
- •10.Удаления невидимых линий и поверхностей. Алгоритм Вейлера-Азертона.
- •11.Алгоритм определения видимых поверхностей путем трассировки лучей.
- •13.Триангуляция Делоне
- •12.Сортировка граней по глубине. Алгоритм художника.
- •14.Простая модель освещения
- •15.Освещение и свет в компьютерной графике. Алгоритм плоского закрашивания.
- •16.Освещение и свет в компьютерной графике. Закрашивание методом Гуро.
- •17.Освещение и свет в компьютерной графике. Закрашивание по Фонгу.
- •18.Построение шероховатой поверхности.
- •19.Текстурирование. Mip-mapping.
- •20.Текстурирование. Фильтрация текстур.
- •21.Прозрачность в компьютерной графике. Альфа-смешение.
- •22.Постобработка изображений.
- •24.Параметрическое представление кривых. Кривые Безье, в-сплайны.
- •25.Описание поверхностей. Типы поверхностей.
17.Освещение и свет в компьютерной графике. Закрашивание по Фонгу.
Как и метод закраски Гуро, закраска Фонга при расчете интенсивности также опирается на интерполирование. Однако в отличие от метода Гуро здесь интерполируется не значение интенсивности по уже известным ее значениям в опорных точках, а значение вектора внешней нормали, которое затем используется для вычисления интенсивности пикселя. Поэтому закраска Фонга требует заметно большего объема вычислений. Правда, при этом и изображение получается более близким к реалистичному (в частности, при закраске Фонга зеркальные блики выглядят довольно правдоподобно).
Сначала компьютер вычисляет нормали для каждой вершины модели. Нормаль вершины считается как среднее между нормалями всех многоугольников, пересекающихся в данной вершине.
Нормали ребер и внутренние нормали многоугольника находятся с помощью интерполяции нормалей вершин. При этом получается поле псевдонормалей.
Для данного многоугольника интенсивность освещения в каждой точке считается так же, как и для всей поверхности при плоской закраске. Интенсивность освещения в точке пропорциональна косинусу угла между нормалью в точке и направлением падающего света.
Проводя этот процесс для каждого многоугольника и удаляя невидимые поверхности, получим изображение, закрашенное методом Фонга. Эта закраска более реалистичная, чем методом Гуро, но и требует большей вычислительной мощи. Единственным видимым доказательством того, что изображение получено из полигональной модели, является немного изломанный контур изображения.
18.Построение шероховатой поверхности.
19.Текстурирование. Mip-mapping.
Текстурирование:
Для придания большей реалистичности при прорисовке примитивов на экране, прибегают к помощи текстур. Текстура представляет собой двумерное растровое изображение, которое накладывается на поверхность объекта. Текстуры, как правило, хранятся в графических файлах, формата .jpg, .gif. Процесс наложения текстуры называется текстурирование. Текстуры накладываются на объект с помощью, так называемых текстурных координат, которые представляют собой пару чисел (u, v) изменяющихся в пределах от (0,1) и определяются в своей системе координат. Ось u направлена горизонтально вправо, ось v – вертикально вниз. Пара величин u, v однозначно указывает на элемент текстуры, называемый текселом.
Для каждой вершины треугольника, определяются текстурные координаты, тем самым происходит связывание с некоторой треугольной областью, на текстуре. Затем происходит загрузка текстуры из графического файла, например direct 3D – это действие осуществляется с помощью функции D3DхCreateTextureFromFile с тремя параметрами. Первый параметр определяет указатель на устройство вывода, второй параметр содержит строку, содержащий путь к файлу структур, третий определяет переменную, в которых будет хранится указатель на текстуру. Последний шаг при работе с текстурами, заключается в активации нужной текстуры, перед выводом примитивов.
Mip-mapping:
Даже если объект неподвижен, его полигоны все равно меняют форму, вследствие изменения угла зрения наблюдателя или его движения, поэтому текстура, помещенная на объект, так же должна двигаться, что влечет за собой дополнительную обработку изображения. Простое изменение разрешения текстур может повлечь за собой отрицательный эффект, когда одна текстура визуально сливается с другой. Еще один отрицательный эффект возникает когда тексел больше размером, чем требуемое количество пикселей. Обе ситуации возникают при применении традиционного сглаживания. Для устранения этих недостатков, был предложен mipmaping, суть которого заключается в следующем: оригинальная текстура генерируется в различных ситуациях таким образом, что бы корректно отображать текстуру на разных расстояниях и на разных углах зрения. При приближении к объекту, показывается текстура с более высоким разрешением, а при отдалении, с более низким. Т.о. mip-maping улучшает качество изображения и уменьшает неровности.
Точечное текстурирование является базовым видом наложения текстур. При нем выбирается отдельные фрагмент текстуры и используется как цветовое значение для пикселя. Это влет за собой ухудшение качества изображения. В настоящее время, данный подход не применяется.
