PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Raytracing - Tiefentest


instinct
2009-04-27, 17:56:29
Angenommen mein Raytracer kann triangulierte Szenen rendern und ich habe eine Szene in der, von der Kameraposition aus gesehen, zwei Dreicke hintereinander liegen.

Woher weiss ich nun, welches Dreick ich rendern muss?

Mein Ansatz (welcher nicht funktioniert) ist folgender:
1. Ich schneide die beiden Dreiecke mit meinem Strahl
2. Ich vergleiche (length = Funktion um Länge eines Vektors zu berechnen):
length(schnittpunkt_mit_dreieck1-strahl_ausgangspunkt) mit
length(schnittpunkt_mit_dreieck2-strahl_ausgangspunkt).
3. Der kleinere Wert sagt mir, von welchem Dreick ich meine Farbe beziehen muss.

Was mache ich falsch?

Gast
2009-04-27, 18:19:00
Du kannst doch den Z-Buffer verwenden, um an die Tiefeninformation der Dreiecke zu kommen.

instinct
2009-04-27, 18:20:26
Es handelt sich um ne GPU-Implementierung, ich habe keinen Z-Buffer zur Verfügung

Bietchiebatchie
2009-04-27, 18:35:43
...
Was mache ich falsch?
Irgendein Bug in der Implementierung, das beschriebene klingt absolut korrekt.


Es handelt sich um ne GPU-Implementierung, ich habe keinen Z-Buffer zur Verfügung


:| Du machst nen brute-force-raytracer auf der gpu?

instinct
2009-04-27, 18:40:17
Naja momentan ist das Ganze noch brute force, allerdings bin ich auch erst seit 2 Tagen dran. Später soll das Ganze mit nem regulären Gitter (Stichwort Voxel) beschleunigt werden.

Gast
2009-04-27, 18:48:57
Was mache ich falsch?

Du postest keinen Code und kein Bild.

Coda
2009-04-27, 19:18:15
Was mache ich falsch?
Nichts. Deine Ausführung ist völlig korrekt, es muss ein Bug sein der nichts mit dem Algorithmus zu tun hat.

instinct
2009-04-27, 22:23:17
Ok vielen Dank für eure Hilfe, dann werde ich mal den Bug suchen :)

Chris Lux
2009-05-01, 12:10:24
noch ein tipp: nutze die quadrierte laenge, so sparst du dir die wurzel.