12.07.2015 Aufrufe

Sampling

Sampling

Sampling

MEHR ANZEIGEN
WENIGER ANZEIGEN
  • Keine Tags gefunden...

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

Motivation: <strong>Sampling</strong>• Ein naiver (und sehr teurer) Ansatz, die Rendering Equation mitHilfe eines Raytracing-Ansatzes zu lösen, wäre– wird eine diffuse Oberflächen getroffen, so werden viele Strahlenweiterverfolgt– trifft so ein Strahl wieder auf eine diffuse Oberfläche, geht mangenauso weiter, … bis eine Lichtquelle getroffen wird.• Wie „sampled sampled“ man die Hemisphäre (gleichmässig) ?T. Grosch - 3 -


Motivation: <strong>Sampling</strong>• Ein naiver (und sehr teurer) Ansatz, die Rendering Equation mitHilfe eines Raytracing-Ansatzes zu lösen, wäre– wird eine diffuse Oberflächen getroffen, so werden viele Strahlenweiterverfolgt– trifft so ein Strahl wieder auf eine diffuse Oberfläche, geht mangenauso weiter, … bis eine Lichtquelle getroffen wird.• Wie „sampled sampled“ man eine BRDF?T. Grosch - 4 -


Motivation: <strong>Sampling</strong>• Ein anderer (immer noch naiver) Ansatz besteht darin, zumindestdie Lichtquellen direkt abzutasten– Das direkte Licht wird also eingesammelt und man überlässtes nicht dem Zufall, ob ein Strahl die Lichtquelle trifft– Für das indirekte Licht werden wieder viele Strahlenverschickt …• Wie „sampled“ man eine Lichtquelle?T. Grosch - 5 -


Beispiele• Im Zusammenhang mitComputern verwenden wireinen Zufallsgenerator• (float) rand() / RAND_MAXliefert uns eine Zufallszahl imBereich [0,1]• Beispiel: Samplen einesParallelogramms– Wähle zwei Zufallszahlen xund y im Bereich [0,1]– (x, y) ist damit dergesuchte Sampley vAx vFür unsere Zwecke reicht diese Funktion,es gibt auch noch bessere Generatoren für Zufallszahlen: ran4(), drand48(), …T. Grosch - 6 -


Grundlagen derWahrscheinlichkeitsrechnung


Begriffe an Beispielen• Eine wichtige Basis in derWahrscheinlichkeitsrechnungbildet das Zufallsexperiment• Mit Hilfe einesZufallsexperiments werdenzufällige Ergebnisse ω erzielt.• Ein Beispiel für ein diskretesZufallsexperiment ist dasdreimalige Werfen einerMünze.• Einzelne Würfe:– 0: „Wappen“– 1: „Zahl“• Mit den Wahrscheinlichkeitenp=1/2 für Wappen bzw. Zahl.• Die Ergebnismenge lässt sichdarstellen durch:Ω ={( 0,0,0) , ( 0,0,1 ),..., ( 1,1,1 )}T. Grosch - 10 -


Zufallsvariable• Mit Hilfe dieser Ergebnissewerden Zufallsvariablen Xdefiniert, die die jeweiligenErgebnisse auf reelle ZahlenabbildenX: Ω → R• Eine Zufallsvariable ist alsoeine Abbildung.• Beispiel: Untersucht wird dieAnzahl der „Wappen Wappen“ beimdreimaligen Werfen einerMünzeX (( 0,0,0)) = 3X ((0 0,0,1)) 0 =2MX (( 1,1,1)) = 0T. Grosch - 11 -


Zufallsvariable• Zum Verständnis:– Wir haben einZufallsexperiment– Daraus erzielen wirzufällige Ergebnisse– Diese Ergebnisse werdenauf Zahlen abgebildet• Umgekehrt:– Die Zufallsvariablen sind„Wahrscheinlichkeitsbehaftet“– Wir erzeugen die Zahlenmit gewissenWahrscheinlichkeitenT. Grosch - 12 -


Wahrscheinlichkeiten• Die Wahrscheinlichkeit, dass Xeinen bestimmten Wertannimmt, erhält man z.B.durch Abzählen:PPPP1= 3 =83= 2 =83=1 =81= 0 =8( X )( X )( X )( X )T. Grosch - 13 -


Verteilungsfunktion• Oftmals interessiert man sichnicht direkt für dieWahrscheinlichkeit P(X = x) füreinen bestimmten Wert von X,• sondern für dieWahrscheinlichkeit, dass X ineinem bestimmten Bereichliegt• Hierfür verwendet man dieVerteilungsfunktion F(x)( x) = P( X ≤ x) x ∈RF ,• Die Verteilungsfunktion erhältquasi die kumuliertenWahrscheinlichkeiten• Für ein beliebiges Intervall(a,b] der Zufallsvariablen Xlässt sich dieWahrscheinlichkeit mit Hilfeder Verteilungsfunktionberechnen durchP( a < X ≤ b) = F( b) − F( a)T. Grosch - 14 -


Wahrscheinlichkeit undVerteilungsfunktioniP ( X = x)F( x) = P( X ≤ x)8/ 88/ 86 / 86 / 84 / 84 / 82 / 802 / 8X00 1 2 3 0 1 2 3WahrscheinlichkeitenVerteilungsfunktionXT. Grosch - 15 -


EigenschaftenP ( X = x)F( x) = P( X ≤ x)8/88/86 /86 /84 /84 / 82 /802 /8X00 1 2 3 0 1 2 3XWahrscheinlichkeiten:Verteilungsfunktion:• Werte im Bereich [0,1] • Werte im Bereich [0,1]• Monoton wachsend (1 am rechten Rand)T. Grosch - 16 -


Stetig verteilte Zufallsvariablen• Bisher:– Diskrete Ergebnisse– Diskrete Zufallsvariablen– Wahrscheinlichkeitenkonnten klar zugeordnetwerden• Stetige Verteilung– Beispiel: Der Winkel ϕbeim Drehen eines Rades– Problem: wie groß ist dieWahrscheinlichkeit für einbestimmtes t Ergebnis?ϕT. Grosch - 17 -


Stetig verteilte Zufallsvariablen• Die Wahrscheinlichkeit für einbestimmtes Ergebnis ist Null• Die Wahrscheinlichkeitenkönnen nur für Intervalleangegeben werden– z.B. Aufteilung Rad in Sektoren• Wichtig ist hier also dieVerteilungsfunktion( a


Dichte, Dichtefunktion• Bei diskreten Ergebnissen gab es Wahrscheinlichkeiten– die Verteilungsfunktion ergab sich durch Summation– „… die Zufallsvariable nimmt mit einer Wahrscheinlichkeit einenWert an…“• Bei stetig verteilten Zufallsvariablen gibt es eine Dichtefunktion(pdf, probability density function)– Die Verteilungsfunktion (cdf, cumulative distribution ib ti function))ergibt sich durch Integration– Definition der Dichtefunktion durch die Hintertür…• Eine Zufallsvariable X heißt stetig verteilt mit der Dichte p, falls sichihre Verteilungsfunktion schreiben lässt als:Fx∫−∞( x) = p( t)dtT. Grosch - 19 -


Glücksrad1Fx( x) = p( t)dt∫−∞ϕ0a bVerteilungsfunktion1x1b − ab p( t)0a btDichteT. Grosch - 20 -


Eigenschaften11b − ap( t)1Fx( x) = p( t)dt∫−∞0a bt0a bxDichteVerteilungsfunktion• Werte sind nicht negativ,• Monoton steigendkönnen beliebig groß werden • Werte im Bereich [0,1]• Fläche unter der Kurve mussEins sein:p t dt =∫x∈Ω( ) 1T. Grosch - 21 -


Rechteck (Gleich)-Verteilungp() t=⎧ 1⎪b −a⎨⎪ 0⎪⎩a < t < bsonstF( x)=⎧ 0⎪x− a⎨⎪b− a⎩ 1ax ≤ a< x < bx ≥ b111b − a0a bt0a bxDichteVerteilungsfunktionT. Grosch - 22 -


[0,1] 1]-Gleichverteilungp( t)⎧ 1 0 < t < 1⎪= ⎨⎪⎩0sonstF( x)⎧0x ≤ 0⎪= ⎨x0


Beispiel: Samples• Die Idee ist, dass wir unsZufallsvariablen mit einerbestimmten Dichte erzeugen• Die Zufallsvariablenbeschreiben in unseremKontext oft einen Ort aufeiner Oberfläche, wodurchdie Bedeutung sehranschaulich wird.• „Hat die Dichte an einerStelle einen großen Wert,dann ist hier auch dieWahrscheinlichkeit sehrhoch, dass hier Samplesgeneriert werden“.DichteT. Grosch - 24 -


BeispielDichte• Wie groß ist dieWahrscheinlichkeit, dassSamples zwischen Position 1und 2 generiert werden?PVerteilungsfunktion( 1 ≤ X ≤ 2) = F( 2) − F( 1) ≈ 0. 35T. Grosch - 25 -


Die große Frage…• Wie generiert manZufallszahlen mit einergegebenen Dichte?• Als Basis haben wir den [0,1]-verteilten Zufallsgeneratorunseres Computers (rand) …• Beispiel:– Wir haben eine Reihe von[0,1]-gleichverteiltenZufallszahlen( ξ , ξ2,, )1Kξ n– Wir wollen daraus Samplesx i mit einer gegebenenDichte erzeugen (s. Bsp.)p3 2( x) = ⋅ x , x ∈( −1,1)2DichteT. Grosch - 26 -


Inverse CDF-Methode• Wie generiert man Zufallszahlen mit einer gegebenen Dichte p ?• Vorgehen– Bestimme die VerteilungsfunktionF( )– Invertiere diese: F −1 ( )F −1 ( )– Bildet man gleichverteilte Samples mit ab, soerhält man Samples, die nach p verteilt sind.−1X = F( ξ)ξT. Grosch - 27 -


Erklärung zu inverser CDFξ ixDichte• Gegeben:– Punkt x mit F(x) = 0.7• Also:– 70% aller Samples sollten links vonx sein und 30% rechtsxVerteilungsfunktionξ i• Wenn man N gleichverteilte Samplesauf die y-Achse legt, dann sind etwa70% davon unter F(x)=0.7• Bildet man die Samples mit F −1 ( ) ab,so landen diese 70% links von x auf derx-Achse (da F monoton wachsend ist)• also genau das, was wir wollenT. Grosch - 28 -


p( x)Beispiel2p ( x)=2x• Bestimme Zufallszahlen mitder Dichtep( x) = 2x,x ∈( 0,1)• Verteilungsfunktion• Invertierungx∫0( ) [2]x 2x = 2t⋅ dt = t = xξ = F ∫0F0( x)10 1Dichte2( x) xF =x=ξ• Pseudocodeξ = (float) rand()/RAND_MAX;00 1Verteilungsfunktionxx = sqrt (ξ);T. Grosch - 29 -


Beispiel 2• Bestimme Zufallszahlen mitder Dichtep( x) = ⋅ x , x ∈( −1,1)• Invertierung liefert3 312ξ = x +2 22• Die Verteilungsfkt. erhält mandurch:( x) = p( t) dt =ξ = F ∫x∫−1x−13 = ⋅2 =⎡1⋅3t dt t⎤2 ⎢⎣ 2 ⎥⎦ −31= x +22x1=xx3= 2ξ−1=32ξ−1T. Grosch - 30 -


Mehrdimensionale Zufallszahlen• Zunächst diskreter Fall• Beispieli – 3 x 3 Matrix mitWahrscheinlichkeiten c ete P(x,y)• Frage: Wie generiert manSamples nach dieserWahrscheinlichkeit– also z.B. 20% aller Samplesim rechten oberen Feld ?0.1 0.1 0.20.05 0.0 0.30.1 0.05 0.1• Hier keine direkte Invertierungmöglich (!)T. Grosch - 31 -


2 Schritt Verfahren• 1. Schritt– wähle eine Spalte aus• Bilde Spaltensummen– Entspricht derWahrscheinlichkeit, h hk it dassein Sample innerhalb derSpalte landet– Reduktion 2D 1DΣ0.1 0.1 0.20.05 0.0 0.30.1 0.05 0.10.25 0.15 0.6z.B. 60% allerSampleslanden in derrechten SpalteT. Grosch - 32 -


2 Schritt Verfahren• Generiere Sampleposition P 0.25 0.15 0.6nach inverser CDF derSpaltensummen 0.25 0.4 1.0F( X x)P =1.0F( x) = P( X ≤ x)1.00.750.75ξ 10.50.50.250.2501 2 3X01 2 3XT. Grosch - 33 -


2 Schritt VerfahrenP(x,y)P ( y | x)=P(x)• 2. Schritt0.1 0.1 0.2 0.33– wähle Zeile innerhalb dergewählten Spalte: 0.6– Normiere Spalte auf Summe 1 0.05 0.0 0.3 0.5– Berechne Samplepositioninnerhalb der Spalte mitinverser CDF Methode 0.1 0.05 0.1 0.16P ( X = x)F( x) = P( X ≤ x)1.01.00.750.750.50.5ξ 20.250.2501 2 3X01 2 3XT. Grosch - 34 -


Zusammenfassung• Bilde Spaltensummen• Wähle x-Position mit inverser CDF• Normiere gewählte Spalte• Wähle y-Position in Spalte mit inverser CDF• Wir haben uns im Beispiel für Feld (3,2) entschieden• Bei Wiederholung bekommt man Samples, die nach Pverteilt sindT. Grosch - 35 -


Stetige 2D Verteilung• Gegeben ist eine stetigeDichtefunktion, z.B.definiert auf einemRechteck• Gesucht: Sample-Verteilung nach dieserDichtey maxy minyyx minx( x y)p ,x max• F(x,y) :Wahrscheinlichkeit, dassSample in Rechteck[xmin, x] x [ymin, y] liegt p = 0p > 0xT. Grosch - 36 -


Verteilungsfunktion F(x,y)• F(x,y):Wahrscheinlichkeit, dassein Sample im Bereich[xmin, x] x [ymin, y] landetyy max1( x y)F ,• F(xmin,ymin) ) = 0y 0min• F(xmax,ymax) = 1 xx minFy( x y) = p( x',y')x, ∫ ∫yminxminx maxdx'dy'T. Grosch - 37 -


2 Schritt Verfahren• Schritt 1– Auswahl von x– y wird auf Maximumgesetzt– Reduktion 2D 1Dy maxy( x y)p ,Fymax( xy) =p( x',y'),maxyx∫ ∫minxmindx'dy'• F(x,ymax) ist dieWahrscheinlichkeit, daßein Sample links von x liegt• Bestimme x durch inverseCDF mit F(x,ymax)y minx minx max0 1F( x, y max)x( x)ξ 1= F, y maxxT. Grosch - 38 -


2 Schritt Verfahren• Schritt 22– Auswahl von y, wenn xbekannt– Suche y in „unendlichdünnem“ Streifen– Normierungξ = F(y | x)=ξ =2FFyyyy∫minmax∫minpp( ξ1,y)( ξ , y)ξ 1, y max( x,y') dy'( x,y') dy'y maxy minp(y | x)=yx min( x,y) p( x,y)pp(x)=yymax∫minp( x,y') dy'( x y)p ,x max0 1F( x, y max)x( x)ξ 1= F, y maxxDie untere Formel gilt, falls sich p darstellen lässt alsp( x,y)= f ( x)⋅ g(y)(Beweis Übung)


2D-Samples Zusammenfassung• Problem: Bestimme 2D-Samples mit einer 2D-Dichte auszwei i(0, 1)-gleichverteilten ilt Zufallsvariablen ξ 1 und ξ 2 .• Berechne Verteilungsfunktion• 1. Schritt• 2. SchrittFy( x,y) = p( x',y')yx∫ ∫minxmin( x)ξ 1= F, y maxξ =2( ξ1,y)( ξ , y )F ξ 1, yF1maxdx'dy'T. Grosch - 40 -


Beispiel• Gegeben ist eineDichtefunktion p im Bereich[0,1]x [0,1] undVerteilungsfunktion FDichtefunktion p im Bereich p ( x, y) =4xyFy x2 2( x, y) p( x',y') dx′dy′= 4x′y′dx′dy′= 4 y′dy′= 4 = x y0 0 0 00⎣2 ⎦ 2 20i t i Di ht d F( 111 ,1) =1y xy 2x= ∫∫ ∫ ∫ ∫• p ist eine Dichte, da⎡ x′⎢⎤⎥x2y2• Gesucht sind nach p verteilteSamples2( x, y) = F(x,1xF =max)ξ 1= ξ21= x ⇒ x ξ12 2 2( ξ1,y)ξ1y y= = ⇒ ξ2 22( ξ1, ymax) ξ111Fξ2= y =FT. Grosch - 41 -


Beispiel: Kreisscheibe• Gegeben ist eine Kreisscheibemit Radius R. Gesucht sindgleichverteilte Samplesinnerhalb des Kreises, also mitDichteFFp1= π ⋅ R( r,ϕ)2y( x,y) = p( x', y')yx∫ ∫minϕ r∫∫xmin( r ϕ) p( r',ϕ')dx'dy'123dA, = r'⋅dr'⋅dϕ'0 0dA =rr ⋅drϕR⋅dϕT. Grosch - 42 -


Beispiel: Kreisscheibe• Berechnung der VerteilungsfunktionF• 1. Schrittϕ r2r'r ⋅ϕ∫∫π⋅R2 ⋅π⋅R0 0( r,ϕ) ⋅dr'⋅dϕ'=22= ∫∫ π22r ⋅2π2πrξ1 = F ( r, ϕmax) = F( r,2π) = = ; r = R ξ2 212π⋅ R R• 2. Schrittξ( ξ1,ϕ)( ξ , ϕ)22F ξ1⋅ϕ2π⋅ R ϕ2= = ⋅ = ;ϕ = 222F1 max2π⋅ Rξ21⋅ 2πππ ⋅ξ2T. Grosch - 43 -


Vergleich: Kreisscheiber = R ⋅ξ 1r = Rξ 1ϕ =2 π ⋅ξ 2ϕ =2 π ⋅ξ2T. Grosch - 44 -


Beispiel: Samplen einer Halbkugel• … gemäß dem Phong-Beleuchtungsmodell:• Dichte• Verteilungsfunktionpn + 12πn( θ, ϕ) = cosθ• Samples– (Beweis als Übung)Fθ ϕ( θ ϕ) = p( θ ', ϕ'), sinθ' ⋅dθ' ⋅dϕ'∫∫0 0⎜( 1θ = arccos⎛) ⎞⎜ 1−ξn+111 ⎟ ⎠ϕ =⎝2π⋅ξ 2T. Grosch - 45 -


Beispiel: Phongn =1n = 10(vollständig diffuse Oberfläche)T. Grosch - 46 -


Beispiele anderer<strong>Sampling</strong>funktionen(Graphics Gems III)T. Grosch - 47 -


Zusammenfassung• Generierung von Samples nach einer Dichte p• Diskret, stetig, ti 1D, 2D• In zwei Wochen• Berechnung eines Integrals mit Hilfe der Samples• Rendering Equation Path Tracing• Nächste Woche keine Vorlesungen !• Denn: Internationale Konferenz in Magdeburggvom 12.11. bis 14.11. im Gesellschaftshaus• Kostenloser Eintritt für Studenten• Bitte vorher anmelden (Kosten werden zurückgesetzt)• vc.cs.ovgu.de/vmv2012• Oder spontan vorbeikommen mit StudentenausweisT. Grosch - 48 -Vision, Modeling andVisualization

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!