Цели и задачи нефотореалистичной компьютерной графики. Артефакты и их классификация
Нефотореалистичная компьютерная графика
Шейдеры
Особенности скоростной обработки данных в графических ускорителях
Особенности обработки:
● Векторные вычисления могут реализоваться аппаратно на уровне процессора и шины (4-х компонентная для графических данных)
● Вычисления независимы друг от друга (SIMD)
● Используется несколько АЛУ => несколько операций выполняются за один такт
● Ориентация на вычисления: так как проверки условий в основном дают одинаковый результат, то на несколько АЛУ выделяется одно управляющее устройство (проверяет условия)
● Потоковый характер вычислений, буферизация: данные идут в одном направлении, разделяются на потоки по типу информации и по направлению.
Шейдеры — подпрограммы для собственной реализации процессоров вершин и фрагментов.
Графический конвейер не позволяет:
● создавать эффекты
● моделировать мелкие детали (микрорельеф)
Решения:
● Вершинный шейдер (процессор вершин)
○ Вход: вершины и их параметры
○ Выход: вершины в экранных координатах.
● Пиксельный шейдер (процессор фрагментов)
○ Вход: пиксель, его координаты, привязка к текстуре, нормаль и др.
○ Выход: цвет этого пикселя
Языки программирования шейдеров:
● DirectX asm
● GLSL (C-like for OpenGL)
● Cg (C for Graphics)
● HLSL (C-like; модифицированный Cg для DirectX)
○ Особенности:
■ Нет рекурсии
■ Нет передачи по ссылке
■ Все функции — inline (вызов функции компилятор заменяет телом функции)
■ Готовый шейдер можно загрузить, скомпилировать и отправить в конвейер
○ Модификаторы:
■ static (~ private)
■ uniform (~public)
■ const (~const)
■ shared (~ public volatile)
● Профессиональные
○ RenderMan
○ Gelato
Хозяйке на заметку:
● Технология CUDA позволяет выполнять неграфические вычисления с помощью графического процессора.
Причины создания НФР:
● человекорисунки приятнее на вид, чем точные модели
● их акценты человечнее
Цели НФР:
● имитация ИИ (а-ля тест Тьюринга в графике)
● исследование дизайна
● анализ восприятия (т.е. как прикладной инструмент для психологов)
Артефакты — отличия реального изображения от компьютерного (например, размытие, эффект Гало, нерезкость). Виды:
● артефакты модели (входных данных)
● артефакты алгоритма
● артефакты рисования графических примитивов
● артефакты закраски и текстурирования
● артефакты невидимых линий
● артефакты освещения
● артефакты проецирования
Цели внесения артефактов:
● сокрытие второстепенных деталей
● акцентирование важных деталей
● подчёркивание разницы (контрасты)
Маскирование позволяет создавать артефакты на уровне пикселей. Суть маскирования:
Маска позволяет задать микрорисунок. Требования к маске: