From 95a25995a5a73aeed00b4f12493730967ea1b0ca Mon Sep 17 00:00:00 2001 From: Jan Potocki Date: Thu, 31 Jan 2019 15:06:33 +0100 Subject: [PATCH] Kieurnkowe: ray tracing --- W4-INF-kierunkowe.md | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/W4-INF-kierunkowe.md b/W4-INF-kierunkowe.md index 8a452b6..0c03a56 100644 --- a/W4-INF-kierunkowe.md +++ b/W4-INF-kierunkowe.md @@ -9,6 +9,32 @@ __W modelu TCP/IP wyróżnia się 4 warstwy:__ Każda z warstw jest niezależna od pozostałych. Przykładowo, na poziomie warstwy aplikacji po drugiej stronie łącza widoczna jest bezpośrednio aplikacja, z którą zostało nawiązane połączenie, niezależnie od trasy pokonywanej przez pakiety w warstwie internetowej. Z kolei z perspektywy warstwy internetowej po przeciwnej stronie łącza znajduje się następne urządzenie na trasie posiadające adres IP, niezależnie od fizycznej struktury sieci i przykładowo liczby przełączników, jakie musi pokonać ramka przenosząca pakiet IP. Dzięki temu można łatwo wykorzystać w sieci różne technologie i z punktu widzenia wyższych warstw nie ma na przykład znaczenia, czy fizycznie transmisja odbywa się kablem w standardzie Ethernet, czy bezprzewodowo w jednym ze standardów Wi-Fi – dowolny rodzaj danych da się przesłać dowolnym łączem. +# Generowanie realistycznych obrazów scen 3D za pomocą metody śledzenia promieni + +Metoda śledzenia promieni (ang. _ray tracing_) służy do generowania fotorealistycznych scen 3D z odwzorowaniem efektów oświetlenia (cienie, odbicia światła od obiektów). W metodzie śledzenia promieni analizowane są tylko promienie docierające do obserwatora, w kierunku odwrotnym do padania światła – od pozycji obserwatora, przecinając rzutnię (ekran), wgłąb sceny. Dzięki temu metoda śledzenia promieni pozwala zaoszczędzić wiele obliczeń w porównaniu z metodą próbkowania przestrzeni, w której promienie analizowane są od źródeł światła w kierunku sceny i wiele z nich jest rozpraszana po odbiciu od obiektów na scenie, w ogóle nie trafiając w ekran. + +Zasada działania algorytmu śledzenia promieni jest następująca: +1. Dla każdego piksela na ekranie z punktu, w którym znajduje się obserwator, wyprowadzany jest promień pierwotny, który przecina ten piksel. +2. Jeżeli: + - promień nie trafi na żaden obiekt na scenie – piksel przyjmuje kolor tła, + - promień trafi w źródło światła – piksel przyjmuje kolor źródła, + - promień trafi w obiekt – wyznaczany jest najbliższy punkt przecięcia z obiektem i dla niego: + - obliczany jest kolor za pomocą jednego z modeli oświetlenia lokalnego (np. modelu Phonga), + - ewentualne zacienienie (poprzez poprowadzenie pomocniczych promieni do źródeł światła i przeanalizowanie, czy przecinają inne obiekty) + - kierunek odbicia promienia wtórnego, który następnie jest śledzony rekruncyjnie w taki sam sposób (jeżeli trafi w kolejny obiekt – jego oświetlenie lokalne jest mnożone przez współczynnik odbicia i dodawane do lokalnego oświetlenia poprzedniego obiektu) +3. Krok 2 jest powtarzany dopóki promień wtórny nie trafi w tło albo w źródło światła, lub dopóki nie zostanie osiągnięta określona głębokość rekurencji. + +Podstawową wadą metody śledzenia promieni jest jej (wciąż) duża złożoność obliczeniowa, znacznie rosnąca wraz z liczbą obiektów na scenie lub źródeł światła – natomiast dzięki niezależnym obliczeniom dla każdego piksela, stosunkowo łatwo można ją zrównoleglić np. dzięki możliwościom współczesnych kart graficznych. + +__Model Phonga__ pozwala wyliczyć oświetlenie lokalne jako sumę trzech rodzajów światła: +- __światło otaczające (ang. _ambient_)__ – bezkierunkowe światło, równomiernie oświetlające obiekty ze wszystkich stron – w naturze ten rodzaj światła dominuje w środku dnia podczas pochmurnej pogody, +- __światło rozproszone (ang. _diffuse_)__ – światło padające z określonego kierunku i rozpraszane przez obiekty, dając ich równomierne oświetlenie z jednej strony, +- __światło odbite (ang. _specular_)__ – światło padające z określonego kierunku i silnie odbijane przez obiekty, dając efekt połysku ich powierzchni. + +Dla każdego typu sceny (pochmurny środek dnia, bezchmurny wieczór, ksieżycowa noc, bezksiężycowa noc, itd.) określa się różne wartości współczynników dla tych rodzajów światła. + +Przy okazji: model Phonga ładnie tłumaczy dlaczego pochmurna pogoda jest najlepsza do fotografowania na tekstury modeli 3D, prawie nie ma wtedy cieni i refleksów ;-) + # Programowalne scalone układy cyfrowe PLD, CPLD oraz FPGA Układy PLD, CPLD oraz FPGA należą do specjalizowanych scalonych układów cyfrowych (ASIC) konfigurowanych przez użytkownika – w odróżnieniu od typowych układów ASIC konfigurowanych maską przez producenta na zamówienie użytkownika. Układy programowalne mogą być dzięki temu produkowane i sprzedawane masowo, co w porównaniu z układami konfigurowanymi maską pozwala znacząco ograniczyć koszty stałe projektu użytkownika (właściwie każdy może taki układ kupić). Wyższy jest natomiast ich jednostkowy koszt i przy seriach rzędu kilkudziesięciu tysięcy urządzeń stają się przez to mniej opłacalne od układów konfigurowanych maską.