доц. д-р Александър Пенев Компютърна Графика и Презентации Алгоритми за Визуализация
Визуализация Алгоритми за Визуализация 2/55
Визуализация Построяване на изображение съответстващо на модел. Операция по преобразуване на представяне на двумерни/тримерни обекти в графично изображение. Алгоритми за Визуализация 3/55
Класификация Алгоритми работещи в обектното пространство; Алгоритми работещи в екранното пространство; Алгоритми работещи в екранното и в обектното пространство. Отстраняване на невидимите линии и повърхности; Построяване на реалистични изображения. Алгоритми за Визуализация 4/55
Алгоритми за визуализация ВИЗУАЛИЗАЦИЯ В обектното п-во: От сцената напред към камерата/наблюдателя. (Пример: Z-буфер) В екранното п-во: От камерата назад към сцената/геометрията. (Пример: Ray tracing) Алгоритми за Визуализация 5/55
Обща постановка Наблюдател Y Проекционна Равнина Обем на видимост y X x Z Прозорец на Гледане (ViewPort) z Пространствена Сцена Алгоритми за Визуализация 6/55
Алгоритми за Визуализация Алгоритъм на плаващият хоризонт; Алгоритъм на Робъртс; Алгоритъм на Варнок; Разбиване на криволинейни повърхности; Алгоритъм, използващ Z-буфер; Алгоритъм, използващ списък на приоритетите; Алгоритми за поредово сканиране; Интервален алгоритми за поредово сканиране; Radiosity; Трасиране на лъчи (Ray Tracing); Алгоритми за Визуализация 7/55
Алгоритъм на плаващия хоризонт Алгоритми за Визуализация 8/55
Алгоритъм на плаващия хоризонт Алгоритъмът на плаващият хоризонт се използва най-често за отстраняването на невидимите линии при тримерно представяне на функции, описващи повърхности във вида F(x,y,z)=0 Алгоритми за Визуализация 9/55
Алгоритъм на плаващия хоризонт Основната идея е да се визуализират последователно сечения на функцията с различни равнини (например z=const), започвайки от найблизката до наблюдателя. Алгоритми за Визуализация 10/55
Алгоритъм на плаващия хоризонт Всяко сечение е крива, която се визуализира по x, като се показват само тези точки, за които y не е помалко от това на предишните сечения. Алгоритми за Визуализация 11/55
Алгоритъм на плаващия хоризонт За целта се използва масив съхраняващ максималните стойности на y за всяко x до момента. Това е така нареченият хоризонт. Алгоритми за Визуализация 12/55
Пример y x z z 4 z 3 z 2 z 1 Алгоритми за Визуализация 13/55
Пример y z 4 x x x min max z 3 z 2 z 1 x Алгоритми за Визуализация 14/55
Пример 2 Алгоритми за Визуализация 15/55
Алгоритъм на Робъртс Алгоритми за Визуализация 16/55
Алгоритъм на Робъртс Основната идея е за тримерните тела (изпъкнали многостени, описани чрез стените си) да се пресметнат ъглите между посоката на гледане на наблюдателя и нормалните вектори на всички стени. L. Roberts Това става чрез скаларно произведение на вектора на посоката на гледане и всеки от нормалните вектори на стените. Алгоритми за Визуализация 17/55
Алгоритъм на Робъртс Телата трябва да са изпъкнали. Нормалните вектори да сочат в посока навън от тялото. Определят се кои стени не са видими. Алгоритми за Визуализация 18/55
Алгоритъм на Робъртс Определят се кои стени не са видими в зависимост от ъглите. В зависимост от видимостта на стените ребрата може да се класифицират като: Видими; Контурни; Невидими. Алгоритми за Визуализация 19/55
Алгоритъм на Робъртс За всички видими се прави проверка за закриване от всички други тела и се определят видимите части. Визуализират се всички без невидимите. Алгоритми за Визуализация 20/55
Алгоритъм на Робъртс Класификация на ребрата y >90 <90 x z наблюдател контурни ребра видими ребра невидими ребра Алгоритми за Визуализация 21/55
Алгоритъм на Робъртс y x z Алгоритми за Визуализация 22/55
Алгоритъм на Робъртс Алгоритми за Визуализация 23/55
Алгоритъм на Варнок Алгоритми за Визуализация 24/55
Алгоритъм на Варнок Идеята е че за обработката на области, съдържащи малко информация, се изразходват малко време и усилие. Използва се свойството на изображението кохерентност. J. Warnock По-голямата част от времето и труда се ангажират от области с високо информационно съдържание. Алгоритми за Визуализация 25/55
Типизация на многоъгълник относно прозорец Прозорец Многоъгълник Обхващащ, ако прозореца се намира изцяло вътре в многоъгълника. Алгоритми за Визуализация 26/55
Типизация на многоъгълник относно прозорец Пресичащ, ако вътрешността и границата на многоъгълника имат общи точки с вътрешността и границата на прозореца. Алгоритми за Визуализация 27/55
Типизация на многоъгълник относно прозорец Вътрешен, ако той се намира изцяло вътре в прозореца. Алгоритми за Визуализация 28/55
Типизация на многоъгълник относно прозорец Външен, ако той се намира изцяло извън прозореца. Алгоритми за Визуализация 29/55
Алгоритъм на Варнок Алгоритми за Визуализация 30/55
Алгоритъм на Варнок Алгоритми за Визуализация 31/55
Алгоритъм на Варнок Алгоритми за Визуализация 32/55
Алгоритъм на Варнок Алгоритми за Визуализация 33/55
Алгоритъм, използващ Z-буфер Алгоритми за Визуализация 34/55
Алгоритъм, използващ Z-буфер Това е един от най-простите алгоритми за отстраняване на невидими повърхности; За пръв път той е предложен от Кетмул; Алгоритъмът работи в пространството на изображенията. Идеята за Z-буфер е просто обобщение на идеята за буфер на кадъра. Ed. Catmull Алгоритми за Визуализация 35/55
Алгоритъм, използващ Z-буфер M N Цветовете, които съответстват на всеки пиксел се записват в матрица МxN, която наричаме буфер на кадъра (Frame buffer или Color buffer). Алгоритми за Визуализация 36/55
Алгоритъм, използващ Z-буфер N M Цветовете, които съответстват на всеки пиксел се записват в матрица МxN, която наричаме буфер на кадъра (Color Buffer). Използва се втори буфер на дълбочината (Depth Buffer), в който се записва найблизкото до наблюдателя разстояние. Алгоритми за Визуализация 37/55
Пример Буфер на цвета (Color Buffer) Буфер на дълбочината (Depth Buffer) Алгоритми за Визуализация 38/55
Алгоритъм, използващ списък на приоритетите (Алгоритъм на художника) Алгоритми за Визуализация 39/55
Алгоритъм, използващ списък на приоритетите Основната идея е многоъгълниците да се наредят по някакъв критерии (например по отдалеченост от наблюдателят) и да се изрисуват в обратна посока. Този алгоритъм още се нарича Алгоритъм на художника. Алгоритми за Визуализация 40/55
Пример Алгоритми за Визуализация 41/55
Пример Алгоритми за Визуализация 42/55
Пример Алгоритми за Визуализация 43/55
Проблеми Циклично припокриване Проникване Алгоритми за Визуализация 44/55
Интервален алгоритъм за Поредово сканиране Алгоритми за Визуализация 45/55
Поредово сканиране (интервален алгоритъм) Алгоритми за Визуализация 46/55
Radiosity Алгоритми за Визуализация 47/55
Локално срещу Глобално осветяване Алгоритми за Визуализация 48/55
Radiosoty Геометрията на сцената се разбива на много малки повърхности, след което се пресмята пренасянето на светлината между всеки две от тях. Алгоритми за Визуализация 49/55
Пример Алгоритми за Визуализация 50/55
Ray Tracing Алгоритми за Визуализация 51/55
Ray Tracing светлинен източник пречупен лъч (ген.3) камера отразен лъч (ген.3) отразен лъч (ген.2) сонда за сянка първичен лъч (генерация 0) отразен лъч (генерация 1) Алгоритми за Визуализация 52/55
Пример 1 Алгоритми за Визуализация 53/55
Пример 2 Алгоритми за Визуализация 54/55
Въпроси? apenev@uni-plovdiv.bg Алгоритми за Визуализация 55/55