• No results found

4.4 K¨ orsimulatorer

5.2.9 Ljuseffekterna i sin helhet

H¨ar f¨oljer en genomg˚ang om hur de tidigare beskrivna momenten anv¨ands i sin helhet.

F¨orsta steget ¨ar att f¨or varje ljusk¨alla skicka f¨orfr˚agningar till GPU:n f¨or att ta reda p˚a ungef¨ar hur stor rymdvinkel ljusk¨allan upptar av betraktarens synf¨alt samt hur stor andel av ljusk¨allan som ¨ar synlig. Varf¨or detta ¨ar av vikt beskrevs i Stycke 5.2.6 och Stycke 5.2.7. Hur det praktiskt g˚ar till beskrevs i Stycke 5.2.4.

D¨arefter ber¨aknas effekternas styrka och karakt¨ar f¨or varje ljus baserat p˚a ljusk¨allans belysningsstyrka och upptagen rymdvinkel. Detta beskrevs i Styc- ke 5.2.3, Stycke 5.2.5 samt Stycke 5.2.6. Detta ¨ar CPU-ber¨akningar som pla- ceras h¨ar f¨or att minimera prestandaf¨orlusten orsakade av CPU:ns beroende av GPU:ns resultat fr˚an f¨orfr˚agningarna som tidigare gjordes, se Stycke 5.2.4. Ber¨akningarna baseras p˚a dessa resultat, vilket inneb¨ar att ber¨akningarna anv¨ander resultaten fr˚an f¨oreg˚aende rendering. Detta inneb¨ar en s˚adan liten tidsf¨ordr¨ojning att den i regel inte ¨ar m¨arkbar.

D¨arefter h¨amtas resultaten fr˚an GPU:n f¨or varje ljusk¨alla och de uppdateras f¨or att sedan anv¨andas i ber¨akningarna f¨or n¨asta frame.

F¨or att ljusk¨allans centrum ska ge ett starkare intryck renderas en polygon lika stor som den yta ljusk¨allan upptar med en vit textur som representerar sj¨alva lampan. Detta ¨ar s¨arskilt l¨onsamt f¨or relativt svaga f¨argade ljusk¨allor s˚a som baklyktor och blinkers.

Sedan renderas samtliga effekter f¨or alla ljusk¨allorna till en textur genom en pixelbuffert, se Stycke 5.2.8. F¨or att minimera antalet texturbyten renderas f¨orst de regnb˚agsf¨argade ljusaurorna f¨or alla ljusk¨allorna, sedan ljusfransarna och d¨arefter ljusskimret.

F¨or att f¨argade ljusk¨allor ska ge intrycket att de ger ifr˚an sig ljus av vissa be- gr¨ansade v˚agl¨angder ska texturerna som anv¨ands f¨or att skapa den regnb˚agsf¨argade ljusauran, ljusskimret och ljusfransarna moduleras med ljusets f¨arg. Dessutom ska genomskinligheten hos den regnb˚agsf¨argade ljusauran viktas f¨or att ˚aterspegla effektens styrka genom alphav¨ardet. Ett s¨att att g¨ora detta ¨ar att utnyttja den shader som anv¨ands f¨or att vikta effekterna med fragmentens alphav¨arden, se Stycke 5.2.8. I den ¨ar det enkelt att f¨orst multiplicera fragmenten med en l¨amplig komponent som enkelt kan ¨andras fr˚an applikationen. Exempelvis kan materi- alets komponent f¨or allm¨ant ljus anv¨andas f¨or att f¨ormedla ljusets f¨arg och en eventuell viktning av alphav¨ardet. F¨or den regnb˚agsf¨argade ljusauran, som beskrevs i Stycke 5.2.5, skulle materialet s¨attas enligt:

G L f l o a t c o l o r [ ] = { l i g h t C o l o r R , l i g h t C o l o r G , l i g h t C o l o r B , e f f e c t A l p h a } ;

g l M a t e r i a l f v (GL FRONT, GL AMBIENT , c o l o r ) ;

Se Kodlistning B.11 f¨or fragmentshader som viktar fragmenten som beskri- vits.

N¨ar effekterna renderats till textur adderas texturen till resultatet fr˚an den normala renderingen genom att str¨acka texturen framf¨or betraktarens synf¨alt. Detta f˚ar ungef¨ar effekten av en overhead som lagts framf¨or en kameralins. Eftersom texturen ska adderas till det tidigare resultatet blandas fragmenten

med GL FUNC ADD som ekvation och GL ONE som viktning f¨or b˚ade det nya

Kapitel 6

Prestandam¨atningar

F¨or att utv¨ardera effektiviteten hos inte bara delmomenten f¨or sig utan ¨aven f¨or metoden som helhet har ett flertal olika prestandam¨atningar gjorts. Dessa gjordes i uppl¨osningen 1280x1024 p˚a tv˚a olika maskiner. Maskin 1 har en Intel Pentium 4 processor p˚a 2.4 GHz, 1 GB RAM och ett NVidia GeForce FX 5900 grafikkort. Maskin 2 har en Intel Pentium 4 processor p˚a 3.0 GHz, 512 MB RAM och ett NVidia GeForce 6800 GT grafikkort.

F¨or att f˚a en bild av skillnaden i renderingshastighet mellan de tre sha- derl¨osningarna A, B och C som presenterades i Stycke 5.1.4 s˚a gjordes prestan- dam¨atningar under samma f¨orh˚allanden, men med olika l¨osningar. Resultatet presenteras i Tabell 6.1. M¨atningarna gjordes i en relativt enkel scen utan andra fordon.

Man kan fr˚an m¨atningarna se att maskin 2 med det nyare GeForce 6800 GT grafikkortet klarar de mer avancerade ber¨akningarna i shaderl¨osning B och C b¨attre ¨an maskin 1 med GeForce FX 5900 grafikkortet. Om metoden ska implementeras p˚a grafikkort fr˚an GeForce FX generationen kan det allts˚a vara v¨art att offra lite kvalitet i utbyte mot h¨ogre renderingshastighet och utnyttja shaderl¨osning A.

I resterande m¨atningar anv¨ands shaderl¨osning C f¨or att simulera belysningen fr˚an det egna fordonet.

N¨asta m¨atning gick ut p˚a att j¨amf¨ora ber¨akningskostnaden f¨or simuleringen Framerate [Hz] Framerate [%]

Metod Maskin 1 Maskin 2 Maskin 1 Maskin 2 Shaderl¨osning A 87.4 140.2 100.0 100.0 Shaderl¨osning B 108.3 151.8 123.9 108.3 Shaderl¨osning C 127.1 157.8 145.4 112.6 Maskin 1: Pentium 4, 2.4 GHz, 1 GB RAM, GeForce FX 5900 Maskin 2: Pentium 4, 3.0 GHz, 512 MB RAM, GeForce 6800 GT

Framerate [Hz] Moment Maskin 1 Maskin 2

B˚ada 50.8 113.3

Medtrafikanter 105.1 148.6 Egen belysning 58.0 151.2

Ingen 204.7 263.0

Maskin 1: Pentium 4, 2.4 GHz, 1 GB RAM, GeForce FX 5900 Maskin 2: Pentium 4, 3.0 GHz, 512 MB RAM, GeForce 6800 GT

Tabell 6.2: Resultat fr˚an prestandam¨atning av metodens olika delmoment.

av belysningen fr˚an det egna fordonet och simuleringen av effekterna av belys- ningen fr˚an medtrafikanterna. Notera att endast tv˚a andra bilar finns i scenen. Resultatet ˚aterfinns i Tabell 6.2.

Fr˚an dessa m¨atningar g˚ar det att fastst¨alla att det ¨ar shaderber¨akningarna f¨or simuleringen av de egna str˚alkastarna som ¨ar det mest kr¨avande momen- tet i metoden f¨or maskin 1 med GeForce FX 5900 grafikkortet. Maskin 2 med GeForce 6800 GT grafikkortet verkar d¨aremot inte lika besv¨arad av dessa sha- derber¨akningar och resultaten ¨ar d¨aremed mer balanserade. Detta understry- ker vikten av att kunna v¨alja en l¨amplig l¨osning f¨or simuleringen av de egna str˚alkastarna beroende p˚a h˚ardvaran som det ska implementeras p˚a. Med den anv¨anda h˚ardvaran ¨ar det uppenbarligen inga bekymmer att leverera realtids- prestanda i n˚agot av fallen.

En intressant m¨atning ¨ar hur antalet medtrafikanter p˚averkar prestandan. Detta avser antalet samtidigt synliga fordon, och inte det totala antalet fordon som existerar i applikationen. Sj¨alva fordonen i sig ¨ar relativt enkla modeller och d¨armed billiga att rita. M¨atningar gjordes f¨or olika antal medtrafikanter och resultatet presenteras i Tabell 6.3.

Occlusion queries skapar som beskrivs i Stycke 5.2.4 bubblor i kommand- ostr¨ommen fr˚an CPU:n till GPU:n. Det kan vara detta som syns i Tabell 6.3 i och med att antalet f¨orfr˚agningar till GPU:n som m˚aste g¨oras ¨okar med antalet synliga bilar. S˚avida inte allt f¨or t¨at trafik kr¨avs i simuleringen ¨ar dock detta inget st¨orre problem.

Framerate [Hz] Antal bilar Maskin 1 Maskin 2

1 51.2 124.5 2 50.3 117.0 3 50.5 115.7 4 49.9 110.3 5 49.1 107.4 7 47.9 102.7 9 46.4 96.3 12 43.7 89.3 20 37.1 55.4 30 31.3 45.4 40 26.9 39.0 50 23.5 33.3

Maskin 1: Pentium 4, 2.4 GHz, 1 GB RAM, GeForce FX 5900 Maskin 2: Pentium 4, 3.0 GHz, 512 MB RAM, GeForce 6800 GT

Tabell 6.3: Resultat fr˚an prestandam¨atning av antalet medtrafikanters p˚averkan p˚a renderingshastigheten.

Kapitel 7

Sammanfattning

Detta kapitel sammanfattar examensarbetet. H¨ar presenteras resultatet och de slutsatser som kan dras d¨arav.

7.1

Resultat

Denna rapport presenterar en metod f¨or att i realtid simulera m¨orkerk¨orning. Metoden hanterar belysningen fr˚an det egna fordonet och ¨aven effekterna av medtrafikanternas belysning p˚a f¨oraren.

Eftersom simuleringen av belysningen fr˚an det egna fordonet ¨ar relativt ber¨akningskr¨avande beskrevs flera olika l¨osningar var och en med sina f¨ordelar och nackdelar. Detta f¨or att det ska vara m¨ojligt att v¨alja den l¨osning som passar den t¨ankta milj¨on b¨ast med avseende p˚a bildkvalitet och renderingshastighet.

Str˚alkastarna simuleras med hj¨alp av ljusbilder som ¨ar uppm¨atta p˚a rik- tiga str˚alkastare, vilket g¨or att simuleringen ˚aterspeglar karakteristiken hos de uppm¨atta str˚alkastarna. Detta g¨or att det ¨ar enkelt att v¨axla mellan och j¨amf¨ora olika typer och modeller av str˚alkastare. Figur 7.1 och Figur 7.2 illustrerar be- lysning fr˚an ett hel- respektive halvljus.

Belysningen fr˚an str˚alkastarna beror till stor grad p˚a materialet hos de belys- ta objekten. Metoden simulerar f¨or m¨orkerk¨orning vitala materiella egenskaper som t.ex. retroreflexion hos v¨agskyltar och v¨agmarkeringar, se Figur 7.3.

F¨or att ge ett s˚a realistiskt intryck som m¨ojligt simuleras ocks˚a medtra- fikanternas belysnings p˚averkan p˚a f¨oraren. Detta inneb¨ar att simulera de ef- fekter som h¨ogintensiva ljusk¨allor orsakar i det m¨anskliga ¨ogat. Detta ¨oppnar m¨ojligheter som att t.ex. simulera att f¨oraren blir bl¨andad av m¨otande trafik, eller att bilen framf¨or t¨ander sina bromsljus vid en pl¨otslig inbromsning, se Figur 7.4 respektive Figur 7.5.

Det ¨ar viktigt att dessa ljuseffekter beter sig p˚a ett realistiskt s¨att. Detta in- kluderar att helt skymda ljusk¨allor inte ger n˚agon ljuseffekt och att halvskymda ljusk¨allor ger mindre effekt ¨an icke skymda ljusk¨allor. Detta hanterar metoden utan problem, vilket illustreras av Figur 7.6 d¨ar tv˚a icke skymda ljusk¨allor visas

Figur 7.1: Sk¨armdump med belysning fr˚an helljus.

Figur 7.3: Sk¨armdump med retroreflexiva skyltar och v¨agmarkeringar.

Figur 7.5: Sk¨armdump med en bromsande bil.

och i Figur 7.7 d¨ar samma ljusk¨allor ¨ar helt skymd respektive delvis skymd bakom en v¨agstolpe.

Allt detta g¨ors, som illustreras i Stycke 6, i realtid med vad som ¨ar vid tillf¨allet d˚a detta skrivs relativt normal PC-utrustning.

F¨or att slutligen ge en helhetsbild av simuleringen ˚aterfinns en sk¨armdump med retroreflexion, belysning fr˚an halvljus samt m¨otande och ett bromsande med˚akande fordon i Figur 7.8.

7.2

Slutsatser

Metoden som presenterats tar h¨ansyn till m˚anga av de viktigaste aspekter- na f¨or simulering av m¨orkerk¨orning. Den simulerar p˚a ett realistiskt s¨att be- lysningen fr˚an det egna fordonet genom att ta h¨ansyn till karakteristiken hos den typ och modell av str˚alkastare som anv¨ands. Belysningen p˚averkas ocks˚a av de belysta ytornas materiella egenskaper, vilket g¨or det m¨ojligt att simule- ra f¨or m¨orkerk¨orning viktiga materiella egenskaper som retroreflexiviteten hos v¨agmarkeringar och v¨agskyltar.

Metoden simulerar ¨aven effekterna av belysningen fr˚an medtrafikanter p˚a f¨oraren, vilket g¨or det m¨ojligt att simulera saker som t.ex. att f¨oraren blir bl¨andad av m¨otande trafik eller att framf¨orvarande trafikant pl¨otsligt t¨ander sina bromsljus vid en h¨aftig inbromsning.

Detta g¨ors med dagens h˚ardvara v¨al inom ramen f¨or realtidssimulering. F¨or den kanske mest vitala delen av simuleringen, d.v.s. belysningen fr˚an det egna fordonet presenteras flera olika l¨osningar, som ger varierande resultat vad g¨aller bildkvalitet och renderingshastighet. Detta g¨or det m¨ojligt att anpassa metoden

Figur 7.6: Sk¨armdump med tv˚a icke skymda ljusk¨allor.

Figur 7.7: Sk¨armdump med tv˚a ljusk¨allor varav den ena ¨ar helt skymd och den andra ¨ar delvis skymd.

Figur 7.8: En helhetsbild av simuleringen.

f¨or den h˚ardvara som finns tillg¨anglig och p˚a s˚a s¨att erh˚alla realtidsprestanda med, f¨or den tillg¨angliga h˚ardvaran, b¨asta m¨ojliga bildkvalitet.

Sammantaget ger all denna funktionalitet som metoden erbjuder m¨ojligheten att p˚a ett realistiskt s¨att simulera m¨orkerk¨orning i realtid.

Litteraturf¨orteckning

[1] T. Akenine-M¨oller and E. Haines. Real-Time Rendering. A K Peters, Natick, MA 01760, USA, second edition, 2002.

[2] M. Alonso and E. J. Finn. Physics. Addison - Wesley, Edinburgh Gate, Essex CM20 2JE, England, first edition, 1992.

[3] T. Andersson. Grundl¨aggande radiometri och fotometri. Link¨opings H¨ogskola, Link¨oping, Sweden, first edition, 1974.

[4] L. Bergmann and C. Schaefer. Optics of waves and particles. Walter de Gruyter, D-10785 Berlin, Germany, first edition, 1999.

[5] D. Blythe. Illumination model basics. http://www.opengl.org/ resources/tutorials/sig99/shading99/course_slides%/basics/ sld001.htm, 1999.

[6] The OpenGL Architecture Review Board. Arb pbuffer. http://oss.sgi. com/projects/ogl-sample/registry/ARB/wgl_pbuffer.txt, 2000.

[7] The OpenGL Architecture Review Board. Arb render texture. http://oss.sgi.com/projects/ogl-sample/registry/ARB/wgl_ render_texture.%txt, 2001.

[8] NVIDIA Corporation. Nv texture env combine4. http://oss.sgi. com/projects/ogl-sample/registry/NV/texture_env_combine4%.txt, 2001.

[9] NVIDIA Corporation. Nv occlusion query. http://oss.sgi.com/ projects/ogl-sample/registry/NV/occlusion_query.txt, 2002.

[10] NVIDIA Corporation. Cg language specification. ftp://download. nvidia.com/developer/cg/Cg_Specification.pdf, 2003.

[11] J. R. Cronly-Dillon. Vision and visual dysfunction. In W. N. Charman, editor, Visual Optics and Instrumentation, pages 3–5, 318–319. CRC Press, Boca Raton, USA, 1991.

[12] C. Everitt. Projective texture mapping. http://developer.nvidia.com/ object/Projective_Texture_Mapping.html, 2003.

[13] R. Fernando and M. J. Kilgard. The Definitive Guide to Programming Real-Time Graphics. Addison - Wesley, Boston, USA, first edition, 2003.

[14] H. Frank and J. Ewald. Bestimmung des mindestr¨uckstrahlwertes im ge- brauchszustand f¨ur retroreflektierende materialien zur verkehrssicherung. Technical report, Bundesministerium f¨ur Verkehr, Germany, 1995.

[15] J. Gausemeier, J. Berssenbr¨ugge, M. Carsten, K. P¨ohland, and M. Grafe. Real-time representation of complex lighting data in a night drive simula- tion. In Proceedings of the workshop on Virtual Environments 2003, pages 65–70. ACM, ACM Press, 2003.

[16] M. Goesele, X. Granier, W. Heidrich, and H. P. Seidel. Accurate light source acquisition and rendering. In Proceedings of ACM SIGGRAPH 2003, pages 621–630. ACM SIGGRAPH, July 2003.

[17] D. Hearn and M. P. Baker. Computer Graphics with OpenGL. Pearson Prentice Hall, Upper Saddle River, NJ 07458, USA, third edition, 2004.

[18] E. Hecht. Optics. Addison - Wesley, USA, third edition, 1998.

[19] J. Kessenich, D. Baldwin, and R. Rost. The opengl shading language. http://oss.sgi.com/projects/ogl-sample/registry/ARB/ GLSLangSpec.Full.1.%10.59.pdf, 2004.

[20] S. Lundkvist, G. Helmers, K. Sorensen, P. Obro, E. R. Hansen, and A. Bohn. Reflection properties of road markings in headlight illumina- tion. Technical report, The Danish Illuminating Engineering Laboratory, Denmark, The Road Directorate, Denmark, Road and Waterways Admi- nistration, Finland, The Norwegian Road Administration, Norway, The Norwegian Research Institute for Electricity Supply, Norway, The Natio- nal Swedish Road and Traffic Research Institute, Sweden, The Swedish National Road Administration, Sweden, 1983.

[21] E. Nakamae, K. Kaneda, T. Okamoto, and T. Nishita. A lighting model aiming at drive simulators. Computer Graphics, SIGGRAPH ’90, ACM, 24:395–404, 1990.

[22] R. J. Rost. OpenGL Shading Language. Addison - Wesley, Boston, USA, first edition, 2004.

[23] D. Shreiner, M. Woo, J. Neider, and T. Davis. OpenGL Programming Guide. Addison - Wesley, Reading, Massachusetts, USA, fourth edition, 2003.

[24] G. Spencer, P. Shirley, K. Zimmerman, and D. P. Greenberg. Physically- based glare effects for digital images. Computer Graphics, SIGGRAPH ’95, ACM, ?:325–334, 1995.

[25] C. Wynn. Opengl render-to-texture. http://developer.nvidia.com/ object/gdc_oglrtt.html, 2002.

Bilaga A

Grafiksystemet

A.1

Om OpenGL

Related documents