39
Компютърна графика Компютърна графика Генериране на графично Генериране на графично изображение (визуализация) изображение (визуализация) доц. М. Иванова Технически университет - София

Computer Graphics Generirane Na Izobrajenie

Embed Size (px)

DESCRIPTION

компютърна графика генериране на изображение

Citation preview

Page 1: Computer Graphics Generirane Na Izobrajenie

Компютърна графикаКомпютърна графика

Генериране на графично Генериране на графично изображение (визуализация)изображение (визуализация)

доц. М. Иванова

Технически университет - София

Page 2: Computer Graphics Generirane Na Izobrajenie

Обработка на информацията в графичната система

• Две нива на обработка– Основна

обработка– Визуализационна

обработка

Основна обработка

Бази от данни

Геометрично моделиране Приложни програми

Графични програми

Интерактивен диалог

Екранна картина

Дисплеен файл Кадров буфер

Визуализация

Page 3: Computer Graphics Generirane Na Izobrajenie

Основна обработка

скелетен (wire-frame) модел

повърхнинен (surface) модел

обемен (volume) модел

Видове геометрични модели

Page 4: Computer Graphics Generirane Na Izobrajenie

Основна обработка

• Методи за изграждане геометричен модел на 3D обект

Page 5: Computer Graphics Generirane Na Izobrajenie

Основна обработка

• Методи за изграждане геометричен модел на 3D обект

Page 6: Computer Graphics Generirane Na Izobrajenie

Основна обработка

• Методи за изграждане геометричен модел на 3D обект

Page 7: Computer Graphics Generirane Na Izobrajenie

Основна обработка

• Методи за изграждане геометричен модел на 3D обект

Page 8: Computer Graphics Generirane Na Izobrajenie

Състав на дисплейната картина• Графични примитиви – те са основни

графични елементи, които се използват за изграждане на дисплейния образ

• В инженерната практика, примитиви се наричат тези елементи, които се генерират апаратно в дисплейната станция или плотера

В този смисъл типични примитиви са: • точка, • вектор (отсечка), • буквено-цифров символ (текст)

Page 9: Computer Graphics Generirane Na Izobrajenie

Графични примитиви - стандартен набор - ISO стандартите GKS (Graphical Kernel System) и PHIGS (Programmer's

Hierarchical Interactive Graphics System)

1. Полилиния (Poliline) - представлява последователно свързани отсечки и се определя от координатите на крайните точки на всяка отсечка

2. Полимаркер(Polimarker) - представлява множество от графични символи (маркери) от един и същи тип , зададени чрез координатите на своите центрове

3. Текст (Text) - последователност (низ) от буквено-цифрови символи

+++++xxxxxx текст

Page 10: Computer Graphics Generirane Na Izobrajenie

Графични примитиви - стандартен набор

4. Запълнена област (Fill Area) - равнинен многоъгъник, който може да бьде празен, запълнен с даден цвят или с щриховка

5. Матрица от клетки (Cell Array) - матрица от клетки, запълнени с различни цветове

6. Обобщен чертожен примитив (Generalized Drawing Primitive) - по-сложни фигури, като окръжност, интерполирана крива, елипса и др.

Page 11: Computer Graphics Generirane Na Izobrajenie

Графични примитиви - параметри

• Всеки примитив има три типа параметри:– Геометрични – управляват формата и размера

на примитива – Негеометрични – указват начина на

изобразяване: цвят, тип на линията– Идентификатори – за улавяне на примитива с

интерактивно средство

Page 12: Computer Graphics Generirane Na Izobrajenie

Координатни системи

нормализирана координатна система

координатна система на графичното устройство

координатна система на камерата или на наблюдателя

глобална координатна система

локална координатна система

Page 13: Computer Graphics Generirane Na Izobrajenie

Моделен прозорец

• Всяка избрана моделна подобласт за визуализация на включените в тази подобласт обекти се нарича моделен прозорец

• От този прозорец се генерира образ върху екранната област

Page 14: Computer Graphics Generirane Na Izobrajenie

Функция прозорец, функция изрязване

• Преобразуването на моделния прозорец в екранен образ се нарича функция прозорец

• Друга функция, директно свързана с функцията прозорец, е т.нар. изрязване, с което се определя кои части от зададения графичен обект попадат в екранната област

Page 15: Computer Graphics Generirane Na Izobrajenie

Определяне и скриване на невидими линии

• Алгоритъм на Коен-Съдърленд

Page 16: Computer Graphics Generirane Na Izobrajenie

Определяне и скриване на невидими линии

• Алгоритъм на Коен-Съдърленд

Екран

0000

0110

0010

0011

0100

0001

1100

1000

1001

Екран

0000

0110

0010

0011

0100

0001

1100

1000

1001

Бит 1 Бит 2 Бит 3 Бит 4

ymax-y y-ymin xmax-x x-xmin

Page 17: Computer Graphics Generirane Na Izobrajenie

Определяне и скриване на невидими линии

• Алгоритъмът на Коен-Съдърленд е лесно приложим, когато примитивите (отсечки, триъгълници, многоъгълници, текст) лежат в една равнина

• Не е неприложим за отсечки, намиращи се пред или зад тази равнина или за такива, част от които се намират и пред и зад нея - В този по-сложен случай може да се приложи алгоритъмът на Съдърленд-Ходгеман

Page 18: Computer Graphics Generirane Na Izobrajenie

Алгоритъмът на Съдърленд-Ходгеман

• използва стратегията „разделяй и владей”

Page 19: Computer Graphics Generirane Na Izobrajenie

Проекции• При централна проекция обемът за

визуализация е пирамида, а при паралелна проекция пирамидата се модифицира в проекционна призма

Page 20: Computer Graphics Generirane Na Izobrajenie

Основни трансформации на картината

• Основни трансформации са:– Транслация – преместване на картинен сегмент– Ротация – завъртане около точка или ос– Мащабиране – свиване или разширяване на

елемент

Page 21: Computer Graphics Generirane Na Izobrajenie

Производни трансформацииа) разтягане или свиване по дадена ос - извьршва се чрез транслация на

дадени контурни линии или точки от тях, другите линии остават непроменени;

б) огледало (осева симетрия) - построява се огледален образ на картинния елемент;

в) разтягане(като ластик) - в резултат на интерактивна намеса връх или отсечка от дадена фигура се премества в произволна посока, при което свързаните рьбове се разтягат като ластик;

г) зуминг (лупа) - последователно мащабиране в прогресия с еднакви мащабни коефициенти по две оси, така че да се получи впечатление за отдалечаване или приближаване на картината или сегмент от нея;

д) превъртане - динамично изобразяване на ротацията на елементи от картината около дадена ос, чиято ориентация непрекъснато се сменя в пространството

Page 22: Computer Graphics Generirane Na Izobrajenie

Генериране на изображения на графични примитиви

• Полилиния• Y=mx+b – растерни устройства• m= =• b= Y1-mX1

• ∆y=m ∆x – векторни устройства

Y2-Y1

X2-X1∆x

∆y

X1 X2 x

y

Y2

Y1

α

b

Page 23: Computer Graphics Generirane Na Izobrajenie

Генериране на изображения на графични примитиви

• Полилиния – алгоритъм на Брезенхайм• Y=m(xi+1)+b

• d1=Y-yi=m(xi+1)+b-yi

• d2=(yi+1)-Y=yi+1-m(xi+1)-b

• d1-d2=2m(xi+1)-2yi+2b-1

• p1=2∆y- ∆x

xi xi+1 xi+2 x

y

yi+2yi+1yi

d1

d2

0<m<1

Page 24: Computer Graphics Generirane Na Izobrajenie

Генериране на изображения на графични примитиви

• Стъпки в алгоритъма:1. Запомнят се координатите на крайните точки на

отсечката: (X1,Y1) и (X2,Y2) 2. Изчисляват се ∆x, ∆y, p1. Ако p1<0 – следващия

пиксел е: (X1+1, Y1), в противен случай е: (X1+1, Y1+1)

3. Координата X нараства с 1 (xi+1, yi) ако pi<0(xi+1, yi+1) ако pi>0

1. Повтаря се стъпка 3 до достигане xi=X2

xi xi+1 xi+2 x

y

yi+2yi+1yi

d1

d2

Page 25: Computer Graphics Generirane Na Izobrajenie

• 0<m<1 – променя се x, изчислява се y• m>1 - променя се y, изчислява се x• m<0 – едната координата нараства, другата

намалява

Page 26: Computer Graphics Generirane Na Izobrajenie

Генериране на изображения на графични примитиви

12

11

10

9

8

7

6

4 5 6 7 8 9 10

Page 27: Computer Graphics Generirane Na Izobrajenie

Генериране на изображения на графични примитиви – изглаждане на назъбването

0 1 2 3 4 5 6 7 8 9 10 11

A). установяване различна интензивност на пикселите от линията в зависимост от степентта на припокриване

Page 28: Computer Graphics Generirane Na Izobrajenie

Генериране на изображения на графични примитиви – изглаждане на назъбването

Б). установяване на различна интензивност на линии с различен наклон

1 2 3 4 5 6 7 8 9 10

7 6 5 4 3 2 1

Page 29: Computer Graphics Generirane Na Izobrajenie

Генериране на изображения на графични примитиви – изглаждане на назъбването

1 2 3 4 5 6 7 8 9 10

7 6 5 4 3 2 1

½ изместване

½ изместване

В). Метод на пикселно дефазиране

Page 30: Computer Graphics Generirane Na Izobrajenie

Генериране на изображения на графични примитиви

Page 31: Computer Graphics Generirane Na Izobrajenie

Генериране на изображения на графични примитиви

Page 32: Computer Graphics Generirane Na Izobrajenie

Генериране на изображения на графични примитиви

Page 33: Computer Graphics Generirane Na Izobrajenie

Генериране на изображения на графични примитиви

Page 34: Computer Graphics Generirane Na Izobrajenie
Page 35: Computer Graphics Generirane Na Izobrajenie

Генериране на изображения на графични примитиви

• Запълнена област – растерни графични устройства • Метод на сканиращата линия – през запълнената

област се премества мислена линия успоредна на една от осите

А

В

С

D

F

E

GH

I

1 2 3 4

1 2 3 4 5

Page 36: Computer Graphics Generirane Na Izobrajenie

Генериране на изображения на графични примитиви

• Метод на сканиращата линия – изглаждащи процедури

xi xi+1 xi+2 x

y

yi+2

yi+1yi

Page 37: Computer Graphics Generirane Na Izobrajenie

Генериране на изображения на графични примитиви

Окръжност – алгоритъм на Брезенхайм

xi xi+1 xi+2

yi

yi-1

yi-2

x2+y2=r2

(y,x)

(x,y)

(-y,x)

(-x,y)

(-x,-y) (x,-y)

(-y,-x) (y,-x)

x

y

45

Page 38: Computer Graphics Generirane Na Izobrajenie

Генериране на изображения на графични примитиви

• Окръжност – алгоритъм на Брезенхайм

d1

x

y

d2

xi+1

yi

y

yi-1

y2=r2-(xi+1)2

d1=yi2-y2=yi

2-r2+(xi+1)2

d2=y2-(yi-1)2=r2-(xi+1)2-(yi-1)2

pi=d1-d2=2 (xi+1)2+yi2 +(yi-1)2-2r2

Ако pi<0 - (xi+1, yi)Ако pi>0 - (xi+1, yi-1)

Page 39: Computer Graphics Generirane Na Izobrajenie

Генериране на изображения на графични примитиви

• Окръжност – алгоритъм на Брезенхайм

x

y

xi+1

yi

yi-1

Ако d1<0, d2<0, pi<0 - (xi+1, yi)Ако d1>0, d2<0, pi>0 - (xi+1, yi-1)

x

y

xi+1

yi

yi-1