Showcase

VG Raytracer

Gibts als Worklog mit allen bisherigen Versionen, Bildern, Videos und Beschreibungen

Genre: Sonstiges
Windows


Abgegebene Stimmen: 12

Du musst eingeloggt sein, um eine Bewertung abgeben zu können.

Fortschritt: 38%
Version: 0.4.2
Entwickler: Casiopaya

Beschreibung

Hi,

hier mein Raytracer, den ich selbst in BB gebastelt habe. Bin von dieser Technik fasziniert, macht einfach Spass.

Den VG Raytracer gibts momentan als EXE, es läuft eine automatische Licht- und Objekt-Animation ab. Abbrechen mit ESC (danach Warten auf Bild-Fertig-Renderung). Es gibt eine Konfigurations-Ini, durch welche man Programmeinstellungen vornehmen kann. Mit den Cursortasten und "W", sowie "S" kann man die Kamera verschieben.

Hier mein Worklog-Eintrag: https://www.blitzforum.de/worklogs/81/.

Der Worklog-Eintrag enthält ausführliche Beschreibungen zum Projekt. In ihm gibts alle nötigen Dateien, auch ein Video zum Anschauen. Freue mich auf Feedback Exclamation

Features

Da ich diesen Eintrag aktuell zum Worklog-Eintrag halten möchte, werden hier immer nur die aktuellen Änderungen beschrieben und verlinkt:


Version 0.4.2:

- Spekulare Lichter wurden eingebaut. Jedes Objekt kann stufenlos von "sehr rau" bis "sehr glatt" eingestellt werden
- Jedes Objekt hat nun eine Ambiente Beleuchtungskomponente, in der Umwelt gibt es nun ein Ambientes Licht (siehe Phong-Beleuchtungsmodell)
- Ein Bug wurde entfernt, der die Helligkeitsabhängigkeit von der Licht-Entfernung betraf. Die bisher gerenderten Bilder waren zwar korrekt, aber nur wenn man die Körper als "sehr klein" ansah.


Version 0.4.1:

- Transparente Objekte sind nun möglich (anteilig 0 - 100 %).
- Die transparenten Objekte besitzen eine eigene Optische Dichte. D.h. deren Brechzahl ist ggf. ungleich der von Luft (= 1.0).
- Dadurch ist die korrekte Darstellung von Lichtbrechung möglich.
- Zusätzlich ist die korrekte Darstellung von Partieller Reflexion möglich.
- Implizit ist dadurch auch die Darstellung von Totalreflexion möglich (tritt auf, wenn man z.B. von unter Wasser schräg auf die oben liegende Wasseroberfläche schaut).
- Das Tastenmenü wurde um das Ein- und Ausschalten der Transparenz erweitert.
- Über die Konfig-Datei ist nun der komplette Grafik-Modus konfigurierbar.

Version 0.3:

- Spiegelungen. Objekt haben sowohl Diffus- als auch Reflexions-Eigenschaften, und zwar stufenlos anteilig! Damit sind nun auch alle Glanzeffekte möglich.
- Objektfarben und -Helligkeiten nun beliebig im RGB-Farbraum festlegbar.
- Lichtfarben und -Helligkeiten nun beliebig im RGB-Farbraum festlegbar.
- Konfiguration durch eine INI-Datei.
- Steuerung der Einstellungen mit Tasten + Einblendung der Tastenbeschreibungen.


Version 0.2.1:

- Nun sind auch Kugeln darstellbar! Das tolle am Raytracing ist, dass diese perfekt (nicht in Polygone aufgeteilt o.Ä.) dargestellt werden.


Version 0.2:

- Licht wird in Abhängigkeit der Entfernung und des Eintreffwinkels beschrieben. Nachteile der fehlenden globalen Beleuchtung sind offensichtlich.


Version 0.1:

Features:
- Beliebige Trapeze im 3D-Raum können perspektivisch korrekt dargestellt werden.
- Lichtpunkte können beliebig positioniert werden.
- Schatten werden berechnet, allerdings nicht diffus.

In Planung (???):
- Datenstruktur für effizienten Sichtstrahlenschnitt (z.B. OctTree)
- Diffuse Schatten
- Globales Beleuchtungsmodell?
- Importieren von .b3d?

Downloads

EXE, Version 4.0
(454,55 KB)


Kommentare

(Donnerstag, 3. Juli 2008 um 16:59 Uhr)

Von Casiopaya

>>Kann es sein, dass du den Raum noch nicht unterteilst, um schnell zu erfahren, welche
>>Objekte überhaupt infrage kommen, von einem Ray getroffen zu werden?

Ja Smile. Ist natürlich in Planung, ich wills aber vernünftig machen. Komme wohl um BSP- Oct- oder andere -Trees nicht herum. Muss mir da was wirklich schnelles einfallen lassen. Irgendwann B3b-Models zu laden stellt natürlich die Krönung dar.

Was genau meinst du mit "komisch dargestellt"? Du musst wissen, dass momentan der Boden, die Decke, die Wände, die Spiegel und das Regal jeweils nur ein Trapez sind Smile. Falls du die Schachbrett-Farben meinst: Ja, das liegt leider, leider an der bescheidenen Fließkomma-Genauigkeit von BB.
(Donnerstag, 3. Juli 2008 um 11:06 Uhr)

Von Mr.Keks

Ich finde deinen Raytracer soweit schon ziemlich cool.

https://www.blitzforum.de/upload/file.php?id=3105
Die Trapeze werden irgendwie komisch dargestellt, wenn man ihnen zu nahe kommt. ^^

Kann es sein, dass du den Raum noch nicht unterteilst, um schnell zu erfahren, welche
Objekte überhaupt infrage kommen, von einem Ray getroffen zu werden?
Denn dann wirste spätestens bei komplexeren Polygonobjekten ziemlich viel Freude haben.
(Mittwoch, 25. Juni 2008 um 00:08 Uhr)

Von Casiopaya

@mabox: Bei meinem 3500+ dauert ein Frame (große Auflösung) etwa 15-25 Sekunden. Ist halt wahnsinnig rechenaufwändig (und noch nicht wirklich hochoptimiert). Ich sags mal so: Wenn die kleine Auflösung bei dir flüssig liefe, hättest du wohl 4 zusammengeschaltete 16-Core-CPUs Smile

@Noobody: Das hier ist noch kein fertiges Projekt (ich bin genau vor 5 Tagen auf die Idee gekommen einen Raytracer zu schreiben, Wikipedia sei dank war das möglich Smile), allerdings ist es bereits in seinem aktuellen Funktionsumfang derart "fähig", dass man es durchaus schon hier zeigen kann, denk ich zumindest. Es folgen Kugeln (laufen jetzt schon hier bei mir, Spiegelung, etc). Bei größeren Änderungen änder ich auch diesen Eintrag, ich weiss nun nicht genau wo du das Problem siehst. 3D-Modelle können vllt irgendwann geladen werden (ich muss einen Konverter in meine "Objekt-Welt" schreiben), aber wohl nicht in den nächsten 5 Tagen...

Bezüglich vorgerenderte Animation: Lass mal etwas laufen, jedes Frame wird abgespeichert. Wenn ich die vorgerendert (mit allen Lichteffekten) und alles in eine 400 KB-Exe gepackt hätte, hätte ich wohl einen Komprimier-Algorithmus entwickeln müssen, der 7zip zum Frühstück verspeisst...
... (Dienstag, 24. Juni 2008 um 23:07 Uhr)

Von Noobody

Nun, ich verstehe nicht ganz, was das im Showcase macht....
Nach allem, was ich weiss, könntest du uns genauso gut eine vorgerenderte Animation per Delay präsentieren.
Ohne die Möglichkeit, gängige 3D - Modelle reinzuladen wäre es höchstens noch was für einen Projektethread.
(Dienstag, 24. Juni 2008 um 21:35 Uhr)

Von mabox

bei der Vollbildversion kommt bei mir ein schwarzer Bildschirm.....hab 20 sek gewartet.
bei der Fensterversion stockelt es.......oder gehört das so?
Objekte (Dienstag, 24. Juni 2008 um 12:02 Uhr)

Von Casiopaya

Hoppla, nicht dass ich mich da falsch ausdrücke: Die Objekte sind beschrieben durch Types. Eine Ebene hat also Aufpunkt, Richtungsvektoren, (bald Farbe) etc.
Wenn ich die Koordinaten einer Ebene verändere ist dies natürlich sofort im neuen Bild sichtbar. Die Objekte werden momentan nur beim Start erstellt und gefüllt. Man kann auch sofort 10 weitere Ebenen hinzufügen, mann muss halt nur die Types füllen. Die Kamera-Position und -Richtung ist ebenfalls in Objekten (Blickpunkt mit Projektionsebene) gekapselt.
(Dienstag, 24. Juni 2008 um 11:24 Uhr)

Von Casiopaya

Man bedient es indem man zum Beenden ESC drückt Smile Das Beenden dauert so lange, bis das aktuelle Bild fertig gerendet ist (d.h. die Taste wird erst dann ausgewertet).
Nen Editor gibts momentan noch nicht (Objekte sind hard-gecodet), allerdings überleg ich mir vllt ein textuelles Dateiformat.
"beliebig positionierbar" (Montag, 23. Juni 2008 um 22:27 Uhr)

Von Eingeproggt

Wär interessant, den "Editor" zu sehen. Weil da kann man ja nur das Ergebnis betrachten. Sollte ich mich irren, erklär mir bitte, wie man das Prog bedient. Ich habs ncihtmal beenden können...