Raytracer Licht hinter einer Ebene
Übersicht

flashmaxelBetreff: Raytracer Licht hinter einer Ebene |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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.
![]() 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 ![]() Wenn jemand eine Idee hat .. Vielen Dank! |
||
![]() |
HolzchopfMeisterpacker |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 BY ♫ BinaryBorn - 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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Vielen Dank Holzchopf und Nibor das funktioniert!
Hab es schon länger eingebaut aber vergessen mich zu bedanken ![]() |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group