View Full Version : Phong mit Glanzlicht
Aufgabenstellung:
berechnen sie dasselbe pixel nun auch unter einbeziehung eines glanzlichtes (specular reflection) . Nehmen sie ks mit 0.3 und ns mit 4 an
die Blickrichtung sei durch 0,0,1 gegeben
wie rechnet man sowas ?
wie bitte wirkt sich das auf den einen pixel aus ?
mfg wolk
Du berechnest ja das Glanzlich für jeden Pixel anhand seines Normalvektors, den du vorher durch interpolieren der Normalvektoren der Vertices kriegst.
die Formel dafür lautet
I = k(a) * I(a) + k(d) * I(l) * (N * L) + k(s) * I(l) * (N*H)^n(s)
H = V + L / |V| + |L|
N...unit normalvector
V...unit viewingvector
L...unit lightvector
I...color
EDIT: N*L und N*H sind skalare Produkte!
seas Wolk,
also mal zu dem Phong mit Glanzlichtbeispiel vom 29. 01..01
- Mein Normalvektor is beim *erl is (1,8,6) (wobei ma sich da frag, wozu ma den Punkt rechts unten überhaupt braucht?)
- um jetzt den Faktor zu berechnen, mit dem ma die Farbe multiplizieren muss rechnet ma mal die Länge vom Vektor aus: sqrt(1²+8²+6²) = sqrt(101)
- wenn ma jetzt die einzelnen Koordianten vom Vektor durch dessen Länge dividiert, bekommt ja den Einheitsvektor (Länge 1)
- da das Licht Richtung z-Achse geht (0,0,1) is für uns die z Koordinate interessant, weil die angibt in welchen verhältnis sich die Normale zum Licht befindet (Lambert'sches gesetz) und das is gleichzeitig auch der cos vom Winkel zw. Licht und Normalvektor
das heißt es is für uns 6/sqrt(101)
- um jetzt die Farbe zu berechnen multiplizier ich 6/sqrt(101)*Materialkonstante(0.2)*Lichtquelle(0.7) = 0.083 (kaum beleuchtet)
das Glanzlicht selbst:
B.S. 502 unten: Ispec = k*I*(V*R)^ns
wobei V der Normalvektor ist (mit Länge 1), R der Vektor der Idealen Reflexion (also bei uns (0,0,1))
und es steht noch dabei, dass die Blickrichtung (0,0,1) ist, das heißt genau die Ideale Reflexion
das heißt V*R ist bei uns [(1,8,6)/sqrt(101)]*(0,0,1) = 0,597 (ist eh das gleiche wie oben)
und insgesamt hat man: 0.3*0.7*0.597^4 = 0.02667
die gesamte Intensitaet ist die Summe beider Intensitaeten: B.S. 504
= 0.1097
mfg
Manfred
****
bitte gleich alle Fehler die ich drin hab posten, nicht, dass jemand alles falsch von mir abschreibt, danke
seas moaxl
1. teil stimmt, obwohl gerundet nicht 0,083 sondern 0,084 rauskommt *dasmusstesein*
2. teil stimmt auch
bedanke mich recht herzlich für diese simple aber doch recht einfache darstellung/lösung des problems
mfg wolk
wird nicht R mit der Formel R = ("N * L)*N - L ausgerechnet? Oder darf man d wirklich den Vektor (0,0,1) annnehmen?? (S. 503)
das ist allerdings eine berechtige frage
laut buch schauts so aus
allerdings wenn man überlegt, dann steht R doch in der Angabe drinnen oder (war zufällig in diesem beispiel auch 0,0,1)
sollte dieser angegebene vektor nicht invertiert werden ?
lichtvektor kommt von links -> reflexion nach rechts -> angegebenen vektor invertieren ? (nur eine vermutung)
oder liege ich da falsch ?
bin für kritik offen (*fahre ins wochenende*)
hmmm.... wen ich den Vektor invertier, dann bekomm ich doch für das Glanzlicht was negatives raus, damit würd sich ja beim summieren die Intensitaet verringern --> konn ned sei
rein logisch stimmts allerdings...
nach cha wär dann R = (0.0594, 0.3564, -0.6436), puh, und das ohne Taschenrechner?
aber irgendwie ist doch klar, wenn das licht gleich ist mit dem Winkel vom Betrachter, dann ist doch der ideale Normalvektor, der der dem Licht genau entgegengeht --> (0,0,-1)
vielleicht irgendwer eine Idee? schön langsam steh ich an
tschurlo
24-01-2003, 17:50
Darfst eh einen Taschenrechner mitnehmen es soll nur kein programmierbarer sein, der so ziemlich alles kann.
@wolk:
R steht in dieser Angabe nicht drinn, V = 0,0,1.
@cha:
Ich habe bisher überhaupt nur eine Überlegung nach Figur
14-12 im Buch gemacht: Wenn L=V dann ist der Winkel zwischen
R und V ja eigentlich gleich 2*dem Winkel zwischen L und N.
Naja, glaube mittlerweile nicht mehr, dass das stimmt
(Kuschelmaus, liest Du das?).
Ich denke, dass Dein Weg R zu berechnen, da besser ist.
Schau mir das morgen noch genauer an.
@all: Normalvektor und I = 0,084 stimmt.
Liebe Grüße
-Markus
vBulletin® v3.7.1, Copyright ©2000-2008, Jelsoft Enterprises Ltd.