Computer Grapnics Algorithms Clipping
Upcoming SlideShare
Loading in...5
×
 

Computer Grapnics Algorithms Clipping

on

  • 2,834 views

компютърна графика отстраняване невидими линии повърхнини

компютърна графика отстраняване невидими линии повърхнини

Statistics

Views

Total Views
2,834
Views on SlideShare
2,807
Embed Views
27

Actions

Likes
0
Downloads
62
Comments
0

3 Embeds 27

http://tu-kee.edu20.org 23
http://www.slideshare.net 2
https://tu-kee.edu20.org 2

Accessibility

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Computer Grapnics Algorithms Clipping Computer Grapnics Algorithms Clipping Presentation Transcript

  • Алгоритми за отделяне и скриване на невидими линии и повърхнини Доц. М. Иванова Технически университет – София
  • Алгоритми за отделяне и скриване на невидими линии и повърхнини • Постановка на задачата – Дадени са геометричните модели на обекти в моделно пространство – Използва се дясно ориентирана координатна система – В равнината XY се разполага проекционната равнина – Посоката на наблюдение съвпада с отрицателната посока на оста OZ, гледната точка се намира в положителната безкрайна точка на оста OZ – Тримерната сцена се намира между гледната точка и проекционната равнина – Използва се паралелна проекция при създаване на изображението на сцената
  • Постановка на задачата X Y Z O View slide
  • Алгоритми за отделяне и скриване на невидими линии и повърхнини • Алгоритмите се разделят по определени признаци: – Според средата от данни, в която работят: • Алгоритми, работещи с елементите от сцената в моделното пространство • Алгоритми, работещи в пространството на наблюдателя • Алгоритми от смесен тип, при различните стъпки се работи в различни пространства View slide
  • Алгоритми за отделяне и скриване на невидими линии и повърхнини – Според точността: • Точни – работят с предварително зададена точност • Апроксимационни – точността зависи от растерното устройство – Според дефиниционната област: • Алгоритми, работещи с изпъкнали многоъгълници • Алгоритми, работещи с тела с криволинейни стени
  • Алгоритъм за скриване на задни стени • Алгоритъмът се използва само за единични тела, обградени с плоски стени, представляващи изпъкнали многоъгълници (изпъкнали многостени) • Работи в моделното пространство • Чрез него не могат да се решат до край въпросите за скриване на невидимите стени и ръбове при наличие на закриващи се обекти
  • Алгоритъм за скриване на задни стени • Аx+By+Cz+D=0 – уравнение на равнините, в които лежат стените на един обект • По знака на коефициента С може да се определи дали дадена страна се закрива или не от обекта, към който принадлежи
  • Алгоритъм за скриване на задни стени • Постановка на алгоритъма: – Аx+By+Cz+D=0 – уравнение на равнина в тримерното пространство – Разполагаме с дясно ориентирана координатна система – В равнината лежи стена на изпъкнал многостен – Вътрешна страна - страната на равнината, гледаща към вътрешността на обекта – Видима/външна страна – обратната на вътрешната - посоката на нормалата е от вътрешната към външната страна
  • Алгоритъм за скриване на задни стени • Коефициентите A, B, C и D се изчисляват от: Ax By Cz D x - x y - y z - z 1 1 1 x - x y - y z - z 2 1 2 1 2 1 x x y y z z = + + + - - - 3 1 3 1 3 1 • Точките (x1,y1,z1), (x2,y2,z2) и (x3,y3,z3) от равнината са избрани в посока, обратна на въртене на часовниковата стрелка, гледана от външната страна на равнината
  • Алгоритъм за скриване на задни стени • Тогава за всяка точка с координати (x’,y’,z’) от вътрешната страна на една равнина е изпълнено неравенството: Ax’+By’+Cz’+D<0 •  точката е или вътре в многостена или многостенът се намира между нея и разглежданата стена – стената ще бъде невидима • Ако Ax’+By’+Cz’+D>0 – стената е видима
  • Алгоритъм за скриване на задни стени • По условие: – гледната точка се намира върху положителната посока на оста OZ – посоката на гледане съвпада с отрицателната посока на оста OZ • Тогава нормалният вектор N (A,B,C) ще има компонента С, паралелна на посоката на гледане • Ако C<0 – невидима стена N=(A,B,C) Посока на гледане x z y
  • Алгоритъм за скриване на задни стени • Ако коефициентите на уравненията на стените не са получени чрез изчисления на координатите на три върха, то се прави предварителен тест с вътрешна точка (x0,y0,z0) • Ако A’x0+B’y0+C’z0+D’>0 , то коефициентите A’, B’, C’, D’ трябва да се умножат с -1, преди проверката на знака на С’
  • Алгоритъм за скриване на задни стени • Чрез този алгоритъм не могат да се отстранят всички невидими стени • Използват се по-сложни алгоритми – Алгоритъм на Галимберти и Монтанари – Алгоритъм на Робертс – Алгоритъм на Z-буфера – Алгоритъм на Нюел и Санча
  • Алгоритъм на Галимберти и Монтанари • Точен алгоритъм, работещ в моделното пространство • Алгоритъм от векторен тип, приложим при скриване на ръбовете на тримерни обекти с плоски изпъкнали многоъгълни стени  Използва се при създаване на векторни изображения z y E x F
  • Алгоритъм на Галимберти и Монтанари • Всеки ръб Е от един обект се съпоставя с всяка стена F от друг обект  търси се един от случаите: 1. Ръбът Е е видим – Е се намира в полупространството на наблюдателя и ограничено от равнината на F 2. Ръбът Е е частично или напълно закрит от равнината на F  изследване взаимното разположение на проекциите E’ и F’ в картинната равнина z 3. Е попада в двете полупространства, разделени от равнината на F  разглеждат се предните два случая y x E F z y x E F
  • Алгоритъм на Галимберти и Монтанари • Цикълът на тестване приключва: – При изчерпване на стените {F} – При установяване пълната невидимост на ръба E визуализират се само видимите части на Е, ако има такива Времето за работа на алгоритъма е функция на квадрата на броя на стените на всички обекти
  • Алгоритъм на Робертс • Съчетава и доразвива идеите на предните два алгоритъма • Невидимите линии се скриват при визуализиране
  • Алгоритъм на Робертс • Алгоритъмът работи с изпъкнали многостени • Неизпъкналите многостени се представят чрез изпъкнали многостени • Състои се от три части 1. Всеки обект отделно се тества за скрити линии и повърхнини 2. Останалите видими ръбове се тестват спрямо другите обекти 3. Конструират се допълнителни ръбове, получени при взаимното припокриване на обектите
  • Алгоритъм на Z-буфера • Алгоритъм за скриване на невидими повърхнини при работа с растерни устройства • Работи във визуализационната повърхност (кадровия буфер) • Използва се Z-буфер , съдържащ информация за координатите на точките по оста OZ • Аx+By+Cz+D=0 – уравнение на равнината на стената • В точката (x,y), дълбочината е: z = - D - A . x 0 - B . y0 0 • В съседната точка, дълбочината е: C z y x Визуализационна повърхност Z – буфер, съхранява дълбочината z z = - D - A .( x 0 +1) - B . y0 1 C z = z - A 1 0 C x0 x1 y0 y1 z = z + B 1 0 C
  • Алгоритъм на Нюел и Санча • Сортира стените-многоъгълници по дълбочина • Проекциите на стените се извеждат върху екрана в определен ред, в зависимост от близостта им до наблюдателя • Най-напред се извеждат върху екрана проекциите на най-отдалечените стени • Най-близките стени ще закрият далечните, тъй като ще бъдат записани в буфера за регенерация върху тях • Създават се изображения само върху растерни дисплеи
  • Алгоритъм на Нюел и Санча z y x 1 1 2 2 3 3 4 4 5 5
  • Алгоритъм на Нюел и Санча • Три стъпки на алгоритъма: – Подреждане на стените в списък в зависимост от най- голямата координата Zmax – Разрешаване на неопределеностите, възникнали при припокриване на z обвивките на стените – Преобразуване на проекциите на стените в растерна форма в ред на увеличаване на максималните им координати Zmax
  • Алгоритъм на Нюел и Санча • Детайлизиране на втората стъпка • Извършване на проверки при припокриване на z обвивките на стените P и Q: • Тест 1: Припокриват ли се x обвивките на P и Q? – Не – проекциите на стените не се припокриват – редът им на извеждане върху екрана е без значение – Да - P и Q имат общи точки – прави се втори тест P Q
  • Алгоритъм на Нюел и Санча • Тест 2: Припокриват ли се y обвивките на P и Q? – Не – проекциите на стените не се припокриват – редът им на извеждане върху екрана е без значение – Да - P и Q имат общи точки – прави се трети тест • Тест 3: Проверява се дали Р лежи изцяло в пространството, ограничено от равнината на Q, което не съдържа наблюдателя – Да – Q може да закрива Р и Р трябва да остане на мястото си в списъка – преди Q, за да се визуализира преди Q – Не – прави се четвърти тест
  • Алгоритъм на Нюел и Санча • Тест 4: Проверява се дали Q лежи изцяло в пространството, ограничено от равнината на Р, което съдържа наблюдателя – Да – Q може да закрива Р и Р трябва да остане на мястото си в списъка – преди Q, за да се визуализира преди Q – Не – прави се пети тест • Тест 5: Проверява се дали проекциите на P’ и Q’ върху XY не се припокриват – Ако не се припокриват – редът им на извеждане върху екрана е без значение и Р може да остане на мястото си в списъка