1 / 35

Možnosti moderního grafického HW

Možnosti moderního grafického HW. Erik "Deathgate" Veselý Mat úš "Backslash" Zamborský. Úvodem. nejen nejnovější technologie, zpětný pohled na vývoj grafiky na PC shrnutí současných technik osvětlení a jeho provedení hraje největší roli při renderingu

nguyet
Télécharger la présentation

Možnosti moderního grafického HW

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Možnosti moderního grafického HW Erik "Deathgate" VeselýMatúš "Backslash" Zamborský

  2. Úvodem • nejen nejnovější technologie, zpětný pohled na vývoj grafiky na PC • shrnutí současných technik • osvětlení a jeho provedení hraje největší roli při renderingu • každé řešení osvětlení s sebou nese jednotlivé problémy

  3. SVĚTLO

  4. Co to je? • jedna se o část elektromagnetického spektra, jež je viditelná lidským okem • jednotlivé úhly pohledu • snažíme se co nejvíce přiblížit realitě • v grafice nejde o reálný osvětlovací model, ale snažíme se o co nejkvalitnější vizuální výsledek

  5. Všechno je aproximace • základem je Lambertova rovnice intenzita = n dot l n – normala povrchu l – vektor ke světlu

  6. rendering svetel se tyka distribuce energie elektromagnetického záření do jednotlivych typu povrchu a reakce povrchu na dané záření • materiály část světelné energie přijmou, část ji odrazí • přijmutá energie se částečne přemění v teplo a zbytek se vyzáří zpět • barva materialu závisí na tom, kterou část spektra pohltí a kterou vyzáří zpět • každý povrch přijímá světelnou energii, část ji vyzáří zpět, část jí promění v tepelnou energii

  7. Phongův osvětlovací model • ambient • diffuse • specular intensita = ambient + diffuse + specular

  8. Phongův osvětlovací model • ambient = konstanta • diffuse = N dot L • specular = (V dot R)^shininess farba = ambient + diffuseLight * diffuseMat + specularLight *specularMat

  9. direct a indirect lighting - indirect bere nejen svetlo od zdroje k povrchu, ale take od povrchu k ostatnim povrchum, na zaklade zakona zachovani energie

  10. Metody osvětlení • statická vs. dynamická světla • statické vs. dynamické objekty • při návrhu renderingu je důležité dobře promyslet jednotlivá řešení, všechno má svoje pro a proti

  11. Statické osvětlení 1.) STATICKÁ SVETLA • statický terén • pohyblivé objekty 2.) DYNAMICKÁ SVETLA • statický terén • pohyblivé objekty

  12. Nejstarší osvětlovací metody • simple lightmapper už od dob Quake1 • textury nanesené na statickou scénu obsahují barvu světla, skalární součin a energii světla, reprezentovanou rovnicí útlumu • statické lightmapy pracují pouze se statickými objekty, dynamické věci potřebují svoje vlastní řešení

  13. Per-Vertex lighting • OpenGL přišlo vstříci developerům, FFP per-vertex lighting • intenzita osvětlení počítána na úrovni jednotlivých vertexů • následná interpolace

  14. Per-Vertex Lighting • Výhody: • relativně rychlé • celkem dobrý výsledek • Nevýhody: - nepresne, pro realny vzhled potreba dostatecne teselovat geometrii

  15. Per-Pixel lighting • řeší problémy s nepřenostmi, jež vznikají při per vertex lightingu • intenzita pixelu se počítá pro každý pixel zvlášť

  16. Per-Pixel lighting • Výhody: • přesné, • nepotřebuje teselaci • Nevýhody: • vysoké nároky na výkon • osvětlovací rovnice se počítá pro každý pixel zvlášť

  17. Další fáze vývoje • vyrobci grafickych karet se zacinaji preorientovavat, investuje se hlavne do vyvoje pixel pipeline a do jeji zparalelni k co nejvetsimu vypocetnimu vykonu na urovni pixel computingu • pixely renderuji jednotky paralelne, vykon karty v pripade pixel bottlenecku velmi zavisi na poctu pixel pipelines, ATI i NV pouzivaji mirne jine reseni co se týče architektury pixel pipelines • - objevuji se nove techniky na zdetailneni a zkvalitneni renderingu jednotlivych povrchu • - metody jako Emboss bump mapping, Dot3 bump mapping, Paralax mapping, displacement mapping • - detaily povrchu jsou pridavany pomoci textur, jez definuji tvar povrchu

  18. Emboss bump mapping • první metoda bump mappingu • používá height – mapu • height mapa vyjadřuje nerovnosti povrchu • definuje vyvýšeniny oproti fyzické geometrii dané triangly • nepoužívá se, ale dala vzniku dalším metodám

  19. Dot3 Bump mapping • stará dobrá heightmapa se zderivuje • získáme změny výšky mezi jednotlivými texely textury(povrchu) • vzniká normal mapa, kde jednotlivé texely reprezentují normálu pixelu • používá se klasická RGB textura

  20. Dot3 Bump mapping • jsou dva základní způsoby jak definovat normal mapu • OBJECT SPACE NORMAL MAPA • TANGENT SPACE NORMAL MAPA

  21. Dot3 Bump mapping • OBJECT SPACE BUMP MAPPING • vyhody: relativne jednoduche na pochopeni, netreba delat dalsi vypocty a transformace • nevyhody: kazdy kus geometrie musi mit svoji vlastni object space( world space ) mapu, nemuze se opakovat, ro kazdy bod je identicka, zabira vela mista

  22. Dot3 Bump mapping • TANGENT SPACE BUMP MAPPING • normalova mapa je definovana relativne vuci danemu polygonu • pred vypoctem intenzity daneho bodu je potreba dostat vektor ke svetlu do prostoru dane textury • prostor textury nanesene na jednotlivych polygonech definuje tangent space transformacni matice • urcuje lokalny souradnicovy system textury mapovane na dany polygon

  23. Paralax mapping • vychádza z klasického bumpmappingu • normály jednotlivých pixelov pochádzajú z normal mapy a vyska z height mapy • pridáva zlepšenie v simuláci hrbolatých povrchov • vyhody: zlepšenie vizuálneho dojmu zo scény dynamickosť povrchov pri pohybe kamery • nevýhody: ďalšie inštrukcie na úrovni pixel/fragment shaderu väčšia pamäťová náročnosť, pretože je potreba height mapa pri ostrých uhloch pohľadu efekt ztraci svuj smysl, protoze vynikne planarna podstata povrcha

  24. iným názvom pre parallax mapping je offset mapping, takže ide o offsetovanie texturových koordinátov • koordináty sa offsetujú podľa vektora pohľadu na daný povrch a výšky povrchu • výška povrchu je daná height mapou, ktorá ju kóduje ako hodnoty od 0.0 až 1.0, pričom je na nás aby sme • ich správne rozpakovali do rozsahu aký potrebujeme, teda napríklad -1.5 až 2.8 a pod.

  25. na pervertex úrovni sa vo vertex shaderi vypočíta kamera vektor a prevedie sa do tangent space • kamera vektor sa interpoluje po celom polygone, teda posle sa do pixel/fragment shaderu • je nutné ho normalizovať aby mal jednotkovú dĺžku • na perpixel urovni sa nasampluje heightmapa • k nasamplovanej hodnote sa nasobi scale a pripocita bias, ktorý hodnotu z rozsahu 0.0 až 1.0 dostane do nami zvoleného rozsahu • normalizovaný kamera vektor(koordináty X a Y) sa násobí hodnotou paralaxu, ktorú sme práve vypočítali • tým dostávame offset o ktorý zmeníme textúrové koordináty • na záver sa offset pripočíta k pôvodným texturovacím koordinátom

  26. Po vypočítaní zoffsetovaných koordinátov, ich používame na samplovanie všetkých ostatných textúr(diffuse, normal mapa, specular mapa, ...) float2 GetParalax(float2 baseCoord, float Scale, float Bias, float3 camvect) { float height = tex2D(heightTex, baseCoord); float paralax = height * Scale - Bias; float2 offset = camvect.xy * paralax; return baseCoord + offset; }

  27. HDRHigh Dynamic Range

  28. Čo to je? • je to forma zobrazenia, pri ktorej simulujeme správanie sa ľudského oka • ľudské oko je schopné zachytiť veľký rozsah intenzít svetla • naraz však dokáže zobraziť len malú časť • vždy sa zobrazuje iný rozsah intenzity svetla, ten závisí od celkovej intenzity svetla, ktoré vstupuje do oka • ďalším faktorom pri HDR je pomalá adaptácia svetelným podmienkam

  29. Výhody • dynamickosť scény • energia, ktorú vyžarujú povrchy v scéne je čo najlepšie rozdistribuovaná do rozsahu 0 až 1 • možnosť pridania ďalších efektov ako je bloom, star efekt a pod.

  30. Nevýhody • niekoľkonásobné väčšie nároky na bandwidth grafickej karty • vyžaduje niekoľko dodatočných výpočtov na konci renderovania scény • vyžaduje float textúry(SM 2.0 HW) • zatiaľ obmedzené použitie antialiasingu s HDR • vhodná je aj podpora float blendingu(SM 3.0 HW)

  31. Postup • scéna sa vyrenderuje do float framebuffru • vypočíta sa priemerná luminancia scény • (môže sa pridať bloom alebo star effekt) • prebehne tonemapping • Výsledok sa zobrazí na obrazovke

  32. Počítanie luminancie • všteko prebieha na grafickej karte • z float framebufferu s vyrenderovanou scénou vytvoríme luminance textúru scény • Na každom pixeli prebehne funkcia float CalculateLuminance(float red, float green, float blue) { float luminance = red*0.3 + green*0.59 + blue*0.11; return log(luminance + epsilon); // epsilon bude mala konstanta } • získame priemernú luminanciu scény pomocou mipmapovania • to sa bude líšiť na NVIDA a ATI kartách

  33. GeForce 6 a 7 • podporuje mipmapovanie NPOT(non-power of two) textur – luminančná textúra • zmipmapujeme túto textúru • priemerná luminancia bude uložená v poslednej mipmape

  34. ATI Radeon • nepodporuje mipmapovanie NPOT(non-power of two) textur • najprv pomocou shaderu namapujeme luminančnú textúru na POT 1-komponentovú textúru s pomocou lineárneho - filteringu ... • 512x512 a pod. • - ďalej pokračujeme ručným downsaplovaním textúry až sa dostaneme na rozmer 1x1

  35. Tonemapping • spočíva v mapovaní hodnot z framebuffera v rozmedzi 0 az nekonecno na rozsah 0 az 1, ktorý je pripravený na zobrazenie na monitore • dosiahneme to delenim farby pixelu z float framebuffru, sebou samou + 1 • final_color = HDR_color / (HDR_color + 1.0) • spôsobov ako dosiahnuť tonemapping, je viacero a väčšina je omnoho sofistikovanejšia ako uvádzaná metóda • - prípadne sa dá doimplementovať postupná adaptácia na zmenu osvetlenia

More Related