Realistische en Interactieve Weergave van Schilderijen

Maat: px
Weergave met pagina beginnen:

Download "Realistische en Interactieve Weergave van Schilderijen"

Transcriptie

1 Realistische en Interactieve Weergave van Schilderijen Ewald Snel ( )

2 Inhoudsopgave 0 Voorwoord Inleiding Eerder onderzoek Indeling verslag Theorie BRDF Apparent BRDF Environment mapping Grafische chips (GPU) Fragment programs Analytische functie methoden McAllister Beschrijving Lafortune SBRDF Hardware lights Environment maps Evaluatie Pluspunten Minpunten Aanpassingen Floating point textures Functies (zonder tabellen) Hardware Daubert Beschrijving Evaluatie Pluspunten Minpunten Aanpassingen Hardware Geheugen gebruik Meseth Beschrijving Reflectance fields Kwaliteit en performance

3 3.3.2 Evaluatie Pluspunten Minpunten Aanpassingen Geheugen gebruik Factorisatie methoden McCool Beschrijving Evaluatie Pluspunten Minpunten Aanpassingen SBRDF Environment mapping Hardware Suykens Beschrijving Evaluatie Pluspunten Minpunten Aanpassingen Environment mapping Geheugen gebruik Müller Beschrijving PCA Local PCA Evaluatie Pluspunten Minpunten Microgeometrie Inleiding Rendering methoden BRDF Normal mapping Displacement mapping Adaptive tessellation Distance mapping Correctie van de SBRDF

4 6 Interactiviteit Inleiding Implementatie Tracking Rendering Opgaan in omgeving Pre filtered environment maps Resultaten Inleiding Implementaties Environment mapping Distance mapping HDR images Beperkingen grafische chips Conclusie Microgeometrie Interactie Grafische hardware Referenties

5 0 Voorwoord Dit verslag is het resultaat van het literatuuronderzoek voor mijn afstudeeropdracht. Het onderwerp van mijn afstudeeropdracht betreft in volle breedte het onderzoeken, vastleggen en weergeven van reflectie eigenschappen van schilderijen. In dit kader heb ik onderzocht welke mogelijkheden er zijn voor het realistisch en interactief weergeven van schilderijen met behulp van computer graphics. Hierbij wil ik prof. dr. ir. Erik Jansen en dr. ir. Wouter Pasman bedanken voor hun hulp en begeleiding bij mijn onderzoek en correcties en tips voor dit verslag, en prof. dr. Bill Wei voor zijn inzicht in praktische toepassingen van onderzoek naar reflectie eigenschappen van schilderijen. Tenslotte wil ik ICN (Instituut Collectie Nederland), onderdeel van het Ministerie van OC en W, bedanken voor het ondersteunen van mijn onderzoek middels een stagevergoeding. Ewald Snel 5

6 1 Inleiding Mijn onderzoek vindt plaats in het kader van het vastleggen van reflectie eigenschappen van schilderijen. Deze reflectie eigenschappen worden bepaald door de gebruikte materialen, zoals verf en vernis, en de structuur van het oppervlak, veroorzaakt door het canvas, penseelstreken, barstjes in de verf door ouderdom en oneffenheden in de laklaag. Deze structuur veroorzaakt een zekere mate van schaduw en parallax effecten. De verflaag van een schilderij is echter meestal niet meer dan enkele tienden millimeters dik. Schaduw effecten die met het blote oog goed zijn waar te nemen beperken zich in dit geval tot kleine barstjes in de verflaag. Oneffenheden in de laklaag veroorzaken tevens draaiing van de hoek van spiegelende reflecties. (zie illustratie 1) Barstjes in de verf Penseelstreken Canvas Spiegelende reflecties Illustratie 1: Zaken die de oppervlaktestructuur van schilderijen bepalen. De reflectie eigenschappen van schilderijen worden bepaald aan de hand van zorgvuldig gekozen digitale foto s van het schilderij. Vervolgens vormt een wiskundig model, waarvan de parameters worden bepaald uit deze foto s, een reflectiemodel voor het schilderij. Tijdens vorig onderzoek [1] is gebleken dat het zeer moeilijk is om numeriek te bepalen of een wiskundig model en metingen een juiste representatie voor een schilderij vormen. Het doel van mijn onderzoek is daarom realistische en interactieve weergave van schilderijen. Door visualisatie van het geconstrueerde reflectiemodel kunnen resultaten eenvoudig worden vergeleken met echte foto s van het schilderij. Vooral spiegelende reflecties zijn beter te zien als het schilderij real time gedraaid en bekeken kan worden. Als reflectiemodel wordt een zogenaamde (S)BRDF gebruikt (zie hoofdstuk 2). Interactieve weergave vereist een methode voor compacte representatie en real time rendering van deze (S)BRDF. De belangrijkste criteria voor het maken van een keuze voor een dergelijke methode zijn de kwaliteit, de snelheid, het geheugen gebruik en de mogelijkheid om environment maps te gebruiken voor een natuurlijke belichting. Enkele daarvan afgeleide criteria zijn onder andere: Grafische chips (GPU) Het renderen van BRDF en in het bijzonder SBRDF data, kost veel geheugen en rekenkracht. Vandaar dat we gebruik maken van de geavanceerde mogelijkheden van moderne GPUs om de BRDF te renderen. Een extra criterium is daarom of de methode is te implementeren op recente grafische chips. 6

7 Rendering complexiteit Mijn doel is real time weergave van schilderijen. Ik zal mij daarom vooral richten op de complexiteit van het renderen van de SBRDF. De complexiteit van conversie van de SBRDF naar een representatie geschikt voor het renderen, is daarbij minder van belang. Uiteraard zijn er praktische grenzen aan de beschikbare tijd en rekencapaciteit voor deze conversie. Representatie en Fitting Het gekozen model dient eenvoudig genoeg te zijn voor real time rendering en sparse sampling (beperkt aantal samples), maar volledig genoeg om een goede fit van de data op het model mogelijk te maken. Daarbij moet rekening worden gehouden met de oppervlaktestructuur. 1.1 Eerder onderzoek Jurriaan Heuberger heeft in het kader van zijn afstudeeropdracht [1] al uitvoerig onderzoek gedaan naar geschikte representaties voor de reflectie eigenschappen van schilderijen. Het meest geschikt bleek het model van Lafortune (zie ).[2] Ook heeft hij een opstelling gemaakt voor het meten van deze reflectie eigenschappen met behulp een digitale fotocamera. De meting bestond uit 73 posities voor de camera en 8 posities voor de lichtbron, wat een totaal van 584 foto s oplevert. De eerste resultaten van zijn onderzoek waren positief wat betreft geschiktheid van het gekozen model, maar er waren nog wel wat problemen met fitting van de samples (foto s) op het model. Vooral spiegelende reflecties werden niet goed weergegeven. Waarschijnlijk heeft dit te maken met het gebruikte reflectiemodel, dat onvoldoende ondersteuning biedt voor microgeometrie op millimeter schaal. Hoofdstuk 5 is daarom speciaal gericht op representatie en weergave van microgeometrie. 1.2 Indeling verslag Ten eerste zal ik in hoofdstuk 2 de theorie behandelen achter enkele begrippen die in dit verslag veel gebruikt worden. Vervolgens behandel ik in hoofdstuk 3 en 4 een aantal methoden voor het vastleggen en real time weergeven van reflectie eigenschappen van materialen. Hoofdstuk 3 gaat over methoden die gebaseerd zijn op analytische functies, het Lafortune model in dit geval. Deze methoden proberen met analytische functies de fysische eigenschappen van reflecties te modelleren. Hoofdstuk 4 beschrijft enkele methoden die gebaseerd zijn op factorisatie van de n dimensionale (S)BRDF data. Deze methoden hebben geen fysische achtergrond, maar proberen de BRDF gegevens zo goed mogelijk te comprimeren door de BRDF te beschrijven door middel van wiskundige factorisaties. Hoofdstuk 5 gaat verder in op het belang van microgeometrie voor acquisitie en representatie van reflectie eigenschappen. Hoofdstuk 6 behandelt het belang van een interactief systeem voor het weergeven van schilderijen. In hoofdstuk 7 beschrijf ik de resultaten van mijn eerste opzet van het weergave gedeelte van een dergelijke systeem. Tenslotte volgt in hoofdstuk 8 mijn conclusie over de besproken methoden. 7

8 2 Theorie 2.1 BRDF De BRDF (Bidirectional Reflectance Distribution Model) is een model voor het beschrijven van reflectie eigenschappen van materialen. De BRDF is een 4 dimensionale functie die de reflectie van licht voor alle inkomende en uitgaande richtingen beschrijft. Dit geeft een nauwkeurige beschrijving van de reflectie van homogene materialen, waarbij dit reflectie gedrag over de oppervlakte van het materiaal weinig verandert. Helaas zijn schilderijen allesbehalve homogene materialen, denk alleen al aan de verschillende soorten verf die een schilder gebruikt. Daarbij komen nog kleine oneffenheden door penseelstreken, het canvas en de laklaag. Daarom gebruiken we een uitbreiding op het BRDF model die over het oppervlak variërende reflectie eigenschappen van een materiaal kan beschrijven: de SBRDF, wat staat voor Spatial varying (ruimtelijk variërende) BRDF. Dit 6 dimensionale model is wel geschikt voor schilderijen (zie illustratie 2). In plaats van SBRDF wordt er ook wel gesproken over de BTF (Bidirectional Texture Function).[3] De BTF wordt gedefinieerd als een uitbreiding van normale texture maps met afhankelijkheid van licht en kijkhoek.[4] u 1. i i Ingaande hoek met n 2. i Ingaande hoek om n 3. u Uitgaande hoek met n u y 4. u Uitgaande hoek om n i x Horizontale positie in SBRDF y Verticale positie in SBRDF Illustratie 2: Het 6 dimensionale SBRDF model. De hoek met n is de hoek tussen de ingaande of uitgaande richting en n. De hoek om n is de rotatie van de ingaande of uitgaande richting om n. x Materialen waarbij de reflectie afhankelijk is van de rotatie om de normaalvector (hoek i en u in illustratie 2) worden anisotropic genoemd. Dit komt doordat de microgeometrie van het materiaal een zekere oriëntatie heeft. Denk aan de groeven van een CD of DVD, haar, vezels in kleding en de microscopische groeven in geschuurd aluminium. De meeste BRDF modellen kunnen deze bijzondere eigenschap redelijk tot goed beschrijven Apparent BRDF De apparent BRDF verschilt van een BRDF in het feit dat sommige wiskundige eigenschappen van de BRDF niet gelden. Tijdens het meten van een (A)BRDF is er meestal sprake van interreflecties in het te meten voorwerp. Zodoende is de BRDF van een punt eigenlijk meestal niet te bepalen, maar zal het altijd afhankelijk van zijn omgeving zijn. Denk hierbij aan schaduw en parallax effecten door bobbeltjes in het materiaal. Het kan zelfs zijn dat meer licht een punt verlaat dan dat er op valt, door 8

9 reflectie van licht vanuit de omgeving van het punt! Een ander gevolg van de interreflecties is het ontbreken van reciprocity (omkeerbaarheid). Dit wil zeggen dat de inkomende en uitgaande richting niet omkeerbaar zijn. Anders gezegd, als een straal inkomend licht a een bepaald uitgaand patroon b oplevert, wil dat niet zeggen dat als patroon b als inkomend licht wordt gebruikt, dit ook weer lichtstraal a oplevert. Bij veel BRDF modellen wordt hier echter wel vanuit gegaan. De ABRDF is daarom slechts bij benadering gelijk aan de BRDF, indien de geometrie van een veel kleinere schaal is dan de pixels van de SBRDF en scattering effecten beperkt zijn. Dit geldt bijvoorbeeld voor enkele vrijwel vlakke materialen. 2.2 Environment mapping De kwaliteit van rendering van een schilderij wordt bepaald door de nauwkeurigheid van het reflectiemodel en de juiste belichting. In de computer graphics wordt belichting vaak gemodelleerd door een aantal (punt)lichtbronnen. De performance is omgekeerd evenredig met het aantal lichtbronnen. Bij een groot aantal lichtbronnen is interactieve weergave daarom niet mogelijk. In een museum is de belichting van een schilderij meestal zeer complex, onder andere door indirecte belichting via muren, vloeren en plafonds. Om dit resultaat te simuleren maken we gebruik van zogenaamde environment maps. Dit is een 360 afbeelding van de omgeving waar het schilderij hangt die wordt gebruikt om het schilderij te belichten. Deze afbeelding is als het ware om het schilderij heen gevouwen en wordt geprojecteerd in het oneindige (zie Illustratie 3: Impressie van verder 6.2.3). Een veel gebruikte methode voor het opslaan en weergeven een environment map. van environment maps is de zogenaamde cube map, waarbij de environment map is geprojecteerd op de zes zijden van een kubus (zie illustratie 3). 2.3 Grafische chips (GPU) De voornaamste taak van een grafische chip, in het Engels GPU (Graphics Processing Unit), is interactieve weergave van 3 dimensionale objecten. Dit kunnen eenvoudige primitieve vormen zijn als een kubus of bol, maar ook complexe natuurlijke vormen als een mens of dier. Elk object is opgebouwd uit polygonen, meestal driehoeken. We spreken daarom ook wel over een polygoon model. Deze polygonen worden op hun beurt weer beschreven door de hoekpunten. Omdat het ondoenlijk is om alle mogelijke details met polygonen te beschrijven, denk bijvoorbeeld aan grassprietjes of zand, is het tenslotte mogelijk om de polygonen van een plaatje te voorzien. Dit is bekent als texture mapping. De reden om grafische hardware te gebruiken in plaats van een softwarematige oplossing, is de hoge snelheid waarmee deze gespecialiseerde chips grafische berekeningen kunnen uitvoeren. Een moderne GPU kan een groot deel van deze grafische berekeningen van de CPU overnemen. Dit zijn onder 9

10 andere transformaties, zoals rotaties, translaties en het schalen van objecten. Vervolgens de projectie en clipping van de polygonen op een 2 dimensionale frame buffer. Het meest rekenintensief is tenslotte de rasterization en texture mapping, omdat deze berekeningen voor iedere pixel worden uitgevoerd. In eerdere GPUs werd texture mapping uitgevoerd door speciaal daarvoor ontworpen elektrische circuits. De mogelijkheden tot aanpassing beperkten zich tot een paar vlaggetjes voor het wel of niet filteren van textures. Moderne GPUs hebben daarentegen volledig programmeerbare pixel en vertex processoren. De pixel processoren worden ook wel pixel shaders (DirectX) of fragment shaders (OpenGL) genoemd. Een programma wat op een dergelijke pixel processor draait heet een fragment program. Dergelijke programma s zijn zeer geschikt voor het implementeren van de reflectiemodellen beschreven in hoofdstuk 3 en Fragment programs Een fragment program is een meestal klein programma dat voor iedere pixel die (mogelijk) in de frame buffer zal worden geschreven wordt uitgevoerd. Het dient zodoende als vervanging van de uitgebreide mogelijkheden van OpenGL om lichtbronnen, textures en kleuren aan polygonen toe te voegen. Al deze effecten worden op een moderne GPU door een fragment program uitgevoerd. Behalve een flexibele manier om bestaande effecten te beschrijven, biedt een fragment program ook nieuwe mogelijkheden. Een fragment program beschikt over een ruim aanbod aan instructies, registers en parameters om verschillende grafische berekeningen uit te kunnen voeren. Het is zelfs mogelijk om de GPU voor general purpose computing te gebruiken, zoals een sorteer algoritme. Een fragment program berekent een resultaat voor de fragment attributes, een zekere state, textures en program parameters. Het resultaat is een kleur en/of diepte (z) waarde voor de pixel. De fragment attributes bevatten de geïnterpoleerde waarden voor kleur, mist, texture coördinaten en raster positie voor de huidige pixel. De state beschrijft de staat van de graphics pipeline en bevat onder andere materialen, transformatie matrices en lichtbronnen. De program parameters tenslotte maken het mogelijk om parameters vanuit een OpenGL applicatie aan een fragment program mee te geven. Verder is het mogelijk een aantal tijdelijke variabelen te definiëren. Een fragment program heeft de beschikking over de volgende instructies: Texture instructies: TEX TXP TXB KIL Vector instructies: ADD DP3 DP4 DPH DST MAX MIN MUL SGE SLT SUB XPD CMP LRP MAD ABS FLR FRC LIT MOV SWZ Scalaire instructies: POW COS EX2 LG2 RCP RSQ SIN SCS Fragment programs zijn beschikbaar middels een extensie van de OpenGL API.[5] Deze specificatie is een goed startpunt voor het schrijven van fragment programs. Het omvat een omschrijving van alle instructies en state variabelen, en voorbeeld implementaties van veel gebruikte berekeningen, zoals het normaliseren van een vector. 10

11 3 Analytische functie methoden 3.1 McAllister Beschrijving Lafortune De methode ontwikkelt door Lafortune en anderen [2] is gebaseerd op gegeneraliseerde cosinus lobben om de BRDF te beschrijven. Een cosinus lob beschrijft de reflectie distributie (zie illustratie 4). De cosinus term volgt uit het dot product van de inkomende richting u, gespiegeld om de normaal vector, en de uitgaande richting v. De cosinus lob in het bovenste plaatje van illustratie 4 visualiseert de reflectie distributie van een inkomende lichtstraal. De lengte van de uitgaande pijlen vormt daarbij het relatieve aandeel in reflectie in de richting van de pijl. De vorm van een Lafortune lob wordt bepaald door de 3x3 matrix M en de breedte van de lob door de exponent n. Verder is er nog een schaalfactor ps n n =4 n = 256 n = 16 n =1 tussen 0 en 1, die de hoogte van de piek van de lob bepaalt. In totaal zijn er dus Illustratie 4: Een cosinus 11 parameters voor het beschrijven van een lob. Sommige BRDF methoden, lob (boven) en distributie onder andere die van McAllister, maken echter gebruik van een functie (beneden) voor vereenvoudiging van dit model en gebruiken slechts een deel van deze verschillende waarden van parameters. de exponent n. f r u, v = p s [ut M v ]n Enkele voordelen van de methode van Lafortune zijn volgens McAllister het beschrijven van interessante BRDF eigenschappen als retro reflection en off specular peaks.[6] Retro reflection betekent dat het licht gereflecteerd wordt naar waar het vandaan kwam, onafhankelijk van de invalshoek van het licht. Off specular peaks betekent dat de reflectie hoek gedraaid is ten opzichte van een volledig vlak, spiegelend oppervlak. In het geval van een SBRDF kan dit komen door bijvoorbeeld oneffenheden in het materiaal. Deze eigenschappen zijn daarom belangrijk voor het beschrijven van enkele eigenschappen die te maken hebben met microgeometrie, zoals besproken in de inleiding van hoofdstuk SBRDF De methode ontwikkeld door McAllister en anderen [6] maakt gebruik van een onafhankelijke representatie van de BRDF voor ieder punt in de SBRDF. De BRDF wordt gerepresenteerd door een 11

12 diffuse reflectie term en een aantal spiegelende lobben volgens het model van Lafortune. Na een mathematische conversie worden de parameters van de Lafortune representatie in twee 8 bit RGBA texture maps opgeslagen. McAllister slaat daarbij de volgende 7 parameters op: diffuse term, Cx, Cy, Cz, exponent, albedo en anisotropische richting beta. De diffuse term is opgeslagen in een aparte RGBA texture. De Cx, Cy, Cz en exponent worden opgeslagen in de eerste texture en de albedo en beta in de tweede texture voor iedere lob. De albedo is opgeslagen voor rood, groen en blauw. De parameters Cx, Cy, Cz en de exponent beschrijven de vorm van de lob en worden alleen opgeslagen voor de helderheid van de kleur. Dit levert, wat geheugen gebruik betreft, een aanzienlijke winst op ten opzichte van het onafhankelijk representeren van rood, groen en blauw met Lafortune lobben. Iedere lob wordt vermenigvuldigd met verschillende RGB waarden voor de albedo, om zo een resultaat voor rood, groen en blauw te verkrijgen. Een bijkomend voordeel van deze methode is dat fouten in de hue (kleurtint), die vaak hinderlijk kunnen opvallen, zo worden geminimaliseerd. Voor de machtsfunctie f x, n =x n die nodig is tijdens het renderen, wordt gebruik gemaakt van een tabel die ook is opgeslagen in een texture map (256 bij 256 pixels, 8 bit). McAllister biedt twee methoden voor het renderen van de SBRDF: hardware lights en environment maps Hardware lights Deze methode maakt gebruik van één of meer (punt)lichtbronnen. In de implementatie van McAllister zijn er 2 rendering passes per lob, per lichtbron nodig. De tussenresultaten van de eerste pass worden opgeslagen in een P Buffer (een OpenGL off screen surface). De framerate van een voorbeeld scène laat daarom een vrijwel lineair verband tussen lobben/lichtbronnen en de framerate zien. De behaalde framerates op vrij oude hardware (NVIDIA GeForce 4) zijn acceptabel voor twee lichtbronnen en een Lafortune model met twee lobben Environment maps De tweede methode maakt gebruik van environment maps voor een realistische, natuurlijke belichting. Voor het real time renderen van een BRDF met een environment map is een zogenaamde convolutie van de environment map en een Lafortune lob nodig. Deze convolutie berekent voor iedere pixel in de environment map een gewogen som, op basis van de Lafortune lob, van de hele environment map. Deze 12 Illustratie 5: Convolutie van een rij pixels met een Lafortune lob (exponent 30.0). Het linker plaatje toont de distributie functies en pixel waarden. Het rechter plaatje de waarde van de pixels na de convolutie. Eén pixel is vetgedrukt ter illustratie.

13 som vormt de nieuwe waarde voor de pixel in de pre filtered environment map. De Lafortune lob fungeert dus als low pass filter kernel van een 2D convolutie (zie illustratie 5). Het voordeel van deze pre processing is dat tijdens het renderen niet geïntegreerd hoeft te worden over de hele Lafortune lob, maar dat er volstaan kan worden met slechts het samplen van de piek. De methode van McAllister maakt gebruik van meerdere van deze geconvolueerde environment maps voor verschillende maten van diffuusheid. Tijdens het renderen is alleen de richting van de piek en de diffuusheid (breedte) van een Lafortune lob bepalend voor de index in één of meer van deze environment maps. De meest efficiënte methode om deze environment maps op te slaan is door gebruik te maken van MIP mapping, waarbij de meest scherpe reflecties corresponderen met een MIP niveau van de hoogste resolutie. De diffuse reflecties staan in MIP niveaus van steeds lagere resoluties. In zijn paper schrijft McAllister dat het niet mogelijk is om deze methode praktisch op de huidige (2002) grafische hardware te implementeren, onder andere door het ontbreken van directe toegang tot de MIP niveaus vanuit een fragment program (OpenGL). Hij maakt daarbij echter de melding dat het op toekomstige hardware waarschijnlijk wel mogelijk zal zijn. De implementatie die McAllister beschikbaar stelt op zijn website biedt echter wel ondersteuning voor real time rendering met environment maps op NVIDIA GeForce FX en recenter grafische chips.[7] Deze environment maps zijn opgeslagen in het Radiance RGBE formaat [8] voor HDR (zie 7.3) ondersteuning. De RGB waarden worden daarbij geschaald met 2 E 136. Dit gebeurt in het geval van McAllister tijdens het renderen vanuit een fragment program Evaluatie Pluspunten Direct toepasbaar op Lafortune data. Weinig geheugen nodig voor de SBRDF representatie (enkele megabytes). Ondersteuning van environment maps in hardware (real time) Minpunten Onnauwkeurigheden bij conversie van de Lafortune parameters naar fixed point representatie. Artefacten door het gebruik van tabellen voor functies. Beperkingen van Lafortune in het algemeen: Niet elk BRDF model is efficiënt (met weinig lobben) te representeren in Lafortune. Snelheid is sterk afhankelijk van het aantal lobben. In het voorbeeld wordt meestal maar één lob gebruikt voor een acceptabele framerate. Verlies van diepte beleving (zie illustratie 6 op pagina 18). 13

14 Dit is een nadeel van een grote groep BRDF modellen. Dit wordt veroorzaakt door beperkingen van het Lafortune model, waarin parallax, schaduw en occlusion effecten niet eenvoudig kunnen worden beschreven. Dit model vormt de basis voor de SBRDF representatie van McAllister Aanpassingen Floating point textures De conversie van parameters naar een fixed point representatie is met de huidige grafische chips niet perse meer nodig. We kunnen gebruik maken van floating point textures om de parameters op te slaan. Dit kost echter wel tot 4 keer zoveel geheugen Functies (zonder tabellen) De nieuwe grafische chips ondersteunen fragment programs met een ruimer aanbod aan wiskundige functies. Zo bestaat er voor de exponentiële functie een POW instructie. Het voordeel van het gebruik van deze instructie is een hogere nauwkeurigheid dan bij het gebruik van een tabel. Bovendien is het gebruik van dergelijke tabellen af te raden voor recente grafische chips, omdat de toegang tot de texture hierbij geheel niet lineair is. Dit heeft een zeer nadelig effect op de cache performance. Het gebruik van functies zorgt daarom ook voor een betere performance Hardware De behaalde framerates op vrij oude hardware (NVIDIA GeForce 4) zijn acceptabel voor twee lichtbronnen. Mijn verwachting is daarom dat de methode die gebruik maakt van hardware lichtbronnen goed is te implementeren op een moderne grafische kaart. 14

15 3.2 Daubert Beschrijving De methode van Daubert en anderen [9] is in eerste instantie ontwikkeld voor realistische, real time weergave van kleding. Zij maken net als McAllister [6] gebruik van het model van Lafortune voor representatie van de BRDF. Aangezien deze methode zeer veel overeenkomsten heeft met het model van McAllister, zal ik hier niet de hele methode, maar alleen de uitbreidingen en verschillen behandelen. De methode van Daubert (2001) is ouder dan die van McAllister (2002), maar die van McAllister is bekender en algemener, en wordt daarom als eerste beschreven in dit verslag. Bij de methode van McAllister wordt, tijdens het renderen, iedere Lafortune lob van een BRDF geëvalueerd en vermenigvuldigd met een zekere RGB waarde, en vervolgens wordt hiervan de som bepaald. Daubert maakt gebruik van een extra tabel, die voor een aantal kijkrichtingen een, mogelijk verschillende, RGB en alpha waarde bevat. Deze RGB waarde wordt vermenigvuldigt met de eerder genoemde som. Op deze manier kunnen sommige schaduw en occlusion effecten beschreven worden. De tabel werkt dus als een soort masker, waarbij wit geen effect heeft en grijstinten voor een schaduw effect zorgen. Voor kijkrichtingen niet in de tabel wordt de RGB waarde geïnterpoleerd. De alpha waarde wordt gebruikt om gaten in het materiaal te beschrijven, iets wat voor schilderijen niet van belang is. De kleuren in de tabel voor ieder punt in de SBRDF worden bepaald tijdens fitting van de data op het model. In eerste instantie bevat de tabel alleen maar witte elementen, zodat deze geen effect hebben. Als eerste worden telkens de parameters voor het Lafortune model bepaald, waarbij de samples worden aangepast (vermenigvuldigd) aan de hand van de kleur in de tabel die hoort bij de kijkrichting van de sample. Vervolgens worden de meest efficiënte kleuren bepaald voor alle kijkrichtingen die horen bij de tabel, waarbij voor het bepalen van een kleur alleen gebruik gemaakt wordt van de samples die horen bij deze kijkrichting. Dit is een iteratief proces, dat stopt als de veranderingen in de tabel onder een zekere drempelwaarde komen. Donkere kleuren in deze tabel duiden zo op schaduw effecten onder een bepaalde kijkhoek. Het voordeel van deze methode is dus vooral een nauwkeuriger resultaat voor verschillende kijkrichtingen. Bij het bekijken van schilderijen is de kijkrichting meestal beperkt tot een kleine hoek. Tijdens het construeren van de tabel kan hier rekening mee gehouden worden door de tabel hiertoe te beperken. Hoewel de resultaten voor kleding zeer goed zijn, is er over de kwaliteitsverbetering bij schilderijen weinig te zeggen. De verflaag van een schilderij is namelijk meestal niet meer dan enkele tienden millimeters dik. De schaduw effecten die met het blote oog goed zijn waar te nemen beperken zich in dit geval tot kleine barstjes in de verflaag. De implementatie van Daubert (2001) maakt gebruik van een combinatie van hardware en software rendering. Zij verwacht echter dat op toekomstige grafische chips een implementatie volledig in 15

16 hardware mogelijk zal zijn Evaluatie Pluspunten Beschrijving van schaduw en occlusion effecten Minpunten Aanzienlijk meer grafisch geheugen nodig. Lagere performance. Een extra tabel voor iedere lob van ieder punt in de SBRDF. Interpolatie van de RGB waarden in de tabel tijdens het renderen. Geen volledige hardware implementatie beschikbaar Aanpassingen Hardware De implementatie van Daubert is een combinatie van hardware en software rendering. Waarschijnlijk is het met de huidige grafische chips mogelijk om de rendering volledig in hardware uit te voeren. Er kan gebruik gemaakt worden van de implementatie van McAllister, met een paar kleine aanpassingen voor de extra tabellen Geheugen gebruik Daubert maakt gebruik van een RGBA masker voor representatie van schaduw effecten en verschuivingen van kleuren (color shift) onder een zekere kijkhoek. Bij schilderijen verwacht ik over het algemeen niet dat kleuren onder een andere kijkhoek anders uitkomen. We zouden dan kunnen volstaan met alleen een tabel voor luminance waarden, wat een factor 4 minder geheugen kost. 16

17 3.3 Meseth Beschrijving De methode van Meseth en anderen [10][11] is vooral geschikt voor realistische, real time weergave van vrijwel homogene, complexe materialen met variatie in diepte, zoals stoffen. Deze methode maakt, net als Daubert en McAllister, gebruik van het model van Lafortune voor representatie van de BRDF Reflectance fields Meseth heeft gekozen voor reflectance fields om de SBRDF te beschrijven. Dit is een 4 dimensionale functie die de reflectie eigenschappen van het materiaal beschrijft voor een bepaalde kijkhoek. Er wordt dus alleen de distributie van het uitgaande licht gemodelleerd voor een zekere, vaste, inkomende richting. Bij elke kijkhoek hoort een reflectance field, waardoor er weer een 6 dimensionale functie (SBRDF) ontstaat. Praktisch wordt zo n reflectance field door Meseth gebruikt voor kijkhoeken rond een bepaalde waarde, omdat een reflectance field opslaan voor alle kijkhoeken niet mogelijk is. Tijdens het renderen wordt er daarom geïnterpoleerd tussen de vier dichtstbijzijnde reflectance fields. De representatie van de Lafortune parameters met behulp van texture maps lijkt sterk op die van McAllister. Er wordt gebruik gemaakt van 3 dimensionale textures, waarbij de extra dimensie ten opzichte van McAllister het reflectance field aangeeft. Eén reflectance field is daarbij vrijwel gelijk aan de SBRDF representatie van McAllister. Voor het bepalen van de dichtstbijzijnde reflectance fields voor een zekere kijkhoek, wordt gebruik gemaakt van cube maps Kwaliteit en performance Het voordeel van de methode van Meseth is dat schaduw en scattering effecten, die afhankelijk zijn van de kijkhoek, goed gemodelleerd worden (zie illustratie 6). Een voordeel boven de methode van Daubert is de hogere kwaliteit, doordat elk reflectance field zijn eigen Lafortune parameters heeft. Dit is ook meteen het grootste nadeel van deze methode. Het geheugen gebruik is, zeker ten opzichte van McAllister, extreem hoog te noemen. In zijn voorbeeld maakt Meseth gebruik van 81 reflectance fields, wat een dataset van 400 megabytes voor een 256 bij 256 BTF oplevert! Bij schilderijen is de kijkhoek beperkt, waardoor wij waarschijnlijk met minder reflectance fields kunnen volstaan. Om het geheugen gebruik te reduceren is gekozen voor texture synthesis, wat gebaseerd is op een kleine base texture die herhaald wordt over een groter oppervlak.[10] De texture synthesis zorgt ervoor dat lelijke herhalingen en lijntjes tussen de tiles voorkomen worden. Schilderijen worden in de conclusie echter expliciet genoemd als ongeschikt voor deze methode, omdat deze over het algemeen niet homogeen zijn. Meseth wijst op de mogelijkheid [11] om in dit geval gebruik te maken van clustering om het geheugen gebruik te reduceren.[12] De reflection fields bevatten waarschijnlijk veel overeenkomsten. Het gebruik van hoofdcomponenten analyse in combinatie met clustering, zoals 17

18 beschreven in , is daarom zeer geschikt om het geheugen gebruik te reduceren. McAllister Daubert Meseth Illustratie 6: Vergelijking van Lafortune gebaseerde methoden.[11] Evaluatie Pluspunten Betere beschrijving van schaduw en occlusion effecten dan Daubert. Hardware implementatie. Efficiënte implementatie van environment mapping.[11] Minpunten Zeer veel grafisch geheugen nodig. Bijna 400 megabyte geheugen voor een 256 bij 256 BTF. Geen geschikte oplossing voor schilderijen beschikbaar. Lagere performance. Interpolatie van 4 reflectance fields Aanpassingen Geheugen gebruik De beschreven methode om het geheugen gebruik te reduceren (texture synthesis) is alleen van toepassing op vrijwel homogene materialen. Voor schilderijen zou ik moeten onderzoeken of clustering inderdaad goede resultaten geeft. Een eenvoudige methode om het geheugen gebruik iets te reduceren, is het beperken van de kijkhoek tot welke voor schilderijen van belang zijn. De kwaliteit voor de belangrijkste (kleine) kijkhoeken blijft zo gelijk. Ik verwacht dat er zo ongeveer een factor 4 minder geheugen nodig is. Waarschijnlijk is dit nog steeds onvoldoende om een schilderij praktisch op te slaan. In combinatie met eerder genoemde clustering kan het wel nuttig zijn. 18

19 4 Factorisatie methoden 4.1 McCool Beschrijving De methode van McCool en anderen [13] is gebaseerd op een factorisatie van de 4 dimensionale BRDF in twee of meer factoren van een lagere dimensie. In het voorbeeld wordt gebruik gemaakt van een factorisatie van de BRDF in twee 2 dimensionale vectoren van 32 bij 32 en een correctiekleur. Deze vectoren zijn opgeslagen in texture maps en worden geïndexeerd en vermenigvuldigt tijdens het renderen. Door gebruik te maken van multitexturing met tenminste 2 texture units, is het mogelijk om de BRDF in N+1 passes te renderen (N is het aantal lichtbronnen). Als voordeel van deze methode wordt onder andere opgemerkt dat de performance slecht een factor twee lager is dan met normale Gouraud shading. Een ander voordeel is dat de factorisatie een wat algemener resultaat geeft dan Lafortune. Een BRDF die met Lafortune veel lobben vereist voor een nauwkeurig resultaat, kan met deze methode mogelijk wel goed worden gerepresenteerd zonder extra rekenkracht. Als laatste wordt nog vermeldt dat deze methode bijzonder geschikt is bij sparse sampling, zowel voor een beperkt aantal samples als ook voor samples die niet gelijkmatig verdeelt zijn. Ook de methode van McCool heeft problemen met het dynamisch bereik van de parameters. Vooral de spiegelende pieken in de BRDF kunnen een hoge waarde aannemen. Er wordt geadviseerd om deze apart te behandelen, in ons geval bijvoorbeeld met een environment map. Of het in dit geval ook nuttig zou zijn om floating point textures te gebruiken is niet duidelijk Evaluatie Pluspunten Efficiënt bruikbaar voor alle mogelijke BRDFs. Ondersteuning voor sparse sampling van de BRDF. Hoge kwaliteit. Nauwkeurige representatie van de BRDF. Interpolatie van de BRDF parameters (door middel van texture filtering). Hoge performance Renderen met enkele vermenigvuldigingen en tabellen. 19

20 Minpunten Beperkt tot (punt)lichtbronnen. Environment mapping praktisch onmogelijk voor real time SBRDF. Zeer veel grafisch geheugen nodig voor SBRDF. In het geval er een BRDF representatie wordt opgesteld voor ieder punt in de SBRDF is er 128 megabyte geheugen nodig voor een 256 bij 256 SBRDF Aanpassingen SBRDF Eén mogelijkheid die wordt voorgesteld is het gebruiken van lineaire combinaties van meerdere BRDFs en het gebruik van alpha texture maps voor het mengen van deze BRDFs. De haalbaarheid van deze methode is uiteraard zeer afhankelijk van de complexiteit van de SBRDF die we proberen te representeren. Een andere mogelijkheid is het opstellen van een BRDF representatie volgens deze methode voor elke pixel in de SBRDF. Waarschijnlijk is dit voor deze methode niet haalbaar, aangezien elke pixel dan enkele kilobytes aan geheugenruimte in beslag zou nemen. Voor een schilderij betekent dit al snel honderden megabytes aan BRDF data Environment mapping Door McCool wordt alleen gewezen op het gebruik van environment maps voor het spiegelende aandeel van de BRDF. In ons geval zou dit vooral de laklaag van het schilderij omvatten. Voordeel hiervan is dat de environment map slecht één keer in het grafisch geheugen hoeft te worden opgeslagen. Een nadeel is dat er geen natuurlijke belichting op het diffuse deel van de BRDF kan worden berekend. Ik zie zelf geen mogelijkheid om een environment map implementatie als voorgesteld door McAllister, voor de methode van McCool te implementeren. De BRDF representatie is denk ik te algemeen om een geconvolueerde environment map op te slaan. Bovendien is er nog het probleem om de SBRDF te implementeren, waardoor het geheugen gebruik nog eens lineair toeneemt met het aantal BRDFs dat gebruikt wordt om te SBRDF te representeren Hardware De performance van deze methode wordt beperkt door het aantal beschikbare texture units van de grafische chip. In het voorbeeld wordt uitgegaan van 2 texture units. Dit aantal is aanzienlijk hoger voor recente grafische chips, deze beschikken namelijk over 4 tot 16 texture units. Dit betekent dat er gebruik gemaakt kan worden van meer lichtbronnen met vrijwel dezelfde performance (single pass). 20

21 4.2 Suykens Beschrijving De methode van Suykens en anderen [14] is gebaseerd op matrix factorisatie van de BRDF. De BRDF wordt beschreven door een reeks matrix vermenigvuldigingen. De 4 dimensionale BRDF wordt hierbij beschreven als het product van een aantal 2 dimensionale vectoren (matrices). Een belangrijk voordeel van deze CMF (Chained Matrix Factorization) methode is dat zij een betere beschrijving van (micro)geometrie eigenschappen van de SBDRF mogelijk maakt dan andere methoden. Er wordt onder andere een vergelijking gemaakt met de factorisatie van McCool. Aangezien de onderliggende geometrie van een veel grotere schaal is dan gebruikelijk voor een BRDF, wordt er gesproken van een ABRDF (Apparent BRDF), aldus Suykens. In feite is er altijd sprake van een ABRDF indien er sprake is van sampling van het voorwerp door middel van belichting en fotografie (een gonioreflectometer, zie ook de inleiding). Een andere voordeel van deze factorisatie boven die van bijvoorbeeld McCool, is dat de factoren een beter dynamisch bereik hebben. Dit heeft als voordeel dat zij nauwkeuriger te beschrijven zijn met fixed point texture maps. De presentatie van deze methode toont duidelijk aan hoe kwantisatiefouten bij beperking van de factoren tot 8 bits, een zeer negatief effect op de waargenomen kwaliteit van de methode van McCool hebben.[15] Het is natuurlijk mogelijk om floating point texture maps te gebruiken, maar dit kost wel meer geheugen en is voor de methode van Suykens niet noodzakelijk. Bovendien worden floating point texture maps op huidige grafische chips standaard niet (lineair) gefilterd. Een filtering implementatie in een fragment program is mogelijk tegen een veel lagere performance. (zie 7.4) Om het geheugen gebruik te beperken, wordt voor de SBRDF gebruik gemaakt van codebooks voor het opslaan van de belangrijkste factoren die de BRDFs gemeen hebben. Dit wordt clustering genoemd. In de beschrijving van een individuele BRDF kan dan volstaan worden met slechts een index in deze codebooks. De gebruikte resolutie van de SBRDF is over het algemeen klein (64 bij 64 pixels). Het is niet duidelijk of deze methode goed werkt voor hogere resoluties van de SBRDF, of dat de codebooks dan te klein worden. De codebooks worden namelijk in grootte beperkt door de 8 bit index vanuit normale RGB texture maps Evaluatie Pluspunten Hoge kwaliteit. Beter dynamisch bereik van factoren dan McCool. 21

22 Goede representatie van BRDF eigenschappen. Efficiënte ondersteuning van SBRDF door middel van clustering. Representatie van (micro)geometrie in de SBRDF Minpunten Veel grafisch geheugen nodig. Veel rekentijd voor factorisatie (21 uur voor 64 bij 64 SBRDF). Voorbeelden zijn eenvoudig en kunstmatig (torus met schaakbord patroon) Aanpassingen Environment mapping Het is niet duidelijk of real time environment mapping praktisch mogelijk is met de factorisatie van Suykens. Er wordt door Suykens en anderen niet verder op in gegaan. Voor real time weergave van BRDF data met environment maps is over het algemeen een convolutie stap nodig, maar het is de vraag of dat bij deze algemene beschrijving van de SBRDF wel haalbaar is. De kwaliteit zal waarschijnlijk te wensen over laten, omdat de convolutie niet optimaal is voor de factoren door asymmetrie en dergelijke Geheugen gebruik Als we deze methode willen gebruiken, zal er een oplossing moeten worden gezocht voor het geheugen gebruik. Ook vraag ik mij af of de codebooks voldoende zullen zijn bij SBDRFs van hogere resolutie dan in het voorbeeld. 22

23 4.3 Müller Beschrijving PCA De methode van Müller en anderen [12] is gebaseerd op factorisatie van de SBRDF volgens PCA (Principal Component Analysis, hoofdcomponentenanalyse). PCA is een methode waarbij (mogelijk) gecorreleerde, multi dimensionale data wordt beschreven door een lineaire combinatie van een aantal ongecorreleerde variabelen, de principal components (hoofdcomponenten). Voor het bepalen van de principal components trekken we eerst het gemiddelde van de samples af. Dit is in het geval van Müller de gemiddelde BRDF. Vervolgens bepalen we de covariantiematrix van deze nieuwe data (afwijking van het gemiddelde). De genormaliseerde eigenvectoren van deze matrix vormen de principal components. Deze principal components zijn gesorteerd op variantie, waarbij de eerste de grootste variantie van de data beschrijft. Dit correspondeert met de grootste eigenwaarde. Gezamenlijk beschrijven de principal components 100% van de variantie van de data.[16] De data voor de PCA methode zijn in dit geval de BRDFs. Dit zijn vectoren ter grootte van alle ingaande licht richtingen maal alle uitgaande richtingen maal het aantal kleurcomponenten (3 voor RGB). In het voorbeeld wordt uitgegaan van 81x81x3. Het is ook mogelijk om de samples (foto's) op zich te comprimeren, maar dit geeft slechtere resultaten. De BRDFs worden tijdens het renderen gereconstrueerd door een gewogen som van de principal components te berekenen. Door alleen de belangrijkste van de principle components te gebruiken, wordt de omvang van de SBRDF (sterk) gereduceerd, terwijl de variantie van de oorspronkelijke data zo goed mogelijk behouden blijft. De methode van Müller biedt zeer goede kwaliteit tegen een bescheiden geheugen gebruik. Voor schilderijen schat ik voor hoge kwaliteit niet meer dan enkele tientallen megabytes grafisch geheugen nodig te hebben. Dit is gebaseerd op resultaten van Müller.[17] Local PCA De methode van Müller kan gezien worden als een uitbreiding op die van Sattler en anderen, die gebruik maken van PCA om de SBRDF in zijn geheel te representeren.[18] De methode van Müller maakt gebruik van local PCA, waarbij PCA wordt gecombineerd met vector quantization. Dit komt neer op het iteratief opdelen van de SBRDF in kleinere clusters en vervolgens de PCA te bepalen voor ieder van deze clusters. Het bepalen van de clusters is een iteratief proces dat begint door voor alle clusters een willekeurig centrum (een BRDF) in de dataset te kiezen. Vervolgens worden de elementen in de dataset (vectoren bestaande uit een BRDF) ingedeeld bij het cluster met het dichtstbijzijnde centrum. Het dichtstbijzijnde centrum wordt gedefinieerd als het cluster met de kleinste reconstructiefout voor het element. De 23

24 gemiddelde waarde van alle elementen behorende bij een cluster vormen het nieuwe centrum van het cluster voor de volgende iteratie. Na elke iteratie wordt een PCA in elk cluster bepaald. Het proces stopt als de fout van deze PCA reconstructie beneden een zeker drempelwaarde komt die de gewenste kwaliteit bepaald. De clusters bevatten de basis BRDFs waarvan een gewogen som wordt bepaald tijdens het renderen. Ieder cluster wordt daarbij apart opgeslagen. Elk element (pixel) van de SBRDF bevat zowel een cluster index als de gewichten voor de componenten van dit cluster. Het voordeel van deze methode boven block based PCA methoden, zoals die van Matusik en anderen [19], is dat de clustering zich aanpast aan de lokale complexiteit van de SBRDF. Door gebruik te maken van een index werkt de methode van Müller ook als gelijksoortige BRDFs verspreidt liggen. De verhouding tussen kwaliteit en geheugen gebruik is voor de methode van Müller daarom een stuk beter. In een recente publicatie beschrijft Müller een methode voor belichting van de SBRDF met behulp van environment mapping. Deze methode is gebaseerd op spherical harmonics en vereist het berekenen van een combinatie van de BTF en de environment map. Het resultaat van deze berekening omvat dus zowel de belichting als het reflectiemodel.[20] De hoeveelheid belichtingsinformatie die per punt in de SBRDF wordt opgeslagen is zeer beperkt, terwijl bij spiegelende reflecties onder een variërende kijkhoek in werkelijkheid de hele environment map zichtbaar kan zijn. Spiegelende reflecties in de laklaag van een schilderij zouden daarom een te ongedetailleerd beeld van de omgeving kunnen laten zien Evaluatie Pluspunten Zeer hoge kwaliteit. Nauwkeurige reconstructie van schaduw en occlusion effecten. Geen logische of wiskundige beperkingen aan de BRDF, zoals met analytische functies. Bescheiden grafisch geheugen gebruik. 10 megabyte voor een 256 bij 256 BTF. Compressie van 1:100 van originele data. Volledige hardware implementatie. Implementatie van environment mapping Minpunten Complexiteit. Geen gebruik van Lafortune. 24

25 Gemiddelde performance. 14 frames per seconde op een NVIDIA GeForce FX 5900 GPU, niet snel ten opzichte van de op Lafortune gebaseerde technieken. Geen directe relatie met de SBRDF. Het model van Lafortune is door Jurriaan uitvoerig onderzocht en geschikt gevonden bij een reconstructie van de SBRDF van schilderijen bij sparse sampling. Het werk van Müller is gebaseerd op een algemene methode voor het werken met multi dimensionale data. De prestaties voor verschillende materialen, in het bijzonder schilderijen, zijn daarom moeilijk in te schatten. Onduidelijkheid over te verwachten kwaliteit bij sparse sampling. 25

26 5 Microgeometrie 5.1 Inleiding Het onderzoek van Jurriaan [1] heeft aangetoond dat fitting op het gebruikte BRDF model problemen heeft met het beschrijven van microgeometrie. Het gaat hier vooral om details tot enkele millimeters groot. Het draaien van de normaalvector van het oppervlak was voldoende om een goede fitting vrijwel onmogelijk te maken (zie illustratie 7). Het resultaat was visueel nog acceptabel, maar incorrect. Een mogelijkheid is uitbreiding van het gebruikte Lafortune model met extra parameters voor het beschrijven van de normaalvector, maar er zijn ook andere mogelijkheden. Gewenste situatie Huidige situatie Illustratie 7: Geen oriëntatie van Lafortune lobben. Als we gebruik maken van een afzonderlijke methode om de microgeometrie te beschrijven, zullen de samples (foto s) hiervoor gecorrigeerd moeten worden. Door gebruik te maken van methoden voor het beschrijven van microgeometrie, waarvan enkele besproken in dit hoofdstuk, zal de SBRDF naar verwachting beter deze gecorrigeerde samples kunnen beschrijven. De SBRDF kan zo met minder parameters een zelfde kwaliteit halen. Een andere voordeel is dat parallax effecten door veel BRDF modellen niet of niet efficiënt kunnen worden beschreven. Voor schaduw effecten geldt dit in mindere mate. Het gebruik van een methode om microgeometrie te beschrijven, bijvoorbeeld displacement mapping, kan zo de kwaliteit van het resultaat verbeteren. 5.2 Rendering methoden BRDF De meest eenvoudige oplossing is het combineren van de BRDF en microgeometrie metingen en deze opslaan in één SBRDF. De benodigde hoeveelheid grafisch geheugen hangt af van de gebruikte methode en de uiteindelijk resolutie van de SBRDF. Deze resolutie is gelijk aan het maximum van de resolutie van de microgeometrie (height map of normal map) en BRDF metingen. De microgeometrie wordt hier dus alleen gebruikt om acquisitie van de SBRDF te vereenvoudigen. Deze oplossing stelt wel eisen aan het te gebruiken SBRDF model. De methode van McAllister heeft in 26

27 principe geen mogelijkheid om deze microgeometrie te beschrijven. McCool is per definitie een BRDF en géén SBRDF model. De methoden van Meseth en Daubert hebben slechts impliciete ondersteuning voor microgeometrie door het beschrijven van schaduw effecten en in het geval van Meseth ook occlusion effecten. De microgeometrie wordt bij deze laatste twee methoden door de samples zo nauwkeurig beschreven als het model toe staat. Het is natuurlijk mogelijk om deze SBRDF modellen uit te breiden met extra parameters, maar het lijkt mij beter om voor de microgeometrie in dit geval gebruik te maken van normal mapping en/of displacement mapping, en de SBRDF hierop aan te passen. Een belangrijke reden hiervoor is dat de Lafortune modellen met een beperkt aantal parameters al zeer rekenintensief zijn. De methoden van Müller en Suykens zijn wel geschikte kandidaten voor deze oplossing. Deze methoden zijn gebaseerd op een factorisatie van alle samples die voor de BRDF fitting gebruikt worden. Een mogelijkheid is daarom interpolatie van de foto s door gebruik te maken van de microgeometrie informatie. Bij sparse sampling verkrijgen we zo extra samples die de microgeometrie beter beschrijven Normal mapping Normal mapping is een methode waarbij microgeometrie wordt beschreven door het variëren van de normaalvector. Op deze manier wordt microgeometrie real time gesimuleerd voor environment maps en belichting met puntlichtbronnen, doordat de normaalvector wordt gebruikt bij het berekenen van de lichtintensiteit en de positie in een environment map. Dit wordt ook wel dot3 bump mapping genoemd, verwijzend naar het dot product waarop deze berekeningen gebaseerd zijn. Illustratie 8: Normal mapping. De normaal vector wordt beschreven door een zogenaamde normal map. Dit is een speciale texture map waarin de normaal vector voor ieder punt is opgeslagen in de rood (x), groen (y) en blauw (z) componenten (zie illustratie 9). Er kan ook volstaan worden met het opslaan van slechts de x en y componenten, waarbij de z component tijdens het renderen wordt berekend door z= 1 x 2 y2. Het nadeel hiervan is een iets lagere Illustratie 9: Normal map. performance vanwege evaluatie van de z component voor ieder pixel. Een andere opslagmethode is het gebruik van bump maps, waarbij de normaalvector wordt berekend vanuit een texture map, waarin de hoogte voor ieder punt is opgeslagen als een grijswaarde, ook wel height map genoemd (zie illustratie 10). Het gebruik van normal maps geeft over het algemeen betere resultaten en heeft, behalve een iets hoger geheugen gebruik, geen noemenswaardige nadelen. Daarom beperk ik mij verder tot normal maps. 27

28 In ons geval zou normal mapping gebruikt worden in combinatie met een SBRDF. Tijdens het renderen van een SBRDF in combinatie met environment map gebaseerde belichting, wordt voor iedere pixel een index in de environment map bepaald. Deze index wordt beschreven door een normaal vector. Normal mapping zou dus op dit punt worden tussengevoegd als een uitbreiding van het fragment program voor rendering van deze SBRDF op grafische hardware. De normaal vector die een index in de environment map vormt, wordt hierbij aangepast volgens de bij de pixel behorende waarde in de normal map. Het zelfde geldt voor belichten met behulp van puntlichtbronnen, waarbij ook de normaal vector wordt gebruikt om de lichtintensiteit te berekenen. Het voordeel van normal mapping is dat het eenvoudig is te implementeren en te integreren met het renderen van de SBRDF op grafische hardware. Een nadeel is echter, dat acquisitie van de microgeometrie en aanpassing van de SBRDF zeker niet eenvoudig is. De verwachte verbetering is bovendien slechts matig. Alleen directe belichting en spiegeling kan beter worden beschreven, maar schaduw en occlusion effecten hebben geen baat bij normal mapping Displacement mapping Een derde mogelijkheid is het gebruik van displacement mapping voor het beschrijven van de microgeometrie. Dit is een methode om fijne geometrische details voor een eenvoudig model te beschrijven. Deze geometrische details staan bijvoorbeeld beschreven in een displacement map, soms ook wel height map genoemd (zie illustratie 10). Dit is een soort 2 dimensionale texture map, waarvan de waarden de afstand langs de normaal van het originele geometrisch Illustratie 10: Height model beschrijven.[21] Het voordeel van deze methode is dat behalve belichting, map. ook schaduw, occlusion en parallax effecten kunnen worden beschreven, iets wat met normal maps niet mogelijk is. Het gebruik van displacement mapping zou een oplossing kunnen bieden voor de beperkte diepte beleving van de methode van McAllister. Aangezien displacement mapping ondersteuning biedt voor effecten die niet efficiënt met de methode van McAllister kunnen worden beschreven, zou dat ook de kwaliteit van de SBRDF zelf kunnen verbeteren. Het belangrijkste voordeel van Daubert boven McAllister, het beschrijven van schaduw effecten, vervalt door gebruik te maken van distance mapping in combinatie met normal mapping. Displacement mapping zou ook gebruikt kunnen worden om de hoeveelheid informatie in de SBRDF te reduceren. Mogelijk kan dan volstaan worden met minder reflection fields, indien we gebruik maken van de methode van Meseth, of een betere compressie van de SBRDF in het geval van Müller Adaptive tessellation De meest voor de hand liggende implementaties van displacement mapping zijn gebaseerd op het berekenen en toevoegen van nieuwe geometrie. Dit staat bekend als tessellation: het opdelen van 28

29 geometrie in een mozaïek van kleinere polygons. De hoekpunten van deze nieuwe polygons worden, op basis van de waarde in de displacement map, langs de normaal vector van de oorspronkelijke geometrie verschoven (zie illustratie 11). Recente implementaties bieden een efficiëntere oplossing, namelijk adaptive tessellation. Hierbij is het uitgangspunt een zo eenvoudig mogelijke geometrie te vinden, die deze nieuwe geometrie met een zekere nauwkeurigheid benadert. Een voorbeeld is de methode van Moule, waarbij polygons worden opgedeeld op basis van een dergelijk criterium.[21] Illustratie 11: Tessellation (16k polygons). Het aantal pixels in de displacement map, of voor een efficiëntere implementatie, het aantal variaties in de displacement map, bepaalt het uiteindelijke aantal polygons van de tessellation methode. Aangezien dit in sommige gevallen kan oplopen tot vele honderdduizenden polygons, hebben sommige GPUs speciale ondersteuning voor het berekenen van deze geometrie data.[22] Distance mapping Een andere methode voor het renderen van displacement maps is distance mapping.[23] Deze methode is gebaseerd op ray tracing. Tijdens het renderen wordt gebruik gemaakt van een speciale vorm van ray marching, waarbij de texture index voor een pixel op het scherm wordt bepaald aan de hand van de geometrie beschreven door de displacement map en het basis model. Een nadeel van ray marching met een vaste stapgrootte is dat kleine details verloren kunnen gaan, doordat er over deze details heen gestapt wordt. Occlusion effecten gaan zo verloren. Een kleine stapgrootte heeft weer een nadelig effect op de performance. Om deze reden wordt er gebruik gemaakt van een zogenaamde distance map. Deze distance map wordt berekend uit de height map tijdens een pre processing stap. De distance map beschrijft de minimale afstand van een punt tijdens ray marching tot de microgeometrie. Dit betekent dat je vanuit dit punt minimaal deze afstand langs de straal kunt afleggen, zonder enige microgeometrie te doorsnijden of over te slaan. Door telkens deze afstand lang de straal af te leggen, zal uiteindelijk het snijpunt met de microgeometrie gevonden worden (zie illustratie 12). Praktisch wordt er gebruik gemaakt van een iteratief proces met een vast aantal stappen, waardoor er mogelijk iets te vroeg gestopt wordt. Illustratie 12: Distance Het aantal iteraties hangt af van de gewenste kwaliteit en snelheid. mapping als efficiënte ray marching methode. De distance map is gedefinieerd voor het volume tussen de basis geometrie en de maximale diepte die een waarde in de displacement map kan aannemen. De betekenis van de displacement map is dus omgekeerd ten opzichte van adaptive tessellation, waarbij de hoogte vanaf de basis geometrie wordt beschreven. Dit volume wordt gerepresenteerd door een 3 dimensionale texture map met dezelfde hoogte en breedte van de displacement map en een diepte 29

30 gebaseerd op gewenste nauwkeurigheid. De ray marching methode wordt door Donnelly geïmplementeerd in een fragment program. De GPU bepaalt ten eerste het snijpunt met de basis geometrie, waarna het genoemde fragment program de uiteindelijke index in de texture bepaald, in ons geval de index in de SBRDF. Voor het gebruik van deze methode is minimaal een GeForce FX nodig. De performance is redelijk goed, frames per seconde bij een resolutie van 1024 bij 768 pixels, afhankelijk van de kwaliteit, op een GeForce FX 5950 Ultra. Donnelly maakt in zijn voorbeeld gebruik van een combinatie van distance mapping voor occlusion effecten en normal mapping voor de belichting.[24] Om een indruk te krijgen van de kwaliteit van deze methode, heb ik gebruik gemaakt van een 3D pakket [25] Illustratie 13: Distance mapping simulatie. om dit effect te simuleren (zie illustratie 13). 5.3 Correctie van de SBRDF Om displacement mapping in combinatie met een SBRDF te kunnen gebruiken, zal de SBRDF moeten worden gecorrigeerd voor de geometrie beschreven door de displacement map. Een oplossing is het aanpassen van de samples (foto s) tijdens de perspectief transformatie die de foto s in een rechthoekig formaat brengt. De pixels voor iedere positie p worden langs de normaal vector n van het oppervlak verschoven, op basis van hoogte in de displacement map T disp p. p ' = p n T disp p Een nadeel van deze correctie is dat door occlusion effecten, gaatjes in de foto s ontstaan (zie illustratie 14). De gaatjes zijn delen van het schilderij die door occlusion niet zichtbaar waren. Bij schilderijen zijn hoogteverschillen, en daarmee ook deze gaatjes, echter zeer klein. Na scaling van de foto s zijn deze gaatjes waarschijnlijk kleiner dan één pixel. Er zou dan volstaan kunnen worden met interpolatie van de ontbrekende pixels. Een andere mogelijkheid is het gebruik van alpha waarden voor het beschrijven van de gaatjes. Voor de fitting op het BRDF model krijgen deze gaatjes dan een gewicht op basis van de alpha waarde (zie rechter plaatje illustratie 14, alpha waarden in de rechterbovenhoek). Perspectief transformatie Scaling Illustratie 14: Gaatjes (witte vlekjes) in de samples door occlusion. 30 Fitting (alpha)

31 6 Interactiviteit 6.1 Inleiding Het doel van mijn onderzoek is een realistische weergave van schilderijen. Interactiviteit tussen het schilderij, de omgeving en degene die het schilderij bekijkt, bepalen direct de weergave van het schilderij en verhogen het gevoel van realisme. Het doel is een natuurlijke interactie, die het kijken naar een echt schilderij zo goed mogelijk benadert. Illustratie 15 geeft een overzicht van de onderdelen die de interactie bepalen en de onderwerpen besproken in dit hoofdstuk. Waarnemer (Tracking) Monitor (Rendering) Omgeving (Opgaan in...) Illustratie 15: Impressie van de onderdelen die de interactie bepalen. 6.2 Implementatie Tracking In het geval van realistische weergave van schilderijen wordt de interactie bepaald door de oriëntatie van de persoon die naar het schilderij kijkt en de belichting van het schilderij. De positie van de ogen van de waarnemer ten opzichte van het schilderij kunnen worden gemeten met behulp van een camera en software die de positie van de ogen van de waarnemer bepaalt en volgt. Om de positie en oriëntatie van het hoofd van de waarnemer te bepalen, zal ik gebruik maken van een methode ontwikkelt door Stan Birchfield.[26] Deze methode maakt gebruik van de relatie tussen opeenvolgende videobeelden om bewegingen van het hoofd van de waarnemer te kunnen voorspellen. Er wordt daarbij een beperking gesteld aan de acceleratie van het hoofd, om foute beslissingen van het model te beperken. Dit stelt Birchfield in staat om zelfs bij draaien van het hoofd of occlusion van het hoofd door andere personen, het hoofd van de waarnemer te blijven volgen aan de hand van de huidige positie, oriëntatie en snelheid (zie illustratie 16). Het hoofd wordt gemodelleerd door een ellips. De pixels binnen en rond deze ellips worden gebruikt voor twee verschillende methoden, waarvan de hoogste som van de score van deze twee methoden de volgende stap van het model bepaalt. De score wordt daarvoor uitgedrukt in een percentage, zodat ze bij elkaar opgeteld kunnen worden. Als de gradient module het laat afweten door een lage score, neemt de kleur histogram module het zo over en andersom. Het gecombineerde resultaat blijkt een stuk beter 31

32 te werken dan deze twee methoden op zich. De snelheid is daarbij voldoende voor real time performance op tamelijk oude hardware (Pentium Pro 200 MHz). De eerste methode zoekt naar de grenzen van het hoofd met behulp van een gradient methode, waarbij overgangen van helderheid bepalend zijn. Deze methode op zich is bruikbaar voor langzame bewegingen voor een eenvoudige achtergrond. Bij snelle bewegingen, bewegingen van de camera af en naar de camera toe, heeft deze methode echter soms problemen met het bepalen van de juiste positie. Dit komt onder andere doordat contouren in het gezicht of delen van de achtergrond, zoals andere personen, voor het hoofd van de waarnemer worden aangezien. Onderstaande vergelijking berekent de score van deze methode voor alle mogelijke posities S van een ellips van grootte. De functie g S berekent het gemiddelde van het dot product van de helderheid gradient g S i en de normaalvector n i van alle pixels op de rand van de ellips, waarbij de normaalvector loodrecht op de omtrek van de ellips staat. N is het aantal pixels op de rand van deze ellips. Het zogenaamde dot product van de normaalvector en de gradient blijkt een beter resultaten te geven dan de gradient op zich. De vergelijking voor g S drukt de score uit in een percentage, zoals eerder besproken. g S = 1 N n i g S i N i=1 g S = g S min S S g Si i max S S g Si min S S g S i i i De tweede methode maakt gebruik van een kleur histogram van het gezicht, waarbij onder andere gezocht wordt naar huidskleur en de kleur van het haar. Deze methode werkt zeer goed, zelfs als deze kleuren ook in de achtergrond voorkomen. In dat geval is de positie die bepaald wordt soms wel wat instabiel (trillen). Alleen als de persoon achterstevoren staat en het gezicht niet zichtbaar is (zogenaamde out of plane rotaties), werkt de gradient methode een stuk beter. Voor het kijken naar schilderijen is dit echter niet zo van belang. In het voorbeeld van Birchfield bestaat het kleur histogram uit 4 bins (histogram kolommen) voor luminance (helderheid) en 8 bins voor chrominance (kleur) waarden. De chrominance waarden zijn voor het zoeken naar een gezicht belangrijker, omdat zij de juiste kleur bepalen. Luminance is ook sterk afhankelijk van schaduw effecten. Het geheel negeren van luminance wordt door Birchfield afgeraden, omdat er dan geen onderscheid tussen een witte achtergrond en donker haar gemaakt kan worden. Het histogram van het model voor het gezicht wordt in Birchfields experiment off line bepaald, wat in ons geval real time zal gebeuren. De volgende vergelijking berekent de score van deze methode voor alle mogelijke posities van de ellips S. De score wordt bepaald door de intersectie van het huidige kleur histogram van het model voor het gezicht M en het kleur histogram voor een zekere positie I, waarbij het aantal kolommen van het histogram wordt aangegeven met N. De min functie verkiest een ellips met de juiste verhouding kleuren boven een ellips die bijvoorbeeld geheel uit huidskleur bestaat, doordat elke kleur in het histogram I S i een maximaal gewicht geeft aan de vergelijking gelijk aan het model M i. De 32

33 vergelijking voor c S drukt de score uit in een percentage, net als bij de gradient methode. N c S = min I S i, M i i=1 N I S i c S = c S min S S c S i i max S S c S i min S S c Si i i i=1 Onderstaande vergelijking bepaalt de volgende positie S* van het hoofd, wat overeenkomt met de hoogste som van de procentuele score van de gradient module g Si en de kleur histogram module c S i. Deze zijn afhankelijk van Si, waarbij Si= x, y, de relatie beschrijft tussen de locatie x, y en grootte van de ellips. Dit komt respectievelijk overeen met de positie van het hoofd en de afstand van het hoofd tot de camera. S staat voor alle mogelijke posities en afmetingen van de ellips. S*=arg max { g Si c S i } S i S Tenslotte, verder onderzoek naar een geschikte tracking methode valt buiten het bereik van mijn onderzoek. Indien de methode van Birchfield niet voldoet, zal ik gebruik maken van een eenvoudige tijdelijke oplossing met een marker, bijvoorbeeld een bril of petje van een weinig voorkomende kleur. Deze methode is vergelijkbaar met een zeer eenvoudig kleur histogram, maar dan zonder veranderingen in het histogram. Illustratie 16: Performance bij rotaties, occlusions, zoomen en drukke achtergronden.[26] Rendering Het belang van rendering voor interactie met de gebruiker is terugkoppeling van de tracking module. Door aanpassing van de belichting moet de gebruiker het gevoel krijgen dat de projectie op een beeldscherm niet zo maar een foto is, maar een schilderij met ruimtelijke structuur en realistisch ogende reflectie eigenschappen. Dit stelt hoge eisen aan de rendering. Subtiele effecten door micro geometrie en verschillende materialen zijn belangrijk om dit effect te bereiken. Ik denk dat de methoden beschreven in dit onderzoeksrapport hiervoor voldoende zijn. 33

34 Voor real time rendering van het schilderij zal ik gebruik maken van één van de besproken BRDF modellen. In het geval er gebruik wordt gemaakt van tracking, zoals hiervoor beschreven, kan het schilderij direct zonder geometrische transformaties op het scherm geprojecteerd worden. De hoek waaronder de gebruiker naar het beeldscherm kijkt zorgt in dit geval voor het perspectief (zie middelste plaatje van illustratie 17). Voor onderzoek van de BRDF metingen en evaluatie van het gebruikte BRDF model, kan het handiger zijn om een perspectief projectie te gebruiken. In dit geval is roteren van het schilderij met behulp van de muis, efficiënter dan een systeem gebaseerd op tracking. In beide gevallen wordt de SBRDF op een vlak geprojecteerd basis van de huidige kijkrichting en belichting. SBRDF Belichting en Projectie Perspectief Illustratie 17: Projectie op het scherm. De geometrie is overdreven ter verduidelijking Opgaan in omgeving Zoals in de doelstelling van dit verslag al besproken, is het grote voordeel van het gebruik van environment maps een natuurlijke belichting. Daar komt bij dat, door een environment map te gebruiken van de omgeving waar het schilderij hangt, het ook zorgt voor het gevoel dat het schilderij op de monitor bij de omgeving hoort. Voor een maximaal effect zou het ook mogelijk zijn om de environment map real time aan te passen aan de situatie. De persoon die voor de monitor staat ziet zichzelf dan gereflecteerd in de laklaag en een schaduw werpen op de verf. Er zijn een aantal factoren die de haalbaarheid van deze uitbreiding bepalen: Kwaliteit van de gebruikte camera voor genereren van de environment map. De performance van pre processing van de environment map (onder andere convoluties). Wat de kwaliteit van de camera betreft is het vooral een kwestie van budget. Voor tracking voldoet een eenvoudige webcam prima, maar voor het bepalen van een environment map is een betere kwaliteit vereist. Indien we gebruik willen maken van HDR environment maps, zouden we een extra camera kunnen gebruiken met een kortere belichtingstijd (zie 7.3). Wat performance betreft is het mogelijk om eerst het verschil met een vaste of de huidige environment map te bepalen, en alleen daarvan de convolutie te berekenen. Pixels die weinig veranderen worden daarbij genegeerd. Een andere mogelijkheid voor extra snelheidswinst is het vereenvoudigen van het verschil door de persoon op een lage resolutie af te beelden. Waarschijnlijk heeft dit op de kwaliteit een nauwelijks merkbaar effect. Een andere mogelijkheid is een efficiënter algoritme voor het berekenen 34

35 van de convolutie. In de volgende paragraaf staan twee methoden hiertoe besproken Pre-filtered environment maps Er zijn verschillende manieren bekend voor het real time berekenen van deze zogenaamde pre filtered environment maps. Eén methode is die van Kautz[27], waarbij spherical harmonics worden gebruikt voor het berekenen van een environment map voor diffuse reflecties. De environment maps voor spiegelende reflecties worden vervolgens benadert door het berekenen van MIP maps door de grafische hardware. Dit laatste is uiteraard slecht een zeer grove benadering voor het gewenste resultaat. Ik denk dat het daarom voor zichtbare fouten kan zorgen, zeker als er gebruik wordt gemaakt van HDR environment maps. Er worden namelijk slechts enkele pixels gebruikt voor het filteren, in plaats van de gehele environment map. De performance is wel zeer goed te noemen, meer dan 100 frames per seconde op een ATI Radeon 9700 voor verschillende voorbeelden. Een andere methode van Kautz[28] levert nauwkeurigere resultaten. Van de environment map en een filter kernel, in ons geval een Lafortune lob, worden eerst MIP maps berekend. Vervolgens wordt iedere pixel in de geconvolueerde environment map berekend volgens een hiërarchische methode. Hierbij wordt een berekening gemaakt op basis van een MIP map van de environment map en filter kernel, beginnend bij het hoogste MIP niveau (de kleinste texture), totdat het verschil tussen de resultaten van opeenvolgende MIP niveaus onder een zekere threshold (grenswaarde) valt. Deze threshold bepaalt zo de gewenste nauwkeurigheid van het resultaat. 35

36 7 Resultaten 7.1 Inleiding In dit hoofdstuk zal ik implementaties bespreken van enkele in de vorige hoofdstukken besproken grafische algoritmen. Mijn doel is daarbij praktisch inzicht krijgen in de mogelijkheden en beperkingen van grafische chips en ervaring in het werken met fragment programs. Hiervoor heb ik een demonstratie programma ontwikkeld waarin verschillende algoritmen eenvoudig te implementeren en testen zijn (zie illustratie 18). 7.2 Implementaties Illustratie 18: Demonstratie programma Environment mapping Environment mapping heb ik geïmplementeerd in de vorm van Environment Mapped Bump Mapping. Deze methode is een combinatie van normal mapping en environment mapping van een spiegelend oppervlak. Hierbij wordt de normaal vector bepaald uit een sample in de normal map. Vervolgens wordt om deze normaal vector gespiegeld en de environment map geïndexeerd. De environment map is opgeslagen in een cube map. Cube map Screenshot (1) Screenshot (2) Illustratie 19: Environment mapped bump mapping. De environment map is van Paul Debevec.[29] Eén van de beperkingen van huidige GPUs met betrekking tot environment mapping is dat de zijden van een cube map onafhankelijk van elkaar gefilterd worden. Hierdoor zijn aan de rand van de zijden van de kubus de naden tussen de textures zichtbaar, omdat hier eigenlijk tussen de Illustratie 20: Naden tussen de verschillende zijden gefilterd zou moeten worden (bovenste plaatje illustratie 20). Een oplossing die wordt aangedragen voor dit probleem is zijden van een cube map. het gebruik van zogenaamde texture borders. Hierbij wordt een extra rand van 1 pixel om de textures van de zijden van de cube map aangebracht om zo een vloeiende overgang te creëren. Deze pixels 36

37 worden gekopieerd uit de aanliggende zijden. Helaas worden dit soort texture borders door de meeste GPUs niet ondersteund. De oplossing die ik heb gebruikt is een speciale clamp mode (GL_CLAMP_TO_EDGE), waardoor de texels aan de rand van een zijde worden herhaald (onderste plaatje illustratie 20). Helaas werkt dit niet met alle environment maps even goed, omdat alleen de zijden zelf nu goed worden gefilterd, maar er nog steeds niet tussen de zijden van de kubus wordt gefilterd Distance mapping Als methode voor weergave van microgeometrie heb ik distance mapping geïmplementeerd, zoals besproken in De implementatie is voldoende nauwkeurig voor een goede kwaliteit met de gebruikte voorbeelden (zie illustratie 21). Het is mij niet gelukt de door Donnelly voorgestelde methode voor het berekenen van de displacement map te implementeren. De displacement map had daarbij teveel onregelmatigheden voor bruikbare resultaten. Daarom heb ik besloten om een brute force methode te gebruiken. Zoals beschreven in het artikel van Donnelly [24] heb ik distance mapping gecombineerd met normal mapping voor de belichting. Indien we distance mapping gaan gebruiken voor interactieve weergave van schilderijen, zal normal mapping worden vervangen door het reflectiemodel van een SBRDF. Dit maakt voor de distance mapping implementatie niet uit. Distance mapping is een zeer recente techniek die hoge eisen stelt aan de grafische chip. De ray marching methode die de basis vormt van distance Illustratie 21: Distance mapping wordt geïmplementeerd met herhaalde texture indexering, wat mapping. zogenaamde texture dependencies (ook wel texture indirections) tot gevolg heeft. Dit betekent dat de index van een texture afhankelijk is van een vorige texture lookup. De meeste grafische chips ondersteunen slechts een beperkt aantal van deze texture dependencies in een fragment program. Dit betekent dat ik maximaal 4 iteraties per rendering pass kon uitvoeren op een ATI Radeon 9600XT. Helaas was het beschikbare aantal iteraties onvoldoende voor een redelijke kwaliteit. Daarom heb ik multi pass rendering geïmplementeerd om in totaal 9 iteraties in 3 rendering passes te berekenen. Een ander probleem waar ik tegen aan gelopen ben is het feit dat bij multi pass rendering er niet uit dezelfde buffer gelezen kan worden als waar in geschreven wordt. Dit komt doordat de meeste grafische chips aparte read (texture) cache en write buffers hebben die om performance redenen volledig zijn gescheiden. Helaas was het probleem niet meteen duidelijk, omdat er geen foutmelding wordt gegenereerd, maar de resultaten onbetrouwbaar zijn. 37

38 Om het geheugengebruik van de distance map te beperken bevat deze een beperkt aantal diepte niveaus. In het algemeen bieden 32 diepte niveaus voldoende nauwkeurigheid voor een redelijke kwaliteit. De waarden tussen deze niveaus worden automatisch berekend door de GPU middels lineaire interpolatie. Dit laatste kan helaas voor artefacten zorgen, vooral bij gekromde oppervlakken (zie illustratie 22). Om dit probleem op te lossen zou ik het algoritme van Donnelly kunnen aanpassen, waarbij de height map ook tijdens het renderen wordt gebruikt om de werkelijke geometrie Illustratie 22: Artefacten door beter te benaderen. Het lijkt mij echter onwaarschijnlijk dat de kleine lineaire interpolatie tussen 16 hoogteverschillen van schilderijen ook dergelijke artefacten opleveren. diepte niveaus (detail). 7.3 HDR images Een probleem van representatie van environment maps is dat lichtbronnen en spiegelende reflecties van lichtbronnen vaak een veel hogere intensiteit hebben dan de rest van de omgeving. Een standaard 8 bit representatie is onvoldoende om plaatjes met een dergelijk groot dynamische bereik weer te geven. Hiervoor dienen zogenaamde HDR (High Dynamic Range) images te worden gebruikt.[30] In deze paragraaf zal ik het nut van HDR environment maps voor SBRDF rendering bespreken. Voor het renderen van een SBRDF volgens de methode van McAllister is pre filtering van de environment map nodig. Hiervoor heb ik een programma geschreven om convoluties van environment maps met een cosinus lob te berekenen. Dit programma bepaalt met brute force de convolutie beschreven in Voor iedere pixel in de geconvolueerde environment map worden alle pixels in de environment map gebruikt. Door de convolutie te implementeren als een fragment program op de GPU kost dit toch maar enkele minuten voor een environment map met zijden van 256 bij 256. Het belang van HDR voor acquisitie van de environment map is dat felle lichtbronnen anders niet goed worden gerepresenteerd. Bij beperking van de pixel waarden van een plaatje tot 8 bit worden deze hoge pieken afgekapt. Het effect op het resultaat van een convolutie is duidelijk te zien in illustratie 23. HDR Geen HDR Illustratie 23: Het belang van HDR voor convoluties van environment maps. De environment map is St.Peters van Paul Debevec.[29], de convoluties heb ik zelf berekend. 38

39 Voor het renderen van een SBRDF gebaseerd op het model van Lafortune zijn alleen de geconvolueerde environment maps nodig. Het voordeel hiervan is dat de geconvolueerde environment maps een (veel) lager dynamisch bereik hebben dan de environment map zelf (zie tabel 1). Dit komt doordat de convolutie werkt als een low pass filter die de hoge pieken afvlakt. Convolutie (exponent n) Min. Waarde Max. Waarde origineel n=1.0 n=4.0 n=16.0 0, ,0 0,303 1,6 0,264 2,2 0,160 4,6 n=64.0 n= ,077 0,034 Dynamisch bereik ,3 44, Tabel 1: Dynamisch bereik na convolutie van de St.Peters environment map. Tabel 2 geeft een overzicht van verschillende RGB formaten voor rendering van environment maps. Een goede keus is het RGB16 formaat met een geschikte schaalfactor. Dit formaat biedt voldoende dynamisch bereik voor geconvolueerde environment maps en wordt door vrijwel alle recente grafische kaarten ondersteund, zelfs op oudere GeForce kaarten met een klein verschil (GL_HILO16_NV). OpenGL format RGB8 RGB16 RGB16F_ARB RGB32F_ARB Bytes pixel Min. Waarde Max. Waarde , , Dynamisch bereik , , ATI Radeon (T/MX1800) Textures Filteren Ja Ja Nee Nee Nvidia GeForce (T/M7800) Textures Filteren Ja Ja Nee Tabel 2: Dynamisch bereik en hardware ondersteuning van verschillende RGB formaten. De floating point formaten bieden een nog groter dynamisch bereik, maar gebrek aan efficiënte filtering maakt deze praktisch minder geschikt. Bovendien is de interne nauwkeurigheid van grafische chips beperkt, waardoor het verschil met het RGB16 formaat waarschijnlijk kleiner is dan je op basis van deze cijfers zou verwachten. 7.4 Beperkingen grafische chips Tijdens het implementeren van de in dit hoofdstuk genoemde algoritmen ben ik tegen een aantal beperkingen van grafische chips aangelopen. Voor de meeste van deze beperkingen heb ik een oplossing kunnen vinden. Hieronder volgt een samenvatting van deze beperkingen. Enkele waargenomen beperkingen en oplossingen: Cube map filtering Door het onafhankelijk van elkaar filteren van de zijden van een cube map worden de naden tussen de zijden zichtbaar. Het gebruik van een texture border (één extra pixel rand) is praktisch geen oplossing, omdat de meeste GPUs dit niet ondersteunen. Een praktische oplossing is het gebruik van een speciale clamp mode (GL_CLAMP_TO_EDGE). In combinatie met een cube map van een niet te lage resolutie maakt dit de naden zo goed als onzichtbaar. 39

Lijnen, vlakken, normaalvector, shading

Lijnen, vlakken, normaalvector, shading Lijnen, vlakken, normaalvector, shading Inproduct (dotproduct Parametervoorstelling en vergelijking Uitproduct (crossproduct Normaalvector Flat shading en Gouraud shading Opgaven /7 Februari, 05 Definitie

Nadere informatie

Lineaire afbeeldingen

Lineaire afbeeldingen Les 2 Lineaire afbeeldingen Als een robot bij de robocup (het voetbaltoernooi voor robots een doelpunt wil maken moet hij eerst in de goede positie komen, d.w.z. geschikt achter de bal staan. Hiervoor

Nadere informatie

IN2905-I Computer Graphics 18 juni 2008, uur.

IN2905-I Computer Graphics 18 juni 2008, uur. TECHNISCHE UNIVERSITEIT DELFT Faculteit Elektrotechniek, Wiskunde en Informatica Afdeling Mediamatica IN95-I Computer Graphics 8 juni 8, 4. - 7. uur. Dit is een tentamen met 3 meerkeuzevragen Het aantal

Nadere informatie

BK Licht en Renderen Workshop 3 Technisch Ontwerp en Informatica

BK Licht en Renderen Workshop 3 Technisch Ontwerp en Informatica BK3070 - Licht en Renderen Workshop 3 Wat is Renderen? To render: give an interpretation or rendition of... In Computer Graphics: To transform digital information in the form received from a repository

Nadere informatie

Vectoren bij reflectie van licht. Belichting. Materiaaleigenschappen. Diffuse reflection

Vectoren bij reflectie van licht. Belichting. Materiaaleigenschappen. Diffuse reflection Belichting Kleuren van oppervlakken: resultaat van een complexe interactie tussen licht en materie. Belichtingsmodellen: Licht: empirisch: berekeningen in overeenstemming met de waarneming fysica wetten:

Nadere informatie

BK3070 Rendering en Licht. BK Renderen en licht

BK3070 Rendering en Licht. BK Renderen en licht BK3070 Rendering en Licht 1 Wat is Renderen? To render: give an interpretation or rendition of... In Computer Graphics: To transform digital information in the form received from a repository into a display

Nadere informatie

Next-gen level in Unity

Next-gen level in Unity Tijdens de les behandeld (3D periode 4 jaar 2 2011/2012) Next-gen level in Unity Naamgeving en mappenstructuur De mappenstructuur en benaming van de verschillende assets bij het maken van een van een next-gen

Nadere informatie

Raamwerk voor Optimale Globale Belichting

Raamwerk voor Optimale Globale Belichting Raamwerk voor Optimale Globale Belichting Lukas Latacz Mathieu De Zutter Departement Computer Graphics K.U.Leuven 18 april 2005 Overzicht 1 Inleiding Situering Probleemstelling Vorig werk 2 Nieuw raamwerk

Nadere informatie

Parking Surveillance. foreground/background segmentation - objectherkenning. Examen Beeldverwerking Pieter Vancoillie

Parking Surveillance. foreground/background segmentation - objectherkenning. Examen Beeldverwerking Pieter Vancoillie Parking Surveillance foreground/background segmentation - objectherkenning Examen Beeldverwerking Pieter Vancoillie Doel van het (deel)project Uit beelden van een camera voetgangers, fietsers en auto s

Nadere informatie

Samenhang in Morfologische Beeldanalyse

Samenhang in Morfologische Beeldanalyse Samenhang in Morfologische Beeldanalyse Michael H. F. Wilkinson Instituut voor Wiskunde en Informatica Rijksuniversiteit Groningen Overzicht Wat is mathematische morfologie? Connected Filters Basis idee

Nadere informatie

Uitleg. Welkom bij de Beverwedstrijd 2006. Je krijgt 15 vragen, die je in maximaal 45 minuten moet beantwoorden.

Uitleg. Welkom bij de Beverwedstrijd 2006. Je krijgt 15 vragen, die je in maximaal 45 minuten moet beantwoorden. Uitleg Welkom bij de Beverwedstrijd 2006 Je krijgt 15 vragen, die je in maximaal 45 minuten moet beantwoorden. Je krijgt 5 vragen van niveau A, 5 vragen van niveau B en 5 vragen van niveau C. Wij denken

Nadere informatie

Verbanden en functies

Verbanden en functies Verbanden en functies 0. voorkennis Stelsels vergelijkingen Je kunt een stelsel van twee lineaire vergelijkingen met twee variabelen oplossen. De oplossing van het stelsel is het snijpunt van twee lijnen.

Nadere informatie

3. Structuren in de taal

3. Structuren in de taal 3. Structuren in de taal In dit hoofdstuk behandelen we de belangrijkst econtrolestructuren die in de algoritmiek gebruikt worden. Dit zijn o.a. de opeenvolging, selectie en lussen (herhaling). Vóór we

Nadere informatie

Vectoren, matrices en beeld. Figuur: Lena. Albert-Jan Yzelman

Vectoren, matrices en beeld. Figuur: Lena. Albert-Jan Yzelman Vectoren, matrices en beeld Figuur: Lena Vectoren, matrices en beeld Hoe coderen we foto s zodat ze te gebruiken zijn op computers? Wat verwachten we van de bestandsgrootte? Hoe verkleinen we de benodigde

Nadere informatie

n-queens minimale dominantie verzamelingen Chessboard Domination on Programmable Graphics Hardware door Nathan Cournik

n-queens minimale dominantie verzamelingen Chessboard Domination on Programmable Graphics Hardware door Nathan Cournik n-queens minimale dominantie verzamelingen Chessboard Domination on Programmable Graphics Hardware door Nathan Cournik Rick van der Zwet 4 augustus 2010 Samenvatting Dit schrijven zal

Nadere informatie

Tentamen 2IV10 Computergrafiek

Tentamen 2IV10 Computergrafiek Tentamen IV Computergrafiek 8 augustus 8, 4:-7: uur Dit tentamen bestaat uit vier vragen met in totaal 5 deelvragen. Elke deelvraag weegt even zwaar. In alle gevallen geldt: LICHT UW ANTWOORD TOE. Gebruik

Nadere informatie

The Color of X-rays. Spectral Computed Tomography Using Energy Sensitive Pixel Detectors E.J. Schioppa

The Color of X-rays. Spectral Computed Tomography Using Energy Sensitive Pixel Detectors E.J. Schioppa The Color of X-rays. Spectral Computed Tomography Using Energy Sensitive Pixel Detectors E.J. Schioppa Samenvatting Het netvlies van het oog is niet gevoelig voor deze straling: het oog dat vlak voor het

Nadere informatie

Tips en Trucs Artlantis Shaders, Bump-, Normal Map, 3D effect Objects maken

Tips en Trucs Artlantis Shaders, Bump-, Normal Map, 3D effect Objects maken Tips en Trucs Artlantis Shaders, Bump-, Normal Map, 3D effect Objects maken Als startende architect wil je graag zo goed mogelijk voor de dag komen Gebaseerd op ARTLANTIS v. 5.x TIPS & TRUCS - I Render

Nadere informatie

Recognition and Detection of Objects Using Visual and Textual Cues S. Karaoğlu

Recognition and Detection of Objects Using Visual and Textual Cues S. Karaoğlu Recognition and Detection of Objects Using Visual and Textual Cues S. Karaoğlu Samenvatting Met dit proefschrift richten we onze aandacht op object herkenning en detectie voor een beter begrip in afbeeldingen.

Nadere informatie

Wat is een digitale foto

Wat is een digitale foto Inleiding: basiskennis We beoefenen allemaal de fotografie in de hobbysfeer. Sommigen al jaren, anderen sinds kort. Maar we weten allemaal wat een camera is, en een computer, en een printer. We weten allemaal

Nadere informatie

We zien dus soms grote contrast omvangen bij onderwerpen, hoofdzakelijk veroorzaakt door verschillen in verlichting.

We zien dus soms grote contrast omvangen bij onderwerpen, hoofdzakelijk veroorzaakt door verschillen in verlichting. LOW DYNAMIC RESOLUTION Het kleine broertje van High Dynamic Resolution We zien dat deze technieken steeds meer toegepast worden, maar waarom eigenlijk, en wat hebben we er aan? HET WAAROM Over het algemeen

Nadere informatie

www.ontmoeting.nl ISBN: 978-90-8814-040-2 NUR-code: 648 Bouwkunst, Architectuur 1 ed. Uitgeverij Ontmoeting, Huizen, NH * Materialen *Texturen

www.ontmoeting.nl ISBN: 978-90-8814-040-2 NUR-code: 648 Bouwkunst, Architectuur 1 ed. Uitgeverij Ontmoeting, Huizen, NH * Materialen *Texturen Gebaseerd op ARTLANTIS v. 5.x TIPS & TRUCS - I Render programma Uitgeverij Ontmoeting, Huizen, NH www.ontmoeting.nl * Materialen *Texturen *Zelf Shaders maken * Bump maps * Normal maps * 3D effecten *

Nadere informatie

De bepaling van de positie van een. onderwatervoertuig (inleiding)

De bepaling van de positie van een. onderwatervoertuig (inleiding) De bepaling van de positie van een onderwatervoertuig (inleiding) juli 2006 Bepaling positie van een onderwatervoertuig. Inleiding: Het volgen van onderwatervoertuigen (submersibles, ROV s etc) was in

Nadere informatie

A. Wat zijn digitale afbeeldingen? B. Bitonaal, grijswaarden of kleur en de bitdiepte C. Resolutie, bestandsgrootte, compressie en bestandsformaten

A. Wat zijn digitale afbeeldingen? B. Bitonaal, grijswaarden of kleur en de bitdiepte C. Resolutie, bestandsgrootte, compressie en bestandsformaten CURSUS DIGITAAL ATELIER AFBEELDINGEN A. Wat zijn digitale afbeeldingen? B. Bitonaal, grijswaarden of kleur en de bitdiepte C. Resolutie, bestandsgrootte, compressie en bestandsformaten A. Wat zijn digitale

Nadere informatie

voor hoge resolutie astrofotografie

voor hoge resolutie astrofotografie voor hoge resolutie astrofotografie 1: hoe komt de kleurinformatie tot stand bij digitale fotografie 2: bouw van de camera 3: resultaten Hoe komt de kleurinformatie tot stand? De pixels van een ccd zijn

Nadere informatie

DEC SDR DSP project 2017 (2)

DEC SDR DSP project 2017 (2) DEC SDR DSP project 2017 (2) Inhoud: DSP software en rekenen Effect van type getallen (integer, float) Fundamenten onder DSP Lezen van eenvoudige DSP formules x[n] Lineariteit ( x functie y dus k maal

Nadere informatie

Wiskunde voor relativiteitstheorie

Wiskunde voor relativiteitstheorie Wiskunde voor relativiteitstheorie HOVO Utrecht Les 1: Goniometrie en vectoren Dr. Harm van der Lek vdlek@vdlek.nl Natuurkunde hobbyist Overzicht colleges 1. College 1 1. Goniometrie 2. Vectoren 2. College

Nadere informatie

x cos α y sin α . (1) x sin α + y cos α We kunnen dit iets anders opschrijven, namelijk als x x y sin α

x cos α y sin α . (1) x sin α + y cos α We kunnen dit iets anders opschrijven, namelijk als x x y sin α Lineaire afbeeldingen Rotatie in dimensie 2 Beschouw het platte vlak dat we identificeren met R 2 Kies een punt P in dit vlak met coördinaten (, y) Stel dat we het vlak roteren met de oorsprong (0, 0)

Nadere informatie

Oefeningenles beeldverwerking

Oefeningenles beeldverwerking Oefeningenles beeldverwerking Histogram Wat is een histogram hoe kunnen we een histogram opstellen? Welke afbeelding hoort bij welk histogram? Waarom? Een histogram geeft voor elke grijswaarde het aantal

Nadere informatie

Deel 1. Wat is HDR fotografie?.

Deel 1. Wat is HDR fotografie?. Deel 1. Wat is HDR fotografie?. Inleiding. Met het intrede van de digitale fotografie is ook de beeldbewerkingsoftware in een stroomversnelling geraakt. Eén van de meest recente ontwikkelingen is de High

Nadere informatie

FACULTEIT ECONOMIE EN BEDRIJFSKUNDE Afdeling Kwantitatieve Economie

FACULTEIT ECONOMIE EN BEDRIJFSKUNDE Afdeling Kwantitatieve Economie FACULTEIT ECONOMIE EN BEDRIJFSKUNDE Afdeling Kwantitatieve Economie Lineaire Algebra, tentamen Uitwerkingen vrijdag 4 januari 0, 9 uur Gebruik van een formuleblad of rekenmachine is niet toegestaan. De

Nadere informatie

RAW. Het idee er achter en wat moet je ermee?

RAW. Het idee er achter en wat moet je ermee? RW Het idee er achter en wat moet je ermee? Op het forum zie je steeds weer de discussie wat is nu beter, dan wel het verschil tussen RW, JPEG en TIFF als foto bestand. Om dit beter te kunnen beoordelen

Nadere informatie

Morenaments Ornamenten met symmetrie. Werkblad vooraf met begeleidende tekst en oplossingen

Morenaments Ornamenten met symmetrie. Werkblad vooraf met begeleidende tekst en oplossingen Morenaments Ornamenten met symmetrie Fien Aelter, Liesje Knaepen en Kristien Vanhuyse, studenten SLO wiskunde KU Leuven Werkblad vooraf met begeleidende tekst en oplossingen Dit werklad is een voorbereiding

Nadere informatie

Computer Vision: Hoe Leer ik een Computer Zien?

Computer Vision: Hoe Leer ik een Computer Zien? Computer Vision: Hoe Leer ik een Computer Zien? Michael H.F. Wilkinson Instituut voot Wiskunde en Informatica Rijksuniversiteit Groningen 27 April 2006 Overzicht 1 of 19 Wat is Computer Vision? Wat zijn

Nadere informatie

1 Rekenen in eindige precisie

1 Rekenen in eindige precisie Rekenen in eindige precisie Een computer rekent per definitie met een eindige deelverzameling van getallen. In dit hoofdstuk bekijken we hoe dit binnen een computer is ingericht, en wat daarvan de gevolgen

Nadere informatie

Lineaire algebra en analytische meetkunde

Lineaire algebra en analytische meetkunde Lineaire algebra en analytische meetkunde John Val August 1, 11 Inhoud 1 Projectieve meetkunde 1 i Inhoud 1 Projectieve meetkunde Figure 1: De blik op oneindig Snijden de spoorstaven? Een vloer van gelijke

Nadere informatie

Wiskunde voor relativiteitstheorie

Wiskunde voor relativiteitstheorie Wiskunde voor relativiteitstheorie Utrecht Les : Goniometrie en vectoren Dr. Harm van der Lek vdlek@vdlek.nl Natuurkunde hobbyist verzicht colleges. College. Goniometrie 2. Vectoren 2. College 2. Matrixen

Nadere informatie

Non Diffuse Point Based Global Illumination

Non Diffuse Point Based Global Illumination Non Diffuse Point Based Global Illumination Karsten Daemen Thesis voorgedragen tot het behalen van de graad van Master of Science in de ingenieurswetenschappen: computerwetenschappen Promotor: Prof. dr.

Nadere informatie

Computer Graphics (in2770) 3 november 2005, uur. Dit tentamen bestaat uit 30 opgaven Totaal aantal bladzijden: 11

Computer Graphics (in2770) 3 november 2005, uur. Dit tentamen bestaat uit 30 opgaven Totaal aantal bladzijden: 11 TECHNISCHE UNIVERSITEIT DELFT Faculteit Elektrotechniek, Wiskunde en Informatica Afdeling Mediamatica Computer Graphics (in77) 3 november 5, 9. -. uur N.B.: Dit tentamen bestaat uit 3 opgaven Totaal aantal

Nadere informatie

Cover Page. The handle holds various files of this Leiden University dissertation

Cover Page. The handle  holds various files of this Leiden University dissertation Cover Page The handle http://hdl.handle.net/1887/28464 holds various files of this Leiden University dissertation Author: Jeroen Bédorf Title: The gravitational billion body problem / Het miljard deeltjes

Nadere informatie

Complexe eigenwaarden

Complexe eigenwaarden Complexe eigenwaarden Tot nu toe hebben we alleen reële getallen toegelaten als eigenwaarden van een matrix Het is echter vrij eenvoudig om de definitie uit te breiden tot de complexe getallen Een consequentie

Nadere informatie

Tentamen 2IV10 Computergrafiek

Tentamen 2IV10 Computergrafiek Tentamen IV0 Computergrafiek april 0, 4:00-7:00 uur Dit tentamen bestaat uit vier vragen met in totaal 6 deelvragen. Elke deelvraag eegt even zaar. In alle gevallen geldt: LICHT UW ANTWOORD TOE. Gebruik

Nadere informatie

VISUALISATIE VAN KROMMEN EN OPPERVLAKKEN. 1. Inleiding

VISUALISATIE VAN KROMMEN EN OPPERVLAKKEN. 1. Inleiding VISUALISATIE VAN KROMMEN EN OPPERVLAKKEN IGNACE VAN DE WOESTNE. Inleiding In diverse wetenschappelijke disciplines maakt men gebruik van functies om fenomenen of processen te beschrijven. Hiervoor biedt

Nadere informatie

3D Topografie. Inhoud presentatie

3D Topografie. Inhoud presentatie 3D Topografie Promotie-onderzoek naar een 3D datamodellering Studiedag 3D Topografie 03 April 2007 1 ir. Friso Penninga sectie GIS Technologie Onderzoeksinstituut OTB Technische Universiteit Delft Inhoud

Nadere informatie

Werkblad Cabri Jr. Vermenigvuldigen van figuren

Werkblad Cabri Jr. Vermenigvuldigen van figuren Werkblad Cabri Jr. Vermenigvuldigen van figuren Doel Het onderzoeken van de vermenigvuldigingsafbeelding (homothetie) en het bekijken van de relaties tussen het origineel en het beeld van een meetkundige

Nadere informatie

Onafhankelijke verzamelingen en Gewogen Oplossingen, door Donald E. Knuth, The Art of Computer Programming, Volume 4, Combinatorial Algorithms

Onafhankelijke verzamelingen en Gewogen Oplossingen, door Donald E. Knuth, The Art of Computer Programming, Volume 4, Combinatorial Algorithms Onafhankelijke verzamelingen en Gewogen Oplossingen, door Donald E. Knuth, The Art of Computer Programming, Volume 4, Combinatorial Algorithms Giso Dal (0752975) Pagina s 5 7 1 Deelverzameling Representatie

Nadere informatie

Inhoud. Inleiding computer graphics. Introductie 11. Leerkern 14. Terugkoppeling 57. Uitwerking van de opgaven 57

Inhoud. Inleiding computer graphics. Introductie 11. Leerkern 14. Terugkoppeling 57. Uitwerking van de opgaven 57 Inhoud Inleiding computer graphics Introductie 11 Leerkern 14 1 Invoer en opslag van 3D objecten 14 2 Ray tracing 18 2.1 Basisprincipe van ray tracing 18 2.2 Secundaire stralen 20 2.3 Intersectieberekeningen

Nadere informatie

Cover Page. The handle holds various files of this Leiden University dissertation.

Cover Page. The handle  holds various files of this Leiden University dissertation. Cover Page The handle http://hdl.handle.net/1887/29764 holds various files of this Leiden University dissertation. Author: Takes, Frank Willem Title: Algorithms for analyzing and mining real-world graphs

Nadere informatie

te vermenigvuldigen, waarbij N het aantal geslagen Nederlandse munten en B het aantal geslagen buitenlandse munten zijn. Het resultaat is de vector

te vermenigvuldigen, waarbij N het aantal geslagen Nederlandse munten en B het aantal geslagen buitenlandse munten zijn. Het resultaat is de vector Les 3 Matrix product We hebben gezien hoe we matrices kunnen gebruiken om lineaire afbeeldingen te beschrijven. Om het beeld van een vector onder een afbeelding te bepalen hebben we al een soort product

Nadere informatie

vandaag is Annie twee jaar jonger dan Ben en Cees samen

vandaag is Annie twee jaar jonger dan Ben en Cees samen Hoofdstuk I Lineaire Algebra Les 1 Stelsels lineaire vergelijkingen Om te beginnen is hier een puzzeltje: vandaag is Annie twee jaar jonger dan Ben en Cees samen over vijf jaar is Annie twee keer zo oud

Nadere informatie

Stralende teksteffecten

Stralende teksteffecten 1.STRALENDE TEKSTEFFECTEN Leer hoe je een filmisch belicht letterbouwwerk maakt met het gereedschap tekst, verschillende filters en aanpassingen. 1.Startfoto :creëer om te beginnen een leeg canvas via

Nadere informatie

Combinatorische Algoritmen: Binary Decision Diagrams, Deel III

Combinatorische Algoritmen: Binary Decision Diagrams, Deel III Combinatorische Algoritmen: Binary Decision Diagrams, Deel III Sjoerd van Egmond LIACS, Leiden University, The Netherlands svegmond@liacs.nl 2 juni 2010 Samenvatting Deze notitie beschrijft een nederlandse

Nadere informatie

ONBETWIST ONderwijs verbeteren met WISkunde Toetsen Voorbeeldtoetsen Lineaire Algebra Deliverable 3.10 Henk van der Kooij ONBETWIST Deliverable 3.

ONBETWIST ONderwijs verbeteren met WISkunde Toetsen Voorbeeldtoetsen Lineaire Algebra Deliverable 3.10 Henk van der Kooij ONBETWIST Deliverable 3. ONBETWIST ONderwijs verbeteren met WISkunde Toetsen Voorbeeldtoetsen Lineaire Algebra Deliverable 3.10 Henk van der Kooij ONBETWIST Deliverable 3.8 ONBETWIST ONderwijs verbeteren met WISkunde Toetsen Inleiding

Nadere informatie

Naast High Dynamic Resolution (HDR), zien we dat deze technieken steeds meer toegepast kan worden, maar waarom eigenlijk, en wat hebben we er aan?

Naast High Dynamic Resolution (HDR), zien we dat deze technieken steeds meer toegepast kan worden, maar waarom eigenlijk, en wat hebben we er aan? LOW DYNAMIC RESOLUTION Het kleine broertje van High Dynamic Resolution Naast High Dynamic Resolution (HDR), zien we dat deze technieken steeds meer toegepast kan worden, maar waarom eigenlijk, en wat hebben

Nadere informatie

Uitgebreid eindwerkvoorstel Lokaliseren van personen en objecten met behulp van camera s

Uitgebreid eindwerkvoorstel Lokaliseren van personen en objecten met behulp van camera s Uitgebreid eindwerkvoorstel Lokaliseren van personen en objecten met behulp van camera s Sofie De Cooman 21 December 2006 Stagebedrijf: Interne begeleider: Externe begeleider: BarcoView Koen Van De Wiele

Nadere informatie

More points, lines, and planes

More points, lines, and planes More points, lines, and planes Make your own pictures! 1. Lengtes en hoeken In het vorige college hebben we het inwendig product (inproduct) gedefinieerd. Aan de hand daarvan hebben we ook de norm (lengte)

Nadere informatie

TECHNISCHE UNIVERSITEIT EINDHOVEN FACULTEIT DER TECHNISCHE NATUURKUNDE

TECHNISCHE UNIVERSITEIT EINDHOVEN FACULTEIT DER TECHNISCHE NATUURKUNDE @! TECHNISCHE UNIVERSITEIT EINDHOVEN FACULTEIT DER TECHNISCHE NATUURKUNDE Tentamen Computers bij fysische experimenten (3BB0) op donderdag 3 november 006, 10:30-1:00 Het tentamen duurt 90 minuten en wordt

Nadere informatie

Scann3rD. Kayle Knops en Gijs Creugers

Scann3rD. Kayle Knops en Gijs Creugers Scann3rD 1 2 Scann3rD Kayle Knops en Gijs Creugers 3 Schrijvers: Kayle Knops en Gijs Creugers 2014 Gijs Creugers en Kayle Knops ISBN: 9789402116625 Gijs Creugers Kayle Knops gijscreugers@gmail.com kayle.knops@gmail.com

Nadere informatie

Factor = het getal waarmee je de oude hoeveelheid moet vermenigvuldigen om een nieuwe hoeveelheid te krijgen.

Factor = het getal waarmee je de oude hoeveelheid moet vermenigvuldigen om een nieuwe hoeveelheid te krijgen. Samenvatting door een scholier 1569 woorden 23 juni 2017 5,8 6 keer beoordeeld Vak Methode Wiskunde Moderne wiskunde Wiskunde H1 t/m H5 Hoofdstuk 1 Factor = het getal waarmee je de oude hoeveelheid moet

Nadere informatie

Uitleg van de Hough transformatie

Uitleg van de Hough transformatie Uitleg van de Hough transformatie Maarten M. Fokkinga, Joeri van Ruth Database groep, Fac. EWI, Universiteit Twente Versie van 17 mei 2005, 10:59 De Hough transformatie is een wiskundige techniek om een

Nadere informatie

Opdracht 3: Baanintegratie: Planeet in een dubbelstersysteem

Opdracht 3: Baanintegratie: Planeet in een dubbelstersysteem PLANETENSTELSELS - WERKCOLLEGE 3 EN 4 Opdracht 3: Baanintegratie: Planeet in een dubbelstersysteem In de vorige werkcolleges heb je je pythonkennis opgefrist. Je hebt een aantal fysische constanten ingelezen,

Nadere informatie

Wiskunde Vraag 1. Vraag 2. Vraag 3. Vraag 4 21/12/2008

Wiskunde Vraag 1. Vraag 2. Vraag 3. Vraag 4 21/12/2008 Wiskunde 007- //008 Vraag Veronderstel dat de concentraties in het bloed van stof A en van stof B omgekeerd evenredig zijn en positief. Als de concentratie van stof A met p % toeneemt, dan zal de concentratie

Nadere informatie

Opgaven bij de cursus Relativiteitstheorie wiskunde voorkennis Najaar 2018 Docent: Dr. H. (Harm) van der Lek

Opgaven bij de cursus Relativiteitstheorie wiskunde voorkennis Najaar 2018 Docent: Dr. H. (Harm) van der Lek Opgaven bij de cursus Relativiteitstheorie wiskunde voorkennis Najaar 2018 Docent: Dr. H. (Harm) van der Lek Uitwerkingen worden beschikbaar gesteld op de dinsdagavond voorafgaande aan het volgende college

Nadere informatie

Face detection in color images Verslag. Domien Nowicki 0522689 Bjorn Schobben 0522953

Face detection in color images Verslag. Domien Nowicki 0522689 Bjorn Schobben 0522953 Face detection in color images Verslag Domien Nowicki 0522689 Bjorn Schobben 0522953 Inhoudstabel Inleiding... 3 Gezichtsdetectiealgoritme...3 Gezichtsmasker aanmaken...4 Belichting compensatie... 5 Niet-lineaire

Nadere informatie

Voorwoord. Als laatste dank aan Jonas Demeulenaere voor het nalezen van mijn tekst en de goede suggesties.

Voorwoord. Als laatste dank aan Jonas Demeulenaere voor het nalezen van mijn tekst en de goede suggesties. Voorwoord. Graag zou ik mijn begeleider ir. Bart Adams willen bedanken voor de goede begeleiding en raad die hij mij gegeven heeft tijdens het werken aan deze thesis. Vervolgens zou ik Dirk Hellemans willen

Nadere informatie

Antwoorden op de theoretische vragen in de examen voorbereiding

Antwoorden op de theoretische vragen in de examen voorbereiding Antwoorden op de theoretische vragen in de examen voorbereiding Theorie vraag Zij A een m n-matrix. Geef het verband tussen de formule voor de dimensie d van een niet-strijdig stelsel, d = n rang (A) (zie

Nadere informatie

Aanvullingen bij Hoofdstuk 8

Aanvullingen bij Hoofdstuk 8 Aanvullingen bij Hoofdstuk 8 8.5 Definities voor matrices De begrippen eigenwaarde eigenvector eigenruimte karakteristieke veelterm en diagonaliseerbaar worden ook gebruikt voor vierkante matrices los

Nadere informatie

5,7. Samenvatting door een scholier 903 woorden 28 september keer beoordeeld. Informatica. Samenvatting Informatica Hoofdstuk 2

5,7. Samenvatting door een scholier 903 woorden 28 september keer beoordeeld. Informatica. Samenvatting Informatica Hoofdstuk 2 Samenvatting door een scholier 903 woorden 28 september 2006 5,7 24 keer beoordeeld Vak Informatica Samenvatting Informatica Hoofdstuk 2 2.1 Teken en betekenis Uit welke 2 delen bestaat informatie? Betekenis

Nadere informatie

Hardware. Word. Anna van Kommer M3A

Hardware. Word. Anna van Kommer M3A Hardware Word Anna van Kommer M3A Inhoudsopgave Pagina Inleiding... 2 Hoofdstuk 1: Het Beeldscherm... 3 Hoofdstuk 2: De processor... 4 Hoofdstuk 3: Het geheugen... 5 Hoofdstuk 4: De harde schijf... 6 Hoofdstuk

Nadere informatie

-- V HOOFDSTUK V STORINGSREKENING

-- V HOOFDSTUK V STORINGSREKENING -- V - 1 - HOOFDSTUK V STORINGSREKENING Storingsrekening is een in eerste benadering goedkopere methode dan variatierekening. Indien de storingsreeks convergeert, is het in principe net zo exact als variatierekening.

Nadere informatie

x = b 1 x 1 , b = x n b m i,j=1,1 en een vector [x j] n j=1 m n a i,j x j j=1 i=1

x = b 1 x 1 , b = x n b m i,j=1,1 en een vector [x j] n j=1 m n a i,j x j j=1 i=1 WIS9 9 Matrixrekening 9 Vergelijkingen Stelsels lineaire vergelijkingen Een stelsel van m lineaire vergelijkingen in de n onbekenden x, x 2,, x n is een stelsel vergelijkingen van de vorm We kunnen dit

Nadere informatie

In Vlaanderen bestaat er nog geen leerlijn programmeren! Hierdoor baseren wij ons op de leerlijn die men in Nederland toepast voor basisscholen.

In Vlaanderen bestaat er nog geen leerlijn programmeren! Hierdoor baseren wij ons op de leerlijn die men in Nederland toepast voor basisscholen. Leerlijn programmeren In Vlaanderen bestaat er nog geen leerlijn programmeren! Hierdoor baseren wij ons op de leerlijn die men in Nederland toepast voor basisscholen. Deze leerlijn is opgebouwd aan de

Nadere informatie

Beeldcompressie. VWO Masterclass 08. 21 oktober 2008

Beeldcompressie. VWO Masterclass 08. 21 oktober 2008 Beeldcompressie VWO Masterclass 08 21 oktober 2008 1 Voorbereiding In dit practicum doen we hetzelfde als in het hoorcollege (Fourier-transformatie op geluid), maar dan voor plaatjes. Jullie werken in

Nadere informatie

[Hanssen, 2001] R F Hanssen. Radar Interferometry: Data Interpretation and Error Analysis. Kluwer Academic Publishers, Dordrecht 2001.

[Hanssen, 2001] R F Hanssen. Radar Interferometry: Data Interpretation and Error Analysis. Kluwer Academic Publishers, Dordrecht 2001. Hoe werkt het? Beeldvormende radar maakt het mogelijk om dag en nacht, ook in bewolkte omstandigheden, het aardoppervlak waar te nemen vanuit satellieten. De radar zendt duizenden pulsen per seconde uit,

Nadere informatie

Instellingen. Gebruikersprofiel Via het gebruikersprofiel vul je jouw gegevens in. Volg de stappen en klik steeds op Volgende.

Instellingen. Gebruikersprofiel Via het gebruikersprofiel vul je jouw gegevens in. Volg de stappen en klik steeds op Volgende. Instellingen Apparaat wizard Via de apparaat wizard wijzig je het type trainer dat je wilt verbinden. Aan de hand van de afbeeldingen selecteer je de juiste trainer. Klik op Volgende en doorloop de vervolgstappen

Nadere informatie

Cover Page. The handle holds various files of this Leiden University dissertation.

Cover Page. The handle   holds various files of this Leiden University dissertation. Cover Page The handle http://hdl.handle.net/1887/39638 holds various files of this Leiden University dissertation. Author: Pelt D.M. Title: Filter-based reconstruction methods for tomography Issue Date:

Nadere informatie

Cover Page. The handle holds various files of this Leiden University dissertation

Cover Page. The handle   holds various files of this Leiden University dissertation Cover Page The handle http://hdl.handle.net/1887/39637 holds various files of this Leiden University dissertation Author: Smit, Laurens Title: Steady-state analysis of large scale systems : the successive

Nadere informatie

Fractale dimensie. Eline Sommereyns 6wwIi nr.9

Fractale dimensie. Eline Sommereyns 6wwIi nr.9 Fractale dimensie Eline Sommereyns 6wwIi nr.9 Inhoudstabel Inleiding... 3 Gehele dimensie... 4 Begrip dimensie... 4 Lengte, breedte, hoogte... 4 Tijd-ruimte... 4 Fractale dimensie... 5 Fractalen... 5 Wat?...

Nadere informatie

voor Blender v2.42a Software Box Bas van Dijk v1.1 februari 2007

voor Blender v2.42a Software Box Bas van Dijk v1.1 februari 2007 voor Blender v2.42a Software Box Bas van Dijk v1.1 februari 2007 Copyright (c) 2007 - Bas van Dijk Toestemming tot het kopiëren en verspreiden van dit document wordt verleend mits het document ongewijzigd

Nadere informatie

Spiegelzonnewijzers. H.J. Hollander, December 2009

Spiegelzonnewijzers. H.J. Hollander, December 2009 H.J. Hollander, December 2009 Spiegelzonnewijzers DE THEORIE Bekend zijn de zonnewijzers waarbij naar de schaduw van één specifiek punt gekeken wordt. Ligt dit punt op een poolstijl wordt ook wel van een

Nadere informatie

Wat is Computer Graphics?

Wat is Computer Graphics? Inleiding Wat is Computer Graphics? Wat is Computer Graphics? Computer user output vrijwel alles wat geen tekst of geluid is, incl. user interface Beperkt: het creëren en manipuleren van grafische informatie

Nadere informatie

4. Determinanten en eigenwaarden

4. Determinanten en eigenwaarden 4. Determinanten en eigenwaarden In dit hoofdstuk bestuderen we vierkante matrices. We kunnen zo n n n matrix opvatten als een lineaire transformatie van R n. We onderscheiden deze matrices in twee typen:

Nadere informatie

Verscherpen, verkleinen/vergroten en opslaan.

Verscherpen, verkleinen/vergroten en opslaan. Verscherpen, verkleinen/vergroten en opslaan. De stappen voor het beste eindresultaat. Begeleidend boekje bij workshop. Auteur: Olaf Oudendijk Versie: 1.0 Datum: mei 2010 Copyright: Olaf Oudendijk Olaf

Nadere informatie

Uitwerkingen tentamen 8C080 - april 2011

Uitwerkingen tentamen 8C080 - april 2011 Uitwerkingen tentamen 8C8 - april 211 Opgave 1. Mutual information Gegeven zijn twee 3D datasets van dezelfde patient, nl. een CT scan en een MRI scan van het hoofd. Grid im1 RandomInteger 1, 4, 5, 5,

Nadere informatie

Data Vision. Your partner in Vision Solutions

Data Vision. Your partner in Vision Solutions Data Vision Your partner in Vision Solutions Wie ben ik? Gaspar van Elmbt Account Manager - Data Vision Zuid Nederland + Belgisch Limburg Historie: - Bachelor Electrical Engineering - Hard & Software engineer

Nadere informatie

8. Complexiteit van algoritmen:

8. Complexiteit van algoritmen: 8. Complexiteit van algoritmen: Voorbeeld: Een gevaarlijk spel 1 Spelboom voor het wespenspel 2 8.1 Complexiteit 4 8.2 NP-problemen 6 8.3 De oplossing 7 8.4 Een vuistregel 8 In dit hoofdstuk wordt het

Nadere informatie

Computer Graphics (in2770) 15 juni 2004, uur. Dit tentamen bestaat uit 30 opgaven Totaal aantal bladzijden: 11

Computer Graphics (in2770) 15 juni 2004, uur. Dit tentamen bestaat uit 30 opgaven Totaal aantal bladzijden: 11 TECHNISCHE UNIVERSITEIT DELFT Faculteit Elektrotechniek, Wiskunde en Informatica Afdeling Mediamatica Computer Graphics (in77) 5 juni 4, 4. - 6. uur. N.B.: Dit tentamen bestaat uit 3 opgaven Totaal aantal

Nadere informatie

Wetenschappelijk Rekenen

Wetenschappelijk Rekenen Wetenschappelijk Rekenen Examen - Bacheloropleiding informatica Oefeningen 3 mei 23. Implementeer de functie x n+ = mod(2x n, ) waarbij je gebruik maakt van een voorstelling met reële getallen. Zorg er

Nadere informatie

2IV10 Oefentoets uitwerking

2IV10 Oefentoets uitwerking 2IV10 Oefentoets uitwerking Deze oefentoets bestaat uit drie opgaven, waarvoor twee uur beschikbaar is. Bij voldoende resultaat wordt een bonuspunt toegekend voor het tentamen. De opgaven betreffen een

Nadere informatie

Continuous Learning in Computer Vision S.L. Pintea

Continuous Learning in Computer Vision S.L. Pintea Continuous Learning in Computer Vision S.L. Pintea Continuous Learning in Computer Vision Natura non facit saltus. Gottfried Leibniz Silvia-Laura Pintea Intelligent Sensory Information Systems University

Nadere informatie

Eerste orde partiële differentiaalvergelijkingen

Eerste orde partiële differentiaalvergelijkingen Eerste orde partiële differentiaalvergelijkingen Vakgroep Differentiaalvergelijkingen 1995, 2001, 2002 1 Eerste orde golf-vergelijking De vergelijking au x + u t = 0, u = u(x, t), a ɛ IR (1.1) beschrijft

Nadere informatie

Trillingen en geluid wiskundig. 1 De sinus van een hoek 2 Uitwijking van een trilling berekenen 3 Macht en logaritme 4 Geluidsniveau en amplitude

Trillingen en geluid wiskundig. 1 De sinus van een hoek 2 Uitwijking van een trilling berekenen 3 Macht en logaritme 4 Geluidsniveau en amplitude Trillingen en geluid wiskundig 1 De sinus van een hoek 2 Uitwijking van een trilling berekenen 3 Macht en logaritme 4 Geluidsniveau en amplitude 1 De sinus van een hoek Eenheidscirkel In de figuur hiernaast

Nadere informatie

Hoofdstuk 3 - Transformaties

Hoofdstuk 3 - Transformaties Hoofdstuk - Transformaties Voorkennis: Standaardfuncties bladzijde 70 V-a f () = g () = sin h () = k () = log m () = n () = p () = b D f = [0, en B f = [0, ; D g = en B g =[, ] ; D h = en B h = 0, ; D

Nadere informatie

en-splitsingen: een aantal alternatieven worden parallel toegepast, of-splitsingen: van een aantal alternatieven wordt er één toegepast,

en-splitsingen: een aantal alternatieven worden parallel toegepast, of-splitsingen: van een aantal alternatieven wordt er één toegepast, Kansrekening voor Informatiekunde, 25 Les 8 Proces analyse Veel processen laten zich door netwerken beschrijven, waarin knopen acties aangeven en opdrachten langs verbindingen tussen de knopen verwerkt

Nadere informatie

Vectormeetkunde in R 3

Vectormeetkunde in R 3 Vectormeetkunde in R Definitie. Een punt in R wordt gegeven door middel van drie coördinaten : P = (x, y, z). Een lijnstuk tussen twee punten P en Q voorzien van een richting noemen we een pijltje. Notatie

Nadere informatie

Computer Graphics (in2770) 16 augustus 2004, uur. Dit tentamen bestaat uit 30 opgaven Totaal aantal bladzijden: 10

Computer Graphics (in2770) 16 augustus 2004, uur. Dit tentamen bestaat uit 30 opgaven Totaal aantal bladzijden: 10 TECHNISCHE UNIVERSITEIT DELFT Faculteit Elektrotechniek, Wiskunde en Informatica Afdeling Mediamatica Computer Graphics (in77) 6 augustus 4, 4. - 6. uur. N.B.: Dit tentamen bestaat uit 3 opgaven Totaal

Nadere informatie

math inside Model orde reductie

math inside Model orde reductie math inside Model orde reductie Model orde reductie Met het voortschrijden van de rekenkracht van computers en numerieke algoritmen is het mogelijk om steeds complexere problemen op te lossen. Was het

Nadere informatie

Lineaire Algebra voor ST

Lineaire Algebra voor ST Lineaire Algebra voor ST docent: Judith Keijsper TUE, HG 9.31 email: J.C.M.Keijsper@tue.nl studiewijzer: http://www.win.tue.nl/wsk/onderwijs/2ds06 Technische Universiteit Eindhoven college 4 J.Keijsper

Nadere informatie

De studie van vlakke krommen gegeven in parametervorm. Lieve Lemmens en Andy Snoecx

De studie van vlakke krommen gegeven in parametervorm. Lieve Lemmens en Andy Snoecx De studie van vlakke krommen gegeven in parametervorm Doelstellingen Lieve Lemmens en An Snoecx Deze tekst stelt een voorbeeld van de analyse van een kromme met de Texas TI-NSpire (en/of computersoftware)

Nadere informatie

BK Thema Materialen. Technisch Ontwerp en Informatica

BK Thema Materialen. Technisch Ontwerp en Informatica BK3070 - Thema BK3070 Uitwerken van een stedenbouwkundige ruimte Studies naar de toepassing van licht in de stedenbouwkundige ruimte. Het gebruik van materiaal en textuur om vorm te geven aan de stedenbouwkundige

Nadere informatie