4. Uebung
Moderator: Graphische Datenverarbeitung 1
-
- Windoof-User
- Beiträge: 39
- Registriert: 1. Okt 2008 09:28
4. Uebung
Der Theorieteil ist bereits fertig und kann auf der Vorlesungswebseite heruntergeladen werden. Die Programmieraufgaben folgen voraussichtlich im Laufe der Woche ...
Re: 4. Uebung
eine frage zur teilaufgabe 3b). hier steht, wir sollen für die gleichverteilung auch noch das stratified sampling durchführen. wir sollen in der a) aber kein information sampling durchgeführen, sondern die varianzen berechnen, die beim information sampling mit den gegebenen verteilungen auftreten. sollen wir nun für die gleichverteilung auch die varianz berechnen, die bei stratified sampling auftritt, oder sollen wir tatsächlich das stratified sampling durchführen? dann müsste aber ein konkretes N gegeben sein.
oder sehe ich was falsch?
EDIT: die 3 eingefügt, damit man weiß, wovon ich rede....
oder sehe ich was falsch?
EDIT: die 3 eingefügt, damit man weiß, wovon ich rede....
Ein Hemd ist Einstellungssache!
-
- Windoof-User
- Beiträge: 39
- Registriert: 1. Okt 2008 09:28
Re: 4. Uebung
Sie sollen in Teilaufgabe 3b) analog zu Teilaufgabe 3a) die Varianz fuer den Fall des stratified sampling berechnen (siehe letzten Eintrag in Tabelle 1).
Re: 4. Uebung
ich welchem zusammenhang steht die varianz die auf folie 14 (foliensatz 2008-12-08-RayTracing2Annotiert.pdf) berechnet wird mit den varianzen, die wir in aufgabe 3a) berechnen sollen. wird die varianz nach dem schema berechnet, kommen werte unabhängig von N raus.
Re: 4. Uebung
Kann es sein, dass mit "Wahrscheinlichkeitsverteilung p(x)" eigentlich die Dichtefunktion p(x) gemeint ist?
Auf Folie 13 von RayTracing2 steht, "p(x) ist immer positiv und das Integral von p(x) über den Definitionsbereich ist 1". Dies trifft aber eigentlich für Verteilungsfunktionen nicht zu, sondern für Dichtefunktionen.
Auf Folie 13 von RayTracing2 steht, "p(x) ist immer positiv und das Integral von p(x) über den Definitionsbereich ist 1". Dies trifft aber eigentlich für Verteilungsfunktionen nicht zu, sondern für Dichtefunktionen.
Re: 4. Uebung
Hat jemand das stratified Sampling verstanden?
Auf den Folien ist ein Witz was da steht und mit googlen komme ich auch leider nicht weiter.
Also ich habe bis jetzt folgendes verstanden. Man teilt den gesamten Bereich in kleinere Bereiche auf und nimmt von jedem kleinen Bereich stichproben, also die xi...Somit hat man eine bessere Verteilte Stichprobe und eine geringere Varianz. Aber wie drücke ich das alles mathematisch aus? und wie berechne ich die Varianz?
Auf den Folien ist ein Witz was da steht und mit googlen komme ich auch leider nicht weiter.
Also ich habe bis jetzt folgendes verstanden. Man teilt den gesamten Bereich in kleinere Bereiche auf und nimmt von jedem kleinen Bereich stichproben, also die xi...Somit hat man eine bessere Verteilte Stichprobe und eine geringere Varianz. Aber wie drücke ich das alles mathematisch aus? und wie berechne ich die Varianz?
Re: 4. Uebung
Du musst nicht unbedingt das "Schema" der Folie verwenden, aber es ist immer das Gleiche: Du hast eine Varianz von einer Summe über verschiedenen Zufallsvariablen, deshalb fällt das N nicht heraus, sofern du die Varianz der Näherung an das Integral berechnest.pAR4$1+ hat geschrieben:ich welchem zusammenhang steht die varianz die auf folie 14 (foliensatz 2008-12-08-RayTracing2Annotiert.pdf) berechnet wird mit den varianzen, die wir in aufgabe 3a) berechnen sollen. wird die varianz nach dem schema berechnet, kommen werte unabhängig von N raus.
- MisterD123
- Geek
- Beiträge: 811
- Registriert: 31. Okt 2006 20:04
- Wohnort: Weiterstadt
Re: 4. Uebung
du hast jitter, xs und ys angegeben. nun willst du den farbwert für einen pixel berechnen. was du jetzt machst ist, du nimmst nicht einfach zufällig einige strahlen die durch den pixel gehen und mittelst die, sondern du teilst den pixel in ein raster auf was xs*ys groß ist, also beispiel xs = ys = 5 teilst du den pixel in ein 5x5 raster auf. jetzt schießt du durch jedes dieser felder einen strahl - entweder genau durch die mitte (jitter=false), oder irgendwo durch das feld (jitter=true). dadurch verhinderst du, dass alle 25 strahlen die du durch den pixel schießt an der fast selben stelle durch den pixels gehen zB, aber hast immernoch zufällige verteilung drin.Xaero hat geschrieben:Hat jemand das stratified Sampling verstanden?
Auf den Folien ist ein Witz was da steht und mit googlen komme ich auch leider nicht weiter.
Also ich habe bis jetzt folgendes verstanden. Man teilt den gesamten Bereich in kleinere Bereiche auf und nimmt von jedem kleinen Bereich stichproben, also die xi...Somit hat man eine bessere Verteilte Stichprobe und eine geringere Varianz. Aber wie drücke ich das alles mathematisch aus? und wie berechne ich die Varianz?
hab grad noch n bild gefunden: jeder grüne punkt is ein strahl, das ganze bild zusammen ist ein pixel, hier halt aufgeteilt in 4*5 felder. der farbwert ergibt sich jetzt aus dem mittel aus diesen 20 strahlen. (hier: jitter=true)

und für jitter=false sähe das halt so aus:

(entnommen von und auch nochmal ausführlich erklärt auf: http://www.cee.vt.edu/ewr/environmental ... ample.html
dort wird zwar stratified sampling anders erklärt und das was bei uns stratified smapling heißt, heißt dort systematic sampling (macht auch mehr sinn, stratified heißt numal geschichtet und nicht gerastert), aber das prinzip ist das richtige.)
Re: 4. Uebung
d.h. berechnen durch handwaving ?
Re: 4. Uebung
in wieviele bins soll denn der zu integrierende bereich aufgeteilt werden? in N
wieviele stichproben pro bin sollen genommen werden auch N oder 1?
wieviele stichproben pro bin sollen genommen werden auch N oder 1?
Re: 4. Uebung
Die Anzahl der bins müsste durch nx bzw. ny gegeben sein und pro bin wird dann eine Stichprobe genommen.
Hab aber auch noch zwei Fragen:
1) Wieso ist das samp-array 2*nx*ny groß, obwohl ich pro bin nur einen float brauche?
2) Was genau soll denn get_next_sample machen?
Hab aber auch noch zwei Fragen:
1) Wieso ist das samp-array 2*nx*ny groß, obwohl ich pro bin nur einen float brauche?
2) Was genau soll denn get_next_sample machen?
Re: 4. Uebung
1) Weil Du einen (x und y)-Wert in der Bildebene hast. Das heißt 2 Werte pro Punkt/Binbanshee hat geschrieben:Die Anzahl der bins müsste durch nx bzw. ny gegeben sein und pro bin wird dann eine Stichprobe genommen.
Hab aber auch noch zwei Fragen:
1) Wieso ist das samp-array 2*nx*ny groß, obwohl ich pro bin nur einen float brauche?
2) Was genau soll denn get_next_sample machen?
2) Das nächste Sample verarbeiten !? Solange es Samples gibt, läuft die while-Schleife in der Render-Funktion
Kann mir jemand das Distributed Raytracing erklären. Den Pseudocode auf Seite 28/29 finde ich eher "grenzwertig" als irgendwie verständlich...
shade() ?
jitteredReflectDirection(N, -d, Material, Id) ?
pixeltoWorld() ?
Hä (Hessisches Fragewort mit 2 Buchstaben) ?
- MisterD123
- Geek
- Beiträge: 811
- Registriert: 31. Okt 2006 20:04
- Wohnort: Weiterstadt
Re: 4. Uebung
du schießt deinen ray, du triffst irgendwo, du berechnets die farbe.
das machst du bis jetzt auch schon
neu kommt dazu:
du berechnest einen (völlig wahlfreien) reflektionsvektor, triffst mit dem irgendwo, berechnest die farbe, verrechnest den mit dem material des ursprünglichen auftreffpunkts und addierst den zur farbe dazu.
und den rest macht das programm auch jetzt schon:
aus allen rays eines pixels nimmst du das mittel der farbe als farbwert für den ganzen pixel.
shade() ist die farbe deines materials anhand der lichtquellenverdeckung berechnet, wie du es im moment machst
jitteredReflectDirection() berechnet den (völlig wahlfreien) reflektionsvektor
pixelToWorld() berechnet dir die position des pixels im 3D-raum wenn du deinen bildschirm da reindenkst (CenterOfProjection -> PixelPosition sind die zwei stützpunkte der ray-geraden)
das machst du bis jetzt auch schon
neu kommt dazu:
du berechnest einen (völlig wahlfreien) reflektionsvektor, triffst mit dem irgendwo, berechnest die farbe, verrechnest den mit dem material des ursprünglichen auftreffpunkts und addierst den zur farbe dazu.
und den rest macht das programm auch jetzt schon:
aus allen rays eines pixels nimmst du das mittel der farbe als farbwert für den ganzen pixel.
shade() ist die farbe deines materials anhand der lichtquellenverdeckung berechnet, wie du es im moment machst
jitteredReflectDirection() berechnet den (völlig wahlfreien) reflektionsvektor
pixelToWorld() berechnet dir die position des pixels im 3D-raum wenn du deinen bildschirm da reindenkst (CenterOfProjection -> PixelPosition sind die zwei stützpunkte der ray-geraden)
Re: 4. Uebung
ich hatte hier den theorieteil gemeint und nicht den praxis teilpAR4$1+ hat geschrieben:in wieviele bins soll denn der zu integrierende bereich aufgeteilt werden? in N
wieviele stichproben pro bin sollen genommen werden auch N oder 1?
Re: 4. Uebung
Danke erstmal.MisterD123 hat geschrieben: neu kommt dazu:
du berechnest einen (völlig wahlfreien) reflektionsvektor, triffst mit dem irgendwo, berechnest die farbe, verrechnest den mit dem material des ursprünglichen auftreffpunkts und addierst den zur farbe dazu.
Aber wo bekomme ich den Wert Kr her, der mir den Reflektionsgrad des Materials angibt ?
In der LafMaterials.txt steht er nicht. Und wenn ich einen beliebigen nehme, dann reflektiert auch das diffuse Material
(z.B. der Wand), was es ja nicht soll.
Bekomme zwar Ergebnisse, aber die sehen ziemlich seltsam aus, und leider weiß ich auch nicht, wie es aussehen soll...