Raytracer Licht hinter einer Ebene

Übersicht Sonstiges Smalltalk

Neue Antwort erstellen

 

flashmaxel

Betreff: Raytracer Licht hinter einer Ebene

BeitragFr, Jan 29, 2010 14:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo, ich schreibe zurzeit einen sehr einfachen Raytracer und bin dabei auf ein Problem gestoßen, für das mir keine gute Lösung eingefallen ist.

user posted image

Das Problem:
Ich habe eine Lichtquelle hinter einer Ebene (von der Kamera aus gesehen). Wenn ich jetzt wie im Bild einen Strahl zur Bestimmung der Farbe eines Bildpunkts losschicke, trifft dieser auf die Ebene und liefert mir einen Schnittpunkt. Anschließen erstelle ich von diesem Schnittpunkt zu jeder Lichtquelle einen "Schattenstrahl", der überprüft, ob etwas zwischen diesem Schnittpunkt und der Lichtquelle liegt. Wenn etwas dazwischen liegt ist der Punkt dunkel ansonsten hell.
Das Problem ist, dass wenn die Lichtquelle hinter der Ebene liegt, das Licht natürlich durch die Ebene verdeckt sein sollte, also müsste der Punkt schwarz sein. Da aber der Schnittpunkt genau auf der Ebene liegt, wird die Ebene selbst nicht als Objekt entdeckt. Damit wird die Ebene sozusagen auch vorne von hinten beleuchtet Sad.

Wenn jemand eine Idee hat .. Vielen Dank!

Holzchopf

Meisterpacker

BeitragFr, Jan 29, 2010 14:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Dazu müsste doch eigentlich die Normale der Ebene (also der Vektor, der senkrecht auf der Ebene steht und von ihr weg guckt) dienen. Du nimmst deinen Lichtstrahl von der Lichtquelle als einen Vektor und rechnest mit der Normale der Ebene zusammen das Skalarprodukt aus (wenn ich mich nicht irre). Ist dieses Produkt negativ, heisst das, dass die Lichtquelle hinter der Ebene liegt -> keine Beleuchtung.

mfG

Edit
Danke für den Hinweis Nibor, Fehler korrigiert =)
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BYBinaryBorn - Yogurt ♫ (31.10.2018)
Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm
  • Zuletzt bearbeitet von Holzchopf am Fr, Jan 29, 2010 17:57, insgesamt 2-mal bearbeitet

Nibor

BeitragFr, Jan 29, 2010 16:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Richtiger Link, aber falscher Name.
Du hast das Skalarprodukt, das in der Tat wie von dir beschrieben verwendet wird, verlinkt. Allerdings ist das Kreuz- bzw. Vektorprodukt etwas anderes und liefert einen Vektor, der senkrecht auf den anderen beiden steht zurück.
http://www.blitzforum.de/showcase/203/
 

flashmaxel

BeitragSo, Feb 07, 2010 15:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Vielen Dank Holzchopf und Nibor das funktioniert!
Hab es schon länger eingebaut aber vergessen mich zu bedanken Embarassed .

Neue Antwort erstellen


Übersicht Sonstiges Smalltalk

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group