- •1 Аксонометрические проекции. Изометрия, диметрия, триметрия
- •2 Алгоритмы разложения в растр отрезка прямой линии и окружности
- •4 Использование методов порталов и иерархических подсцен при создании виртуальной реальности. Метод порталов
- •5 Классификация цветовых моделей и форматов компьютерной графики
- •6 Колориметрия. Цветовые модели, смешение цветов и законы Гроссмана
- •7 Математическая модель и виды перспективного проецирования
- •8 Методы геометрического моделирования
- •9 Моделирование кривых и поверхностей в форме Безье
- •10 Моделирование кривых и поверхностей в форме Эрмита
- •11. Моделирование прозрачности и теней при построении реалистических изображений
- •12. Моделирование трехмерных поверхностей порциями поверхностей Кунса
- •13 Моделирование фотореалистичных изображений при помощи метода излучательности
- •14. Построение реалистических изображений методом Торренсанса-Сперроу
- •15. Построение реалистичных изображений. Формула закраски
- •16. Преобразования на плоскости и в пространстве. Система однородных координат
- •17. Развертка сплошных областей. Алгоритмы построчной развертки и заполнения с затравкой.
- •18. Сплайновая модель пространственных кривых и поверхностей
- •19. Формирование изображений трехмерного пространства методом отсечения лучей.
- •20. Формирование изображений трехмерного пространства при помощи алгоритмов, основанных на построении bsp-деревьев
- •Алгоритмы двоичного разбиения пространства
- •21. Формирование окраски методом Гуро
- •22. Формирование окраски методом Фонга
- •23. Формирование реалистических изображений методом трассировки лучей
- •24. Цветовые модели, ориентированные на аппаратуру и восприятие человеком
- •2. Аппаратно-ориентированные модели
- •2. Модели ориентированные на человека
- •25. Цветовые форматы и стандарты мко
19. Формирование изображений трехмерного пространства методом отсечения лучей.
Алгоритм отсечения лучей (Ray Casting) - простейшим вариантом алг-в обеспечивающих виртуальную реальность. Наиболее известно использование этого алгоритма в качестве графического ядра первых 3D игровых программ. Идея АОЛ: при построении каждого очередного кадра по направлению взгляда наблюдателя в этом пространстве отсекается сектор лучей (600-900). Все остальные лучи, выходящие за поле просмотра, не рассматриваются, то есть отсекаются. В алгоритме не учитываются источники света и отражательные характеристики поверхности объекта.
Динамические объекты сцены (движущиеся персонажи) реализованы в виде спрайтов. -
- семейство растровых изображений, отображающих фазы движения какого-либо объекта. Спрайт используется для формирования анимационных последовательностей в игровых и мультимедийных программах.
Поэтому данное графическое ядро относят к 2,5D графическим программам. АОЛ за цикл своей работы автоматики выполняет следующие операции:
1. Удаление невидимых поверхностей;
2. Создание перспективы;
3. Образование теней и освещения;
4. Отображение текстуры объекта.
В общем случае АОЛ состоит из семи этапов:
1. Предварительный;
2. Вычисление координат первого пересечения с координатной сеткой;
3. Вычисление последних пересечений с координатной сеткой;
4. Определение расстояний до точек пересечения;
5. Масштабирование;
6. Устранение проекционного искажения;
7. Отображение линии развертки.
Этап 1
На предварительном этапе осуществляются следующие операции:
1) формирование табличных значений тригонометрических функций;
2) выделение в оперативной памяти рабочего пространства;
3) формирование начального заполнения кадра развертки;
1)Формирование табличных значений. Данная операция заключается в выделении памяти и заполнении таблицы тригонометрических функций, используемых при геометрических расчетах. Замена функциональных выражений на табличное значение является стандартным приемом, позволяющим ускорить обработку данных.
В данном случае для проведения геометрических построений требуется определить синус, косинус, тангенс при угле от 00 до 3600. Количество элементов таблиц легко определить по следующей формуле:
где L - ширина кадра, α - угол наблюдения.
2)Выделение рабочего пространства. Выделение рабочей памяти для объектного пространства происходит по заранее подготовленным исходным данным. При формировании пространства образуется двойная система координат объекта:
1) координаты текущего куба;
2) координаты объекта внутри этого куба.
3)Начальное заполнение кадра. Формирование фона в простейшем случае осуществляется делением экрана на две половины: пол/потолок или земля/небо.
Этап 2
Для вычисления координат первого пересечения используют уравнение прямой:
где α - угол наклона относительно горизонта,
xн,yн – положение наблюдателя, xi, yi – искомая точка.
Исходя из этой формулы можно вычислить координаты точек пересечений с сеткой моделируемого пространства:
Этап 3
Возможны два варианта пересечений луча-наблюдателя с координатной сеткой с меридианами и параллелями. Пересечение с вертикальными гранями будем называть пересечением с Х-гранями, с горизонтальными – пересечением с Y-гранями. Согласно вышеприведенным рисункам последовательные вычисления производятся через приращение координат.
Здесь: m - размер сетки, k – наклон луча наблюдения относительно координатной сетки.
После определения очередной координаты x или y необходимо проверить наличие в этом кубе объекта. Если на пути следования луча такой объект есть, то переходим к этапу 4. В противном случае этап 3 повторяем.
Этап 4
Расстояние от наблюдателя до ближайшего объекта по направлению следования луча определяется по одной из формул:
Lx=(yi-yH)/sinα
Ly=(xi-xH)/cosα
Этап 5
Определив расстояние до точки пересечения, можно определить масштаб ее отображения в кадре: где k - коэффициент, подбирающийся эмпирически, L(x,y) – значение Lx или Ly в зависимости от ориентации объекта.
Этап 6
Необходимость устранения искажений объясняется тем, что при формировании кадра, содержащего объекты, находящиеся на малом расстоянии друг от друга, возникает эффект рыбьего глаза. Для устранения искажения масштаб S делят на cosβ: , где β - отклонение луча от нормального изображения.
Этап 7.
Если для отображения куба используются не текстурированные объекты (одного цвета), то вертикальная линия развертки определяется следующим образом:
где h0- линия горизонта, S’ – величина, полученная на предыдущем этапе.