Animowana grafika 3D. Opracowanie: J. Kęsik.

Podobne dokumenty
Grafika Komputerowa Wykład 5. Potok Renderowania Oświetlenie. mgr inż. Michał Chwesiuk 1/38

Przetwarzanie obrazu i dźwięku

Animowana grafika 3D. Opracowanie: J. Kęsik.

Zaawansowana Grafika Komputerowa

Oświetlenie. Modelowanie oświetlenia sceny 3D. Algorytmy cieniowania.

Model oświetlenia. Radosław Mantiuk. Wydział Informatyki Zachodniopomorski Uniwersytet Technologiczny w Szczecinie

GRK 4. dr Wojciech Palubicki

Oświetlenie obiektów 3D

GRAKO: ŚWIATŁO I CIENIE. Modele barw. Trochę fizyki percepcji światła. OŚWIETLENIE: elementy istotne w projektowaniu

Julia 4D - raytracing

Grafika realistyczna. Oświetlenie globalne ang. global illumination. Radosław Mantiuk

Grafika komputerowa. Model oświetlenia. emisja światła przez źródła światła. interakcja światła z powierzchnią. absorbcja światła przez sensor

Śledzenie promieni w grafice komputerowej

Gry komputerowe: efekty specjalne cz. 2

Grafika Komputerowa. Metoda śledzenia promieni

WSTĘP DO GRAFIKI KOMPUTEROWEJ

a. Czym różni się sposób liczenia odbicia zwierciadlanego zaproponowany przez Phonga od zaproponowanego przez Blinna?

Synteza i obróbka obrazu. Algorytmy oświetlenia globalnego

Animowana grafika 3D. Opracowanie: J. Kęsik.

Synteza i obróbka obrazu. Tekstury. Opracowanie: dr inż. Grzegorz Szwoch Politechnika Gdańska Katedra Systemów Multimedialnych

Programowanie gier komputerowych Tomasz Martyn Wykład 6. Materiały informacje podstawowe

Sphere tracing: integracja z klasycznymi metodami symulacji i renderingu

Grafika Komputerowa Wykład 6. Teksturowanie. mgr inż. Michał Chwesiuk 1/23

4/4/2012. CATT-Acoustic v8.0

Grafika 3D program POV-Ray - 1 -

Automatyczne tworzenie trójwymiarowego planu pomieszczenia z zastosowaniem metod stereowizyjnych

Efekty dodatkowe w rasteryzacji

Zjawisko widzenia obrazów

Plan wykładu. Akcelerator 3D Potok graficzny

Bartosz Bazyluk POTOK RENDEROWANIA Etapy renderowania w grafice czasu rzeczywistego. Grafika Komputerowa, Informatyka, I Rok

Gry komputerowe, Informatyka N1, III Rok

Scena 3D. Cieniowanie (ang. Shading) Scena 3D - Materia" Obliczenie koloru powierzchni (ang. Lighting)

6 Przygotował: mgr inż. Maciej Lasota

Grafika Komputerowa Wykład 4. Synteza grafiki 3D. mgr inż. Michał Chwesiuk 1/30

Architektura Komputerów

Algorytmy oświetlenia globalnego

Wykład XI. Optyka geometryczna

Bartosz Bazyluk SYNTEZA GRAFIKI 3D Grafika realistyczna i czasu rzeczywistego. Pojęcie sceny i kamery. Grafika Komputerowa, Informatyka, I Rok

Grafika 3D program POV-Ray

OpenGL przezroczystość

Wyznaczanie stałej słonecznej i mocy promieniowania Słońca

OpenGL oświetlenie. Bogdan Kreczmer. Katedra Cybernetyki i Robotyki Wydziału Elektroniki Politechnika Wrocławska

Techniki animacji komputerowej

Algorytm SAT. Marek Zając Zabrania się rozpowszechniania całości lub fragmentów niniejszego tekstu bez podania nazwiska jego autora.

Grafika komputerowa Wykład 10 Modelowanie oświetlenia

GRK 5. dr Wojciech Palubicki

10.3. Typowe zadania NMT W niniejszym rozdziale przedstawimy podstawowe zadania do jakich może być wykorzystany numerycznego modelu terenu.

Autodesk 3D Studio MAX Teksturowanie modeli 3D

W. Guzicki Zadanie 21 z Informatora Maturalnego poziom rozszerzony 1

1. Czym jest rendering? a. Komputerowa analiza modelu danej sceny i utworzenie na jej podstawie obrazu 2D. b. Funkcja umożliwiająca kopiowanie obrazu

OpenGL : Oświetlenie. mgr inż. Michał Chwesiuk mgr inż. Tomasz Sergej inż. Patryk Piotrowski. Szczecin, r 1/23

Dyfrakcja. Dyfrakcja to uginanie światła (albo innych fal) przez drobne obiekty (rozmiar porównywalny z długością fali) do obszaru cienia

Materiały. Dorota Smorawa

Ćwiczenie 4 - Podstawy materiałów i tekstur. Renderowanie obrazu i animacji

Prawo odbicia światła. dr inż. Romuald Kędzierski

Praca kontrolna z matematyki nr 1 Liceum Ogólnokształcące dla Dorosłych Semestr 5 Rok szkolny 2014/2015

PRÓBNY EGZAMIN MATURALNY

LABORATORIUM FIZYKI PAŃSTWOWEJ WYŻSZEJ SZKOŁY ZAWODOWEJ W NYSIE

Grafika inżynierska geometria wykreślna. 3. Elementy wspólne. Cień jako rzut środkowy i równoległy. Transformacja celowa.

Reprezentacja i analiza obszarów

Ustawienia materiałów i tekstur w programie KD Max. MTPARTNER S.C.

1. Prymitywy graficzne

Ćwiczenie nr 8 - Modyfikacje części, tworzenie brył złożonych

Teselacja i uzupełnienia do grafiki

Zastosowanie stereowizji do śledzenia trajektorii obiektów w przestrzeni 3D

Matematyka licea ogólnokształcące, technika

PRÓBNY EGZAMIN MATURALNY

0. OpenGL ma układ współrzędnych taki, że oś y jest skierowana (względem monitora) a) w dół b) w górę c) w lewo d) w prawo e) w kierunku do

str 1 WYMAGANIA EDUKACYJNE ( ) - matematyka - poziom podstawowy Dariusz Drabczyk

Transformacje. dr Radosław Matusik. radmat

Podstawy 3D Studio MAX

Podłączanie bibliotek Zapis danych do pliku graficznego Generowanie promienia pierwotnego Import sceny z pliku Algorytm ray tracingu

Implementacja filtru Canny ego

Optyka stanowi dział fizyki, który zajmuje się światłem (także promieniowaniem niewidzialnym dla ludzkiego oka).

Wymagania z matematyki KLASA VII

Grafika Komputerowa. Wykład 8. Przygotowanie do egzaminu. mgr inż. Michał Chwesiuk 1/32

11. Znajdż równanie prostej prostopadłej do prostej k i przechodzącej przez punkt A = (2;2).

KRYTERIA OCEN Z MATEMATYKI DLA KLASY VII

SZKOŁA PODSTAWOWA NR 1 IM. ŚW. JANA KANTEGO W ŻOŁYNI. Wymagania na poszczególne oceny klasa VII Matematyka z kluczem

RENDERING W CZASIE RZECZYWISTYM. Michał Radziszewski

FIGURY I PRZEKSZTAŁCENIA GEOMETRYCZNE

Falowa natura światła

Wstęp do astrofizyki I

ROZKŁAD MATERIAŁU DO II KLASY LICEUM (ZAKRES ROZSZERZONY) A WYMAGANIA PODSTAWY PROGRAMOWEJ.

1. Oświetlenie Materiały i powierzchnie

Wskazówki do zadań testowych. Matura 2016

WSTĘP DO ANALIZY I ALGEBRY, MAT1460

MODELE OŚWIETLENIA. Mateusz Moczadło

Aleksandra Zając. Raport. Blender. Pokemon: Eevee

OpenGL Światło (cieniowanie)

Optyka 2012/13 powtórzenie

Funkcja liniowa i prosta podsumowanie

- pozorny, czyli został utworzony przez przedłużenia promieni świetlnych.

Prawa optyki geometrycznej

Trójwymiarowa grafika komputerowa rzutowanie

Animowana grafika 3D Laboratorium 1

Modelowanie i wstęp do druku 3D Wykład 1. Robert Banasiak

Wykład 17: Optyka falowa cz.1.

17. Który z rysunków błędnie przedstawia bieg jednobarwnego promienia światła przez pryzmat? A. rysunek A, B. rysunek B, C. rysunek C, D. rysunek D.

Matematyka rozszerzona matura 2017

Transkrypt:

Animowana grafika 3D Opracowanie: J. Kęsik kesik@cs.pollub.pl

Śledzenie promieni Ray tracing jest techniką renderowania będącą obecnie podstawą wielu algorytmów fotorealistycznych Po raz pierwszy wykorzystana w 1980 przez Turnera Whitteda Dzięki ray tracingowi można uzyskać szereg efektów oświetlenia (dokładne cienie i odbicia, przenikania przez powierzchnie przezroczyste, również ugięte) Znaczący wzrost jakości wizualnej za cenę poważnego zwielokrotnienia obliczeń

Śledzenie promieni Podstawowy pomysł to symulacja przebiegu promienia światła od źródła światła do obserwatora

Śledzenie promieni Dwa możliwe podejścia: Wyznaczanie promieni wychodzących ze źródła światła Nieefektywne obliczeniowo

Śledzenie promieni Dwa możliwe podejścia: Wyznaczanie promieni docierających do obserwatora Właściwy Ray-tracing

Śledzenie promieni Wyznaczanie pojedynczego promienia wymaga określenia czy ten promień przecina się z którymkolwiek z prymitywów (miliony) Podstawowy problem to stworzenie algorytmu, nie tylko umożliwiającego takie obliczenia ale wykonującego je w sposób najbardziej efektywny Śledzenie pojedynczego promienia jest skomplikowanym zadaniem a wykonanie obrazu wymaga prześledzenia ogromnej ilości promieni

Śledzenie promieni Real time? Quake3 : Raytraced (2005) 20 klatek 512x512 na sek. 36 GHz klaster 20 AMD 1800XP http://graphics.cs.unisb.de/~sidapohl/egoshooter/ W chwili obecnej pierwsze karty graficzne z potokami raytrace Gry z raytracingiem do końca roku

Śledzenie promieni Promień jest elementem geometrycznym, posiadającym punkt początkowy i kierunek Zapis promienia w 3D wymaga dwóch wektorów 3 wartościowych (3D) Wektor 3D źródła origin Wektor 3D kierunku direction (znormalizowany) class Ray { Vector3 Origin; Vector3 Direction; };

Śledzenie promieni Algorytm śledzenia rozpoczynamy wypuszczając promienie z kamery w kierunku sceny, każdy promień odpowiada jednemu pikselowi obrazu Kolejność generowania pikseli obrazu nie ma większego znaczenia. Dla każdego piksela obrazu wyznaczany jest promień podstawowy (primary ray)

Śledzenie promieni Źródłem promienia jest pozycja kamery Kierunek wyznaczany jest wg. zasady Wyznaczenie wektorów kierunków dla 4 rogów obrazu Aproksymacja kierunku promienia na podstawie położenia piksela

Śledzenie promieni Promień podstawowy jest następnie testowany na okoliczność przecięć z prymitywami sceny Jeżeli promień nie przecina się z niczym to piksel przyjmuje kolor tła W innym przypadku musimy wyznaczyć pierwszy z prymitywów, w który trafił promień (najbliższy kamerze) W miejscu przecięcia musimy wyznaczyć: pozycję, kolor, normalną, współrzędne tekstury i in. (interpolacja danych werteksów)

Śledzenie promieni Dane punktu przecięcia mogłyby być zapisane następująco: class Intersection { Vector3 Position; Vector3 Normal; Vector2 TexCoord; Material *Mat; float Distance; // odległość od źródła do przecięcia };

Śledzenie promieni Mając pozycję przecięcia możemy w tym miejscu obiektu wyznaczyć oświetlenie według dowolnego modelu (np. Phong) Efektem będzie uzyskanie koloru, jaki przyjmie piksel obrazu (w najprostszym przypadku kolor obiektu w punkcie przecięcia) Zakończenie algorytmu na tym etapie skutkowałoby obrazem nie lepszym (a czasem gorszym) niż uzyskanym tradycyjnymi metodami

Śledzenie promieni Śledzenie promieni zakończone na pierwszym etapie (model oświetlenia ambient)

Śledzenie promieni Wiele algorytmów śledzenia promieni przewiduje kontynuację poprzez wyznaczenie nowych promieni z punktu przecięcia promienia podstawowego Istnieje kilka typów promieni generowanych z miejsca przecięcia. Wszystkie te promienie określane są mianem promieni drugorzędnych (secondary rays)

Shadow rays Shadow rays odpowiadają za określenie, czy miejsce przecięcia jest oświetlone konkretnym światłem. Za ich pomocą można w stosunkowo łatwy sposób wyznaczyć cienie. Chcąc tego dokonać, wyznaczamy z punktu przecięcia promienie do każdego źródła światła znajdującego się po właściwej stronie prymitywu (kąt mniejszy niż 90 stopni do normalnej)

Shadow rays Światło z danego źródła będzie wzięte pod uwagę tylko wtedy, gdy promień do tego źródła nie przecina żadnego innego prymitywu. W takim przypadku w równaniu oświetlenia np. Phonga współczynniki intensywności diffuse i specular światła zacienionego przyjmą wartość = 0

Shadow rays W obliczeniu oświetlenia nie jest brane pod uwagę źródło 5 a źródła 1 i 4 mają wyzerowane współczynniki. 2 4 3 1 5

Shadow rays Shadow rays nie potrzebują znać parametrów punktu przecięcia z prymitywem, wystarczy parametr binarny wystąpienia przecięcia Dzięki temu generowane są nieco szybciej niż standardowe promienie Dobrą praktyką przy generowaniu shadow rays jest przesunięcie źródła promienia o nieznaczną odległość w kierunku normalnej prymitywu. Unika się w ten sposób potencjalnego błędu zaokrągleń mogącego spowodować wykrycie przecięcia własnej powierzchni

Shadow rays Shadow rays

Reflection rays Kolejną możliwością raytracingu jest generowanie dokładnych odbić od skomplikowanych powierzchni. Gdy promień podstawowy trafia w powierzchnię lustrzaną, tworzony jest promień odbicia. Promień ten, podobnie jak promień główny testowany jest na okoliczność przecięcia z obiektami sceny.

Reflection rays Promień odbicia wyznaczany jest na podstawie promienia głównego i wektora normalnego n r d r d 2 d nn

Reflection rays Gdy promień odbicia natrafi na obiekt, możliwe są dwa przypadki: 1. Powierzchnia obiektu nie jest lustrzana. 2. Powierzchnia obiektu jest lustrzana W 1 przypadku obliczany jest kolor w punkcie przecięcia (z uwzględnieniem shadow rays) W przypadku 2 rekursywnie generowany jest następny promień odbicia W przypadku wielu luster istnieje możliwość wystąpienia pętli nieskończonej. Zapobiega się temu przez ograniczenie głębokości rekursji do np. 10 poziomów

Reflection rays Powierzchnia obiektu jest lustrzana

Reflection rays W rzeczywistości rzadko mamy do czynienia z idealnymi lustrami Prawdziwe lustro odbije maksymalnie 95-98% światła padającego. Niektóre powierzchnie mogą powodować odbarwienia odbitego światła Taką sytuację symuluje się przez przemnażanie koloru światła padającego przez kolor lustra przy odbiciu od niego.

Reflection rays Możemy również symulować odbicia rozproszone. W takim przypadku dla punktu przecięcia obliczane jest pełne równanie oświetlenia, zawierające składnik rozproszenia jak i odbicia (należy uwzględnić również shadow rays dla tego punktu) a następnie dodawana wartość pochodząca od promienia odbicia (z wagami odpowiadającymi zachowaniu energii)

Transmission rays Ray tracing pozwala również na dokładne renderowanie ugięcia światła przy przechodzeniu przez przezroczyste powierzchnie. Gdy promień pada na powierzchnię przezroczystą, generowany jest nowy promień przenikania i analizowany dalej podobnie jak promień odbicia

Transmission rays Zgodnie z prawem Snella promień przenikający z jednego środowiska do drugiego, będzie odchylony od normalnej pod kątem wynikającym ze wzoru (n 1 sinθ 1 =n 2 sinθ 2 ), gdzie n 1 i n 2 są współczynnikami przenikania dla obu środowisk r z t d n n z 1 2 2 d d n 1 d n z n 2 n n d n 1 n 2 θ 1 n θ 2 z t r

Transmission rays Gdy światło przemieszczające się w środowisku o wysokim współczynniku przenikania trafia na materiał o niskim współczynniku przenikania pod ostrym kątem, następuje całkowite wewnętrzne odbicie. W takim przypadku nie jest generowany promień przenikania n d n 1 n 2 θ 1 z r

Transmission rays Odbicie całkowite można wykryć sprawdzając czy długość wektora z jest większa od 1. W tym przypadku wektora t nie można obliczyć (ujemna wartość pierwiastka) n z z t n n d d z 2 2 1 1 n n

Transmission rays Gdy światło trafia na powierzchnię przezroczystą, często oprócz przenikania widzimy odbicie. Dlatego natrafienie na taką powierzchnię powoduje wygenerowanie dwóch promieni (odbicia i przenikania), przeanalizowanie ich i połączenie uzyskanych kolorów. Wynikiem każdego z promieni jest kolor jaki widzi dany promień. W przypadku promieni głównych jest to kolor ostateczny piksela. W przypadku promieni pośrednich ich kolor jest połączony w wynikowy kolor piksela

Transmission rays Promień odbicia N Promień główny Promień przenikania

Transmission rays Równania Fresnela określają proporcje między światłem przenikającym (f t ) a odbitym (f r ). Uwzględniają równania dla światła spolaryzowanego horyzontalnie i wertykalnie (najczęściej uśrednione do jednej wartości) r t wert hor r wert hor f f r r f n n n n r n n n n r 1.0 ) ( 2 1 ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( 2 2 2 1 2 1 1 2 1 2 t n d n t n d n t n d n t n d n

Recursive Ray Tracing Klasyczny algorytm raytracingu uwzględnia cienie, odbicia, przenikania i nietypowe materiały Pojedynczy promień główny może wygenerować znaczną ilość promieni pośrednich w zależności od ilości źródeł światła i ułożenia obiektów Promienie te układają się w strukturę drzewiastą

Recursive Ray Tracing Przykład itd.

Recursive Ray Tracing Przykład

Ray Tracing Obrazy wyrenderowane klasyczną metodą raytracingu mogą zawierać cienie, dokładne odbicia pomiędzy obiektami i efekty przezroczystości Wadą jest wrażenie zbytniej ostrości uzyskanego obrazu (aliasing) z powodu ograniczenia do punktowych źródeł światła i idealnego odbicia od powierzchni. Dzieje się tak z powodu wykorzystywania pojedynczych promieni przy określaniu cieni, odbić i przenikań

Stohastic Ray Tracing Pewne wygładzenie krawędzi można uzyskać zaburzając kierunki promieni głównych tak aby kierowały się losowo w ramach obszaru zajmowanego przez piksel

Distribution Ray Tracing Rozproszone śledzenie promieni jest rozszerzeniem klasycznego podejścia zakłada wyprowadzenie w miejsce pojedynczego promienia wiązki kilku(nastu) promieni Jest to technika pozwalająca uzyskać bardzo naturalne efekty za cenę kolejnego, znacznego zwielokrotnienia obliczeń (setki a nawet tysiące promieni dla jednego piksela)

Distribution Ray Tracing Za pomocą takiego podejścia można uzyskać: Antyaliasing przy stosowaniu wiązki dla promieni głównych (dla pojedynczego piksela) Uwzględnienie powierzchni emitującej światło rozproszone cienie Rozmyte odbicia i przenikania Rozmycie zbliżeniowe (focus blur) Motion Blur

Distribution Ray Tracing Przykład itd. itd.

Distribution Ray Tracing

Distribution Ray Tracing

Distribution Ray Tracing

Przecięcia promieni Podstawowym elementem algorytmu raytracingu jest system określający w co trafił promień Typowa scena może zawierać miliony prymitywów Przymitywy te mogą być po prostu trójkątami albo być złożone w takim przypadku następuje teselacja (podzielenie siatki na trojkąty)

Przecięcia promieni Scena jest zbudowana z pewnej liczby obiektów składających się z prymitywów i/lub innych obiektów Aby obiekt był renderowalny, potrzebujemy procedury określającej przecięcie tego obiektu z promieniem. Dla różnych rodzajów obiektów można zdefiniowac inne procedury wyznaczania przecięcia.

Przecięcia promieni Promień - sfera Promień ma źródło w punkcie p i kierunek u a sfera ma środek w punkcie c i promień r p u c r

Przecięcia promieni Promień - sfera Promień jest zbiorem punktów p+αu, dla α 0 Znajdujemy punkt q, który jest punktem na linii promienia leżącym najbliżej środka sfery Linia qc musi być prostopadła do wektora u, czyli (q-c) u=0, lub (p+αu-c) u=0 Z tego możemy obliczyć: α=-(p-c) u, takie że q=p-((p-c) u)u p u q c

Przecięcia promieni Promień - sfera Następnie sprawdzamy czy q znajduje się wewnątrz sfery: q-c r Gdy q jest poza sferą promień jej nie przecina Gdy q jest w środku sfery poszukujemy punktu przecięcia z powierzchnią sfery Promien przebija powierzchnie w 2 punktach q1 i q2: p u q1 q c q 2

Przecięcia promieni Promień - sfera Pozycje przebić: q1=p+(α-a)u) gdzie a=sqrt(r2- q-c 2) q2=p+(α+a)u) Dla α-a 0, promień przebija sferę w punkcie q1, dla α-a<0 q1 znajduje się bliżej niż źródło promienia (jest ono wewnątrz sfery) q q1 2 Wtedy wybieramy q2 p u q c

Przecięcia promieni Promień powierzchnia płaska Powierzchnia taka jest zdefiniowana przez wektor normalny n i odległość d od środka układu wsp. Testując przecięcie obliczamy punkt q przecięcia promienia z płaszczyzną, by q leżało na płaszczyźnie: d=q n=p n+αu n więc α=(d-p n)/(u n) Jeżeli (u n)=0 to promień jest równoległy do płaszczyzny Dla α 0 promień przecina płaszczyznę

Przecięcia promieni Promień trójkąt Sprawdzenie przecięcia polega najpierw na sprawdzeniu przecięcia z płaszczyzną, na której leży trójkąt (można również sprawdzić kierunek trójkąta backface culling). Gdy punkt q przecięcia promienia z płaszczyzną, musimy sprawdzić czy leży on wewnątrz trójkąta

Przecięcia promieni Promień trójkąt p u v 2 v 0 q v 1

Przecięcia promieni Promień trójkąt Jedna z prostrzych obliczeniowo metod uwzględnia wsp. barycentryczne punktu q v 2 q' =q-v 0 e 1 =v 1 -v 0 e 2 =v 2 -v 0 α=(q' e 2) /(e 1 e 2 ) β=(q' e 1) /(e 1 e 2 ) β v 0 α v 1 q Gdy α<0, β<0 lub α+β >1 to punkt q znajduje się poza trójkątem

Przecięcia promieni Promień trójkąt Jedna z prostrzych obliczeniowo metod uwzględnia wsp. barycentryczne punktu q v 2 q' =q-v 0 e 1 =v 1 -v 0 e 2 =v 2 -v 0 α=(q' e 2) /(e 1 e 2 ) β=(q' e 1) /(e 1 e 2 ) β v 0 α v 1 q Gdy α<0, β<0 lub α+β >1 to punkt q znajduje się poza trójkątem

Metody akceleracji Przykład Obraz 1280x1024 - przeciętnie 10 promieni/piksel 1000 obiektów różnych typów 3 poziomy rekurencji ~39321600000 testów przecięć Dla prędkości 100 000 testów/s rendering potrwa ponad 100 dni! Akceleracja jest konieczna

Metody akceleracji Struktury akceleracji Są to zestawy danych grupujące obiekty w taki sposób, że można wydzielić z nich podgrupę obiektów, dla której będziemy sprawdzać przecięcie z promieniem Większość tego typu struktur bazuje na hierarchicznym podziale przestrzeni otaczającej grupę obiektów

Metody akceleracji Hierarchie przestrzeni otaczającej (omawiane częściowo wcześniej) Generalnie tworzymy otoczenie sceny (sfera, sześcian itp) a następnie dzielimy go na obszary tego samego typu (mniejsze sfery ) Testując promień sprawdzamy jego zderzenie z poszczególnymi poziomami otoczeń dochodząc do obszarów zawierających rzeczywiste prymitywy Taka metoda redukuje ilość testów z O(n) do O(log n), gdzie n jest ilością prymitywów

Metody akceleracji Wykorzystywane hierarchie to: Drzewa ósemkowe Drzewa KD Drzewa BSP Siatki jednolite Hierarchie sferowe Drzewa hierarchiczne

Metody akceleracji Wykorzystywane hierarchie to: Drzewa ósemkowe Podział wg. Zasady: Jeżeli sześcian zawiera więcej niż graniczna liczbę prymitywów jest dzielony na 8 jednakowych sześcianów Jest to struktura regularna, łatwa do automatycznego wyznaczenia tworzy jednak dużo niepotrzebnie rozdrobnionych przedziałów

Metody akceleracji Wykorzystywane hierarchie to: Drzewa KD Podział wg. Zasady: Jeżeli równoległobok zawiera więcej niż graniczna liczbę prymitywów jest dzielony na 2 niejednakowe równoległoboki. Podział następuje w arbitralnie wybranym punkcie Nieco lepiej dopasowuje się do nieregularnych kształtów dobrze spisuje się w raytracingu

Metody akceleracji Wykorzystywane hierarchie to: Drzewa BSP (binary space partitioning) Podział wg. Zasady: Jeżeli obszar zawiera więcej niż graniczną liczbę prymitywów jest dzielony na 2 niejednakowe części za pomocą płaszczyzny nie koniecznie równoległej do osi wsp. Lepsze wyniki niż drzewa KD bardziej skomplikowany algorytm doboru miejsca cięcia

Metody akceleracji Wykorzystywane hierarchie to: Siatki Jednolite Podział na jednolite obszary (np. sześciany) Zysk na szybkości metody, strata na zajętości pamięci dla skomplikowanych scen. Niewygodne przy dużym zróżnicowaniu wielkości obiektów rzadko stosowane w raytracingu (tylko szczególne przypadki)

Metody akceleracji Wykorzystywane hierarchie to: Hierarchie sferowe Sfera jest dzielona na podsfery obejmujące jej obszar sfery się nakładają. Łatwość wyznaczenia przecięcia za cenę redundancji Nie są zbyt popularne ze względu na trudności z automatycznym określeniem podziału

Metody akceleracji Wykorzystywane hierarchie to: Drzewa hierarchiczne Działają na podobnej zasadzie jak drzewa ósemkowe ale dopuszczają podział poszczególnych bloków na dowolnie dobrana ilość części Bardzo dobrze sprawdzają się w raytracingu

Metody akceleracji Rozwinięciem tych struktur jest wprowadzenie możliwości zagnieżdżania struktur różnego typu Np. jeden z sześcianów drzewa ósemkowego może zawierać wewnątrz strukturę drzewa BSP