View Full Version : [Frage] Gouraud shading, 2. Versuch
Hier die verbesserte Version!
Gouraud Shading, Prüfung 6. Dezember 2002
Hier kurz die Numerierung, welche Intensitäten
zu welchen Punkten gehören
(3,7,8) = I1
(10,-7,1) = I2
(2,-17,-3) = I3
(-2,-37,25) = I4
Auf der Linie des gesuchten Punktes liegt
auf der Strecke I1,I2 I5 und auf I3, I4 I6.
Der gesuchte Punkt ist I7.
I1=0,3621
I2=0,0408
I3=-0,1726 (? ich rechne jetzt mit dem neg. Wert weiter)
I4=0,2796
I5=0,1326
I6=0,0535
I7=0,1128
Diese Lösung sollte jetzt richtig sein, zumindest stimmt jetzt
die Winkelberechnung!
Liebe Grüße
-Markus
Du hast bei I3 vergessen mit kd zu multiplizieren!
aber sost durft das stimmen!
Arrrrg :(
Danke, hab tatsächlich vergessen, mit 0,5 zu multiplizieren.
Bist auch der Meinung, dass man mit den negativen weiterrechnet, oder?
Liebe Grüße
-Markus
meine Lösung für a) ist 0.1229475
(I3 = -0.85)
ich rechne auch mit dem neg. Wert weiter, keine Ahnung, ob man das darf oder nicht, hab dem Wilkie schon eine Mail geschrieben, aber er hat noch nicht geantwortet, mal sehen.
allerdings kommt mir bei b) ein neg. Wert für die specular Reflection raus, nämlich -0.13, das kann doch nicht sein, oder?
Der Normalvektor an dieser *-Stelle sit bei mir (6,-9,5)
ja den normalisiere ich ----> (0.504,-0.755,0.42)
Dann berechne ich R=(2N*L)*N-L, wobei L=(0,0,1) und N= normalisierter Vektor
---> R= 0.42336, -0.6342,-0.6648)
Ja und das dann alles in Ispec=ks*Il*(V*R)^ns eingesetzt (V=(0,0,1); ns=5; ks=0.5, Il=1) kommt -0.13 raus.
Findet jemand den Fehler, ich hab keine ahnung, was ich flasch gemacht habe.
Danke
@cha: ich denke, Du hast Dich verrechnet.
Hier meine korrigierten Werte, nicht aufgeführte stimmen mit denen oben überein:
I3=-0,0863
I6=0,0966
I7=0,1236 (das Ergebnis)
Ich hoffe, damit endlich auf Zustimmung zu stoßen! :D
Liebe Grüße
-Markus
@magic7
Ja, also ich rechne auch mit dem negativen Wert weiter, rein intuitiv sollt das glaub ich stimmen, weil sonst kommt ja beim interpolieren ein schmarrn raus!
@cha
also irgendwas stimmt da bei deiner Berechnung nicht, ich bekomm für phong I* = 0.21629 raus!
Ich glaub du hast da beim Beleuchtungsmodell was falsch gmacht:
kd*IL*(N*L) + ks*IL*(N*H)^ns, wobei H bei unserem Lichtvektor gleich dem Lichtvektor L ist weil ja der Viewingvektor = Lichtvektor und somit der Halfvektor auch gleich den beiden!!
WEnn ich mit der Formel Ispec = ks*Il*(N*H)^ns und H= L+V/|N+V| rechne:
H=(0,0,1) ... Ispec=0.5 * 1* (0.42)^5 (0.42 ist die z-Koord. vom normalisierten N) = 0.006534
Dein N stimmt aber schon mit meinem berien oder?? .. siehe oben
Ja, hab den gleichen Normalvektor! 0,5035/-0,75526/0,4195907
--> kd*IL*(N.L) + ks*IL*(N.L)^ns
-->0,5 * 1 * 0,4195907 + 0,5 * 1 * (0,4195907)^5 = 0,2162981
nimm doch einfach die andere spec-formel:
ks * il * (V*R)^ns
das R kannst dir ausrechnen, und alles andere is eh gegeben!
hi!
ich hab beim Phong vom 6.12. beim ersten teil das gleiche,
aber beim 2. teil einen andren wert und weiss nicht wieso.
normalvektor normalisiert ist (0,504, -0,755, 0,42)
dann rechne ich R= (2.N.L).N-L und erhalte (0,42336, -0,6342, -0,6472)
da stimmt alles mit cha überein ausser der letze wert,
drum krieg ich dann auch für Ispec -0,0568 raus.
aber wieso sind zwei werte bei R gleich nur der dritte nicht,
ich habs schon so oft nachgerechnet, find den fehler aber nicht.
kann wer helfen?!
hier ist mal meine lösung für a) :
I7=0,1451
die meisten werte hab ich gleich nur I6 hab ich anders
für rechenweg,formeln etc. einfach in den anhang schauen.
ps: ( den anhang mit wordpad öffen)
@RS250
warum brechnest du Idiff + Ispec??? es ist doch nur Ispec verlangt, oder nicht?
ups, tschuldigung, mei Fehler, hast recht, Phong is ja nur Ispec, und das is dann
Ispec = ks*IL*(V.R)^ns
oder
Ispec = ks*IL*(N.H)^ns
Ispec = 0,0065028 ?!?!?
@RS250
Ja, das hab ich auch.
Aber ich verstehe trotzdem nicht, warum das mit der Formel (V*R) statt (H*N) nicht geht, da müsste ja dasselbe rauskommen.
Seltsam. :-)
das würde mich auch interessieren, wie es möglich ist bei (v*r) was andres rauszukriegen als bei (h*n).
wie geht das?
Vielleicht eine blöde Frage, aber könnte jemand genau posten wie man H bzw. R ausrechnet, mit bsp. und erklärung bitte!
@ dove
ich habs genauso wie du, auch eine negative zahl bei der letzen kooordinate
@ all: in welche richtung habt ihr L und V angenommen? (0,0,1) oder (0,0,-1)
daran liegt das nämlich, dass bei dove und mir die z-koordinate immer negativ is...
Aslo was ist jetzt der endgültige und richtige Wert für
Ispec
vom 6.12?
Original geschrieben von Kenny
@ dove
ich habs genauso wie du, auch eine negative zahl bei der letzen kooordinate
@ all: in welche richtung habt ihr L und V angenommen? (0,0,1) oder (0,0,-1)
daran liegt das nämlich, dass bei dove und mir die z-koordinate immer negativ is...
naja ich würd (0,0,1) nehmen.Laut angabe ist das ja die richtung ZUR lichtquelle.und wenn du die jetzt die folien anschaust zeigt der vektor L auch immer ZUR lichtquelle
Also ich steh grad auf der Leitung, ich klebe noch immer bei Bsp a):
Woher wißt ihr, dass der gesuchte Punkt I7 ist. Ich lese ständig was von Pixel-zählen in y-Richtung, aber weiss nicht ganz was ihr meint :-(
pixel zählen in egal welche richtung, einfach entlang der kante
schau, du hast in den werten der eckpunkt-vektoren eine bestimmte differenz
un diese musst du aufteilen auf soviele schritte wie pixel (also kasterln, ganz einfach) dazwischen liegen
das is die ganze interpolation, ganz simpel :)
Das was SebyMan schreibt klingt sehr logisch:
ich glaub, man muß immer genau schauen, was in der angabe steht: "Die Richtung zur
Lichtquelle ist durch den Vektor (0,0,1) gegeben." bedeutet L=(0,0,1) aber "die Blickrichtung sei durch (0,0,1) gegeben" bedeutet V=(0,0,-1). mit V ist nämlich beim Phong-Modell (so wie ich das sehe) die Richtung zum Auge des Betrachters gemeint.
aber wenn man sich H ausrechnet würde ja 0 rauskommen, oder?!
und das hätt ja auch keinen Sinn.
Ich versteh ausserdem immer noch nicht, wieso bei Berechnung mit H was andres rauskommt als bei Verwendung von R!
Laut Buch (hab die entsprechende Stelle aber nicht genauer studiert) ist die Berechnung mit H weniger aufwendig, also eine Vereinfachung (mit scheinbar für die CG ausreichender Genauigkeit). Die Berechnung mit R (wo wiederum der Normalvektor verwendet wird) ist die genaue Berechnung.
Daraus erklärt sich der Unterschied.
?
-Markus, der's mit R berechnet.
ja, das mit der vereinfachung hab ch auch gelesen!
und welche variante muss ma bei der prüfung verwenden? egal ?
tschurlo
26-01-2003, 22:47
Also I1-I4 habe ich auch noch, wie kommt man entlang der Linien auf die Werte, bzw. entlang der Scanlines? Kann mir jemand dieses interpolieren erklaeren und vielleicht auch ein Bsp schreiben?
Danke
siehe mein anhang vorherige seite.
beispiel teil a :
I5=I2 + [ (I1-I2)/Absatnd(in Pixel) von I2 zu I1 * Abstand(in Pixel) I2 zu I5] :
0,0408 + 2*(0,3261-0,0408)/7 =0,1326
was du im prinzip machst ist das du die veränderung von I ausrechnest wenn du von I2 nach I1
gehst.das teilst du dan durch die anzahl der pixel die dazwischen liegen.jetzt hast du die veränderung pro pixel.von I2 nach I5 sind es zwei pixel,also nimmst du den vorigen wert mal 2 und addierst ihn zu I2.
hoff es hat geholfen
vBulletin® v3.7.1, Copyright ©2000-2008, Jelsoft Enterprises Ltd.