Читайте также:
|
|
Исходя из ограничения разрешения экрана, довольно быстро пришли к необходимости разрабатывать и использовать алгоритмы, дающие не точные, как в первом семействе, а приближённые решения.
Одним из первых таких алгоритмов был алгоритм Варнака. Его основные идеи базируются на том, что большая часть вычислений затрачивается на обработку высокоинформативных областей, поэтому основная задача – найти такие области как можно быстрее. Считается, что в ограниченном видимом объёме пространства, можно распознать некоторое конечное число возможных ситуаций для визуализации:
- проекция видимого объёма – окно, в него не попала проекция ни 1 элемента сцены. Окно закрашивается цветом фона;
- окно охватывается проекцией ближайших к нему по глубине граней. Окно закрашивается цветом этой грани.
- размеры окна равны пикселю. Окно закрашивается цветом, ближайший от наблюдателя по направлению проецирующего луча, проходящего через данный пиксель, охватывающий грани.
- не распознана ни одна из предыдущих ситуаций. Тогда окно разбивается на 4 подокна и алгоритм повторяется для каждого из них.
Алгоритм быстр, позволяет применять для анализа параллельного вычисления, применим к удалению рёбер и граней.
Сейчас нет единого алгоритма Варнака. Конкретная реализация отличается в деталях, зависит от методов разбиения окна и критериев красоты его содержимого.
К данной группе можно отнести 1 из простейших и самых универсальных алгоритмов загораживания – алгоритм Z-Буфера Кэтмэна. Буфер глубины (Z-буфер) – расстояние вдоль направления проецирования от точки поверхности объекта до картины. Алгоритм работает в пространстве изображения. В буфере глубины запоминается z координата каждого пикселя изображения объектов сцены. Инициализируется массив максимальной глубиной сцены от экрана. В процессе визуализации z координата очередной визуализированной точки на полигоне, проецируемой в пиксель экрана, сравнивается с уже запомненной для данного пикселя. Если её значение меньше запомненного, она выводится, а её z координата замещает предыдущее значение.
По сути, алгоритм ищет по известным x,y наименьший z. В современных графических станциях под глубину используют 3 байта.
Существует множество аппаратных реализаций алгоритма, много модификаций, например, для прозрачных поверхностей применяют альфа-буфер. Алгоритм прекрасно сочетается с конвейерной архитектурой графической системы и может выполняться со скоростью, соответствующей скоростью обработки вершин остальным модулями конвейера.
Дата добавления: 2015-01-07; просмотров: 100 | Поможем написать вашу работу | Нарушение авторских прав |