Affichage Multi–Passes

Affichage Multi–Passes

Annexe A Af®chage multi±passes Nous avons prÂesentÂe dans le chapitre 4, une mÂethode de rÂe±Âeclairage basÂee sur des al- gorithmes de radiositÂehiÂerarchique. L'af®chage se faitel  ement parel  ement, en multipliant la texture par un facteur d'af®chage. Nous utilisons le matÂeriel graphique et notamment la librairie OpenGL R . L'af®chage se fait typiquement en initialisant la fonction glColor en passant en paramÁetre les trois composantes du facteur d'af®chage. Cette fonction nÂecessite des paramÁetres de couleur compris entre zÂero et un. Si le facteur d'af®chage est supÂerieur aÁ un, il est automatiquement misa Á un. Par cet af®chage, nous n'obtenons pas l'Âeclairage dÂesirÂe si le facteur est supÂerieura Á un. Poureviter  cette limitation, nous avons utilisÂe une mÂethode d'af®chage en multi±passes. L'algorithme d'af®chage est dÂecrit sur la ®gure A.1. Pour tenir compte du fait que le fac- teur est supÂerieura Á un, nous allons superposer n af®chages, oÁu n 1 est la partie entiÁere du facteur d'af®chage. La nemeÁ passe correspond au reste du facteur d'af®chage moins sa partie entiÁere. La texture sera modulÂee par le facteur d'af®chage non limitÂeÁa un. Un ex- emple de l'importance de cet af®chage en multi±passes est montrÂe sur la ®gure A.2. Elle montre le rÂesultat d'une insertion de lampe virtuelle dans une scÁene rÂeelle. Nous n'avons pas utilisÂe d'af®chage en multi±passes en (a), alors que nous l'avons utilisÂe en (b). La diffÂerence est clairement visible. Il manque de la luminositÂe en (a). Toutes les valeurs du facteur d'af®chage ontet  e limitÂeesa Á un. En (b), l'Âeclairage af®chÂe rend bien compte de l'Âeclaircissement des textures dÃuÁa l'insertion de la lampe virtuelle. Des problÁemes similaires ontet  e rencontrÂes par d'autres chercheurs. Debevec et al. [DBY98] utilisent une approche similaire pour combiner des textures pon- dÂerÂees, et n'en crÂeer qu'une seule. Soler et Sillion [SS98] utilisentegalement  un af®chage multi±passes pour moduler correctement les textures avec l'Âeclairage direct. 174 Af®chage multi±passes Af®chage Multi±passes Af®cherScÁene ( NumIter ) glBegin(GL BLEND) MaxIter = 0 glTexEnvf(GL TEXTURE ENV, GL TEXTURE ENV MODE, pour chaque feuille GL MODULATE) if(NumIter == 0) alors NumIter = 1 Maxiter = Max (Maxiter, Bi / Di) MaxIter = Af®cherScÁene(NumIter) glTexImage2D( ..., Texture) glBlendFunc(GL ONE, GL ONE) pour chaque sommet color = (Bi / Di)-NumIter tant que NumIter < MaxIter faire Af®cherScÁene(NumIter) si color > 1 alors color = 1 glBlendFunc(GL ONE, GL ONE) si color < 0 alors color = 0 NumIter++ glColor(color) glDisable(GL BLEND) retourner Maxiter FIG. A.1: Algorithme d'af®chage en multi±passes. (a) (b) FIG. A.2: (a) Insertion d'une lampe virtuelle, sans utiliser un af®chage multi±passes. (b) Utilisation d'un af®chage multi±passes (5 passes en 0.3 secondes). Annexe B Programme de capture automatique de photographies B.1 PropriÂetÂes contrÃolables de l'appareil photographique Kodak DC260 L'appareil photographique numÂerique Kodak DC260 que nous utilisons n'est pas con- trÃolable manuellement pour toutes ses fonctions. Certaines propriÂetÂes sont contrÃolables par simple choix dans des menus, ou directement par pression des boutons. En appuyant di- rectement sur des boutons, on contrÃole la position du zoom et la prise des photographies. La mise au point est faite automatiquement sur le centre de la scÁene capturÂee. Par con- tre, par une demi±pression, on peut choisir une mise au point pour un autre cadrage, et la conserver en revenant sur le cadrage choisi. Dans les fonctions du menu, on trouve : ± le contrÃole des propriÂetÂes des images comme la taille, la rÂesolution ou la cadence de capture (en rafale ou en instantanÂe), ± le contrÃole du ¯ash, ± le contrÃole de la balance des couleurs en choisissant un type d'Âeclairage. Cette bal- ance automatique peutetre à dÂesactivÂee, ± la possibilitÂe de choisir manuellement la distance focale parmi des valeurs prÂe±dÂe®- nies, ± un choix sur le type d'exposition (automatique ou longue durÂee). L'exposition longue durÂee varie entre une demie seconde et seize secondes. Le temps d'exposition ne peut etreà contrÃolable en±dessous d'une demie seconde. D'autres propriÂetÂes peuventetre à directement contrÃolables par des scripts. Parmi les propriÂetÂes contrÃolables par script, on retrouve la distance focale. D'autres propriÂetÂes non contrÃolables directement sur les menus, comme l'ouverture du diaphragme, peuventetre à contrÃolÂees depuis les scripts. En revanche, le temps d'exposition n'est pas contrÃolable en± dessous d'une demie seconde. 176 Programme de capture automatique de photographies Nous pouvons ®xer une ouverture, mais pas le temps d'exposition. Malheureusement l'appareil choisit automatiquement certains paramÁetres pour que la photographie aient les meilleures couleurs. MÃeme si l'ouverture est ®xÂee, il compensera par le choix au- tomatique d'un temps d'exposition. Ceci veut dire que pour une mÃeme scÁene prise sous un point de vue lÂegÁerement diffÂerent, les couleurs ne seront pas cohÂerentes. L'appareil pho- tographique se sera automatiquement adaptÂe au nouveau niveau d'Âeclairage perceptible dans le cadrage. Nous ne pouvons donc pas contrÃoler le paramÁetre conjuguÂe ouverture/temps. L'appareil possÁede cependant un mode appelÂe EV. Ce n'est pas le mode EV traditionnellement utilisÂe en photographie. Le mode traditionnel permet justement de calculer le paramÁetre conjuguÂe ouverture/temps, car il existe un relation entre la valeur de EV, le temps d'exposition et l'ouverture du diaphragme. Celui du Kodak DC260 est relatifa Á la photographie prise en mode automatique. Quand EV = 0, la photographie corresponda Á une ouverture et un temps d'exposition le mieux adaptÂe d'aprÁes les critÁeres de l'appareil. Les valeurs de EV peuvent varier mais elles seront toujours relativesa Á l'image choisie automatiquement en EV = 0. Les EV sont prÂe±dÂe®nies et distribuÂees uniformÂement autour de 0. Les diffÂerentes valeurs ; : ; ; : ; ; : ; ; : ; sont : 2 1 5 1 0 5 0 0 5 1 1 5 2.Ceci nous permet de prendre neuf photographies avec des temps d'exposition diffÂerents. Nous avons essayÂe de savoir si l'appareil faisait varier l'ouverture ou le temps d'expo- sition pour des EV diffÂerents. Nous avons ®xÂe l'ouverture avant la modi®cation de l'EV, et nous avons lu la valeur d'ouverture aprÁes la prise de photographies. Comme elleetait  restÂee la mÃeme que celle que nous avions ®xÂee arbitrairement sur plusieurs prises, nous en avons dÂeduit que c'Âetait le temps d'exposition qui variait. B.2 Script de capture de photographies sur une plageetendue  En utilisant la capacitÂe de programmation de l'appareil photographique et le contrÃole des valeurs de EV, nous avonsecrit  un script qui prend automatiquement neuf photogra- phiesades Á EV diffÂerents. B.2 Script de capture de photographies sur une plageetendue  177 name "Exposure Bracketing" mode 0 menu "Kodak Scripts" label "My Exposure Bracketing" # Variable declaration and definition declare u : uTemp, uError, uStorage, uImageTaken, uImageAvail, uSsiz, uCameraType declare u : uSelectStop, uSelectCapture, uSelect declare i : iFlagOn, iFlagOff, iInitialEV, iImageRaw, iInitialAper declare i : iErrorCode, iBracketValue, iTemp, iInitialShut declare i : iAper declare s : sProductName, sVendorName, sCameraType, sTemp, sStop declare b : bCameraType declare f : fTemp # Variable initialization iErrorCode = 0 iFlagOn = 1 iFlagOff = 0 uCameraType = 0 # Get camera name GetProductInfo ("ptid", sProductName) GetProductInfo ("vdid", sVendorName) if sProductName == "KODAK DIGITAL SCIENCE DC220" uCameraType = 220 sCameraType = "DC220" end if sProductName == "KODAK DIGITAL SCIENCE DC260" uCameraType = 260 sCameraType = "DC260" end if uCameraType == 0 iErrorCode = 10 goto ErrorProc end DisplayLine ("Nine (9) pictures will be captured at different levels of exposure.") Wait (3000) # Get initial camera settings GetCameraState ("xcmp", iInitialEV) GetCameraState ("ssiz", uSsiz) 178 Programme de capture automatique de photographies GetCameraState("aper", iInitialAper) DisplayLine("Initial aperture is ", iInitialAper, " .") # Check available memory uStorage = 1 iImageRaw = -1 GetStorageStatus (uStorage, uImageTaken, uImageAvail, iImageRaw) if uImageAvail < 4 if uSsiz > 2 iErrorCode = 20 goto ErrorProc end if uCameraType == 220 SetCameraState ("ssiz", 3) GetStorageStatus (uStorage, uImageTaken, uImageAvail, iImageRaw) if uImageAvail < 4 iErrorCode = 20 uError = 4 - uImageAvail goto ErrorProc end end if uCameraType == 260 SetCameraState ("ssiz", 2) GetStorageStatus (uStorage, uImageTaken, uImageAvail, iImageRaw) if uImageAvail < 4 SetCameraState ("ssiz", 3) GetStorageStatus (uStorage, uImageTaken, uImageAvail, iImageRaw) if uImageAvail < 4 iErrorCode = 20 uError = 4 - uImageAvail goto ErrorProc end end end Alert ("Due to insufficient memory, the camera's resolution and/or quality has been reduced.") end # Ask what aperture SetOption (1, "3", iFlagOff) SetOption (2, "4", iFlagOff) SetOption (3, "5.6", iFlagOff) SetOption (4, "8", iFlagOff) SetOption (5, "11", iFlagOff) B.2 Script de capture de photographies sur une plageetendue  179 SetOption (6, "16", iFlagOff) SetOption (10, "Return", iFlagOff) GetOption (uSelectStop) if uSelectStop == 1 iAper = 300 end if uSelectStop == 2 iAper = 400 end if uSelectStop == 3 iAper = 560 end if uSelectStop == 4 iAper = 800 end if uSelectStop == 5 iAper = 1100 end if uSelectStop == 6 iAper = 1600 end if uSelectStop == 10 goto GetCaptureType end SetCameraState("aper",

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    19 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us