5. Mai 2009 – 14:34
Nach längerer Pause hier möchte ich heute meinen Raytracer, den ich in der letzten Zeit erarbeitet habe, vorstellen und zum Download anbieten. Zunächst ersteinmal ein paar Bilder welche den aktuellen Stand aufzeigen. Eine Beschreibung und die entsprechenden Berechnungszeiten sind jeweils im Bildbeschreibungstext zu finden. Dazu muss man aber sagen das weder der RayTracer ansich optimiert wurde (z.B. über ein kd-Tree), noch der Sourcecode drumherum optimiert ist.

Der RayTracer ist komplett in C++ und die entsprechende GUI mit VC++ .Net auf WinForms Basis geschrieben. Im Moment ist das Phong-Beleuchtungsmodell implementiert und als kleinen Bonus kann man noch, zumindest für die Ebenen, Texturen laden, welche die Diffusefarbe ersetzen. Nun folgt noch eine kleine Bildergalerie welche Schritt für Schritt zeigt wie man von einfachem Ambient bis zur PerfectReflection mit Schatten kommt. Die einzelnen Schritte lassen mit frei wählbaren Einstellungen auch in der GUI simulieren.

Hier nun der Download. Zum einen ein reiner Release-Build und weiterhin der komplette Source(VS bzw. VC++Express Solution). Das .NET 2.0 Framework wird vorrausgesetzt.
Release (.rar, 187KB)
sGUIRayTracer-Solution (.rar, 258KB)
Da mir die Arbeit an diesem Raytracer sehr viel Spass gemacht hat und man viel dabei lernen konnte werde ich wohl noch ein wenig daran weiterarbeiten. Hier mal eine Liste was man überhaupt noch in einem Raytracer implementieren kann. Was ich davon noch wählen werde steht noch nicht fest. Es hat alles seinen Reiz und im Moment tendiere ich zu Normalmapping direkt über eine Map und/oder Bumpmapping über PerlinNoise.
- kd-Tree oder spatial subdivision zur Geschwindigkeitsoptimierung
- depth of Field
- isosurfaces (blobs)
- fresnel und Transparenz (refraction)
- Bump/Displacement mapping
- Normalmapping
- fog
- Soft-Shadows
- Photon maps (global illumination)
- weitere Geometrieobjekte (Cylinder, Box etc.)
- Antialiasing
- Photo exposure
Interessante Links/Quellen
Wikieintrag zu RayTracing
Mandelbrot’s RayTracing explanations
Tutorialreihe auf Flipcode (sehr zu empfehlen!)
Tutorialreihe auf Codermind
Tutorialreihe der DGL-Wiki
Tutorialreihe von Forrest Briggs
Wie immer keine Garantie auf Richtigkeit oder Vollständigkeit!
Posted in Projekte | 1 Comment »