Raytracer to program, który pozwala na zniekształcenie dowolnego obrazu tak, jakby na jego tle znajdowała się czarna dziura.
Opis interfejsu:
- "Select background" - ten przycisk pozwala wybrać obrazek, który będzie robił za tło.
- "Resolution" - rozdzielczość powstającego obrazu, max. 512x512.
- "Angular momentum/mass" - stosunek momentu pędu czarnej dziury do jej masy. Maksymalnie może wynosić 1 (jest to największa fizycznie sensowna wartość).
- "FoV" - pole widzenia w stopniach.
- "Observer position" - pozycja obserwatora. Kolejne liczby to: odległość od czarnej dziury w promieniach Schwarzschilda i dwa kąty sferyczne (od 0 do i od 0 do ) - odsyłam do artykułu na Wiki.
- "Observer velocity" - trzy składowe prędkości obserwatora: przód-tył, góra-dół i lewo-prawo.
- "Observer orientation" - pozwala na obracanie kamery w miejscu. Liczby odpowiadają kątom obrotu góra-dół i lewo-prawo. Przy ustawieniu (0,0) kamera patrzy wprost na czarną dziurę.
- "Run" - uruchamia rysowanie.
Obrazek jest traktowany jak panoramiczne zdjęcie całego pola widzenia we wszystkich kierunkach. Zatem, po pierwsze: powinien mieć wymiary w proporcjach 2:1 (jeśli nie ma, zostanie odpowiednio rozciągnięty). Po drugie, domyślnie widać fragment obrazu pośrodku. Lewy i prawy brzeg obrazu odpowiadają temu, co znajduje się za obserwatorem, a górny i dolny - temu, co znajduje się nad nim i pod nim. Można to zmienić, korzystając z ustawień pozycji i orientacji obserwatora.
Po uruchomieniu rysowania program oblicza, piksel po pikselu, zakrzywienie światła w polu grawitacyjnym czarnej dziury, symulując krok po kroku trasę promieni światła biegnących w poszczególnych kierunkach. Dla zwiększenia wydajności robione jest to wielowątkowo - uruchamia się tyle wątków, ile użytkownik ma rdzeni procesora.
Zapraszam do pobierania programu i samodzielnej zabawy :)
Pobierz “Raytracer (Win32)”
Pobierz “Raytracer (Linux amd64)”