Raytracer

Zrzut ekranu z 2015-06-13 18-37-24[GitHub]

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 \pi i od 0 do 2\pi) - 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)”

raytracer-20150616-win32.zip – Pobrano 1328 razy – 5,59 MB

Pobierz “Raytracer (Linux amd64)”

raytracer-20150613-linux64.zip – Pobrano 1185 razy – 49,55 KB