/ Forside / Karriere / Uddannelse / Højere uddannelser / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Højere uddannelser
#NavnPoint
Nordsted1 1588
erling_l 1224
ans 1150
dova 895
gert_h 800
molokyle 661
berpox 610
creamygirl 610
3773 570
10  jomfruane 570
Raytracing med photon mapping
Fra : Jens Polsen


Dato : 09-02-08 19:03

Der er en delatje vedr. photon mapping for raytracing som jeg mærkeligt
nok ikke lige ser et konkret svar på.

Når man har smidt potoner ind i scenen og har afsat dem her og der, så
skal man efterfølgende bruge de afsatte fotoner til at beregne
belysningen. Det gøres eksempelvis med et kd-træ eller en anden rumlig
hashing, men mit spørgsmål går på hvad man gør når man sampler en
position og der er afsat en foton meget tæt på.. men på den modsatte
side af en tynd flade. Denne foton bidrager ikke til belysningen, men
den er stadig tæt på.
Et eksempel er en ultra tynd flade i xz planet som man ser på fra en
positiv y men som er ramt af en foton fra en negativ y.
Er praksis bare at man ser på hvilken vektor fotonen har ramt med (her
eksempelvis 1,1,1 og ser på vektoren fra punktet på fladen til øjet, her
eksempelvis 1,1,-1, og hvis disse vektorer er modsat rettede, så
ignoreres fotonen, ellers bidrager den?
Bidraget kan også skaleres efter fotonens reflektionsvektor og vektoren
mod øjet, så man ike kun ser det som omnidirektionelt lys.... synes bare
ikke der står noget konkret om den del nogen steder. Måske det regnes
for indlysende?

 
 
Carsten Svaneborg (09-02-2008)
Kommentar
Fra : Carsten Svaneborg


Dato : 09-02-08 22:14

Jens Polsen wrote:
> Der er en delatje vedr. photon mapping for raytracing som jeg mærkeligt
> nok ikke lige ser et konkret svar på.

Spørgsmålet er vel fundamentalt med hvilken fysik du modellere en
tynd flade?

Hvis den uendelige tynde fladen ikke er gemmensigtig så betyder
bag-fotoner ikke noget.

Vælger du at modellere fladen som et gennemsigtigt og mælkehvidt
materiale, så vil bag-fotonen tælle lige så meget som en for-foton.
Mælkehvidt (opaque) ville jeg modellere/definere som det at en
indkommende foton spredes lige meget i alle retninger.

Modellere du fladen som metallisk så vil for-fotonen spejles i
fladen, mens bag-fotonen tabes. Er fladen delvist gennemsigtig
vil en procentdelen spejles og resten transmiteres, igen vil en
bagfoton tælle med materialets transmitivitet, men nu også med
dens retningsvektor.

En spøjs ting som jeg ikke har set i ray-tracing programmer er
at tage fotonens fase information med. Det ville svarer til at
belyse scenen med koherent lys, og så får man automatisk alle
interferensfænomenerne. Man burde så være istand til at lave
en raytracer, der kan lave og afspille hologrammer? ;*)


> Måske det regnes for indlysende?

Håber at ovenstående er oplysende. ;*)

--
Mvh. Carsten Svaneborg
http://gauss.ffii.org softwarepatent database

Jens Polsen (09-02-2008)
Kommentar
Fra : Jens Polsen


Dato : 09-02-08 23:48

<snip forklaringer>
> Håber at ovenstående er oplysende. ;*)
Ja, det er jo det. Det er egentlig indlysende. Det der undrer mig er
bare at det ikke umiddelbart fremgår hvad "man gør". Som du siger så kan
man træffe nogle valg og så hoppe op og falde ned på hvad "man gør" og
bare se på hvad man selv mener giver mening. Det undrer mig bare lidt.

> En spøjs ting som jeg ikke har set i ray-tracing programmer er
> at tage fotonens fase information med. Det ville svarer til at
> belyse scenen med koherent lys, og så får man automatisk alle
> interferensfænomenerne. Man burde så være istand til at lave
> en raytracer, der kan lave og afspille hologrammer? ;*)

Hm. Lyder spændende men jeg er nok ikke tilstrækkeligt med på fysikken
til at implementere den del.
Skal data ikke også alligevel "printes" på en særlig måde for at det
virker, og hvad er det så raytraceren kan mere på denne måde? Jeg
mener... mens den arbejder på computeren, så er scenen jo 3d og et
hologram bidrager ikke med mere...?

Carsten Svaneborg (10-02-2008)
Kommentar
Fra : Carsten Svaneborg


Dato : 10-02-08 21:11

Jens Polsen wrote:
> Hm. Lyder spændende men jeg er nok ikke tilstrækkeligt
> med på fysikken til at implementere den del.

Du ved hvor langt lyset bevæger sig fra lyskilden til ethvert
punkt som lyset rammer i scenen, det er jo den ray du tracer.

Lad hver foton bære en fase exp(i phi(L) ), her er L
længden fra lyskilden til der hvor fotonen terminerer
i scenen.

Lyset er monokromt med bølgelængde lambda, hvad betyder at
fasen phi vokser med 2pi for hver lambda (i vacuum).

Altså er phi(L) = 2pi L/lambda. Du skal blot huske at justerer
L så det er den optiske vejlængde hvis f.eks. lyset bevæger
sig gennem glas med en højere brydningsindex L+=n_glas * L_glas

Hvert punkt i scenen kan jo modtage lysrays af mange forskellige
længder, og disse kan interferere konstruktivt eller destruktivt,
så den effektive intensitet i et punkt er <|exp(i phi(L) |^2> hvor
gennemsnit er over alle de mulige rays.

Husk exp(i phi)=cos(phi)+i sin(phi) derfor
<|exp(i phi)|^2> = <cos^2(phi)>+<sin^2(phi)>

I enden ender dette altså med at bestemme intensiteten af et punkt
i scenen når du viser den på skærmen. Husk at indtil her har det
været monokromatisk lys, så du har basalt set et grå-tone billed
og ikke et farvebilled.

Man kunne så gentage tricket med hvidt koherent lys - f.eks. ved at
trace rødt,grønt og blåt lys med 3 givne bølgelængder og ligger
resultatet sammen. Kunne være ret interessant at se. ;*)

> Jeg mener... mens den arbejder på computeren, så er scenen jo 3d
> og et hologram bidrager ikke med mere...?

Min idee var at hvis man har en raytracer, der kan udføre ovenstående
udregning, som ikke er noget særligt når man allerede har koden til
at trace rays, hvis tænker på skærmen som men fotografisk "glasplade"
i scenen og på et fint gitter optager intensiteten her.

Tænk på skærmen som det at optage et fotografi, men på glaspladen er
det nu brydningsindekset, der rumligt varierer alt efter hvor meget
intensitet ethvert punkt blev belyst med.

Hvis man nu tager en ny scene med lyskilden og glaspladen samme sted,
men flytter kameraet/skærmen, og igen belyser glaspladen den med
monokromatisk lys i en raytracing, så burde det spredte lys være
et hologram, der viser billedet af den oprindelige scene.

Og så har det lykkedes dig ikke kun at lave en raytracing, men hvor
du også har lavet en simulation af at optage og afspille et hologram.

Men som det nævnes så skal gitter opløsningen på hologrammet være
ganske høj for at få et godt hologram. Men størrelsen af hologrammet
er ikke lige så vigtig, så en lille patch med en høj opløsning er
vigtigere end en stort hologram med en dårlig opløsning.

En måde til at omgå dette problem på, kunne evt. køre optage og
afspille simulationerne parallelt. Det kræver lidt mere tænkning..

--
Mvh. Carsten Svaneborg
http://gauss.ffii.org softwarepatent database

Jens Polsen (11-02-2008)
Kommentar
Fra : Jens Polsen


Dato : 11-02-08 11:27

> Hvis man nu tager en ny scene med lyskilden og glaspladen samme sted,
> men flytter kameraet/skærmen, og igen belyser glaspladen den med
> monokromatisk lys i en raytracing, så burde det spredte lys være
> et hologram, der viser billedet af den oprindelige scene.

Jeg kan godt se det sjove i en sådan simulation set fra et fysisk
standpunkt, men computergrafisk kan jeg ikke se at det bidrager med
noget nyt. Ja, ok, det var min første tanke. Den anden tanke er at hvis
jeg forstår dig korrekt, og hvis vi antog at opløsningen af hologramet
ikke skule være så voldsom, så ville det være en meget elegant måde at
lave "imposters" på.
http://portal.acm.org/citation.cfm?id=1179622.1179688&coll=GUIDE&dl=&type=series&idx=SERIES382&part=series&WantType=Proceedings&title=SIGGRAPH

Hvilken opløsning snakker man om?
Som jeg forstår effekten af et prærenderet hologram, så ender man ud med
en højopløselig texture på et plan. Når man ser denne texture og laver
multisampling i den højopløselige texture for at finde den resulterende
værdi at plotte på skærmen, så får man en mængde rgb-intensiteter og
faser. I ens sampling lægges de sammen, men da faserne også er med, så
kan man få interferens hvilket betyder at afstanden til texturen får
betydning for hvilken resulterende farve man får?

jenspolsen@hotmail.c~ (09-02-2008)
Kommentar
Fra : jenspolsen@hotmail.c~


Dato : 09-02-08 17:16

On 9 Feb., 22:13, Carsten Svaneborg <dead...@zqex.dk> wrote:

> En spøjs ting som jeg ikke har set i ray-tracing programmer er
> at tage fotonens fase information med. Det ville svarer til at
> belyse scenen med koherent lys, og så får man automatisk alle
> interferensfænomenerne. Man burde så være istand til at lave
> en raytracer, der kan lave og afspille hologrammer? ;*)

Det ville da vist kræve "ret meget" data til modellering af
hologrammet der skulle raytraces! Det skulle vel modelleres med en
detaljeringsgrad svarende til lysets bølgelængde? Det jo noget mere
end en typisk overfaldetexture.

J.O.


Søg
Reklame
Statistik
Spørgsmål : 177459
Tips : 31964
Nyheder : 719565
Indlæg : 6408191
Brugere : 218881

Månedens bedste
Årets bedste
Sidste års bedste