Mo¾nosti modern­ho grafick©ho HW

download Mo¾nosti modern­ho grafick©ho HW

of 35

  • date post

    21-Jan-2016
  • Category

    Documents

  • view

    30
  • download

    0

Embed Size (px)

description

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 - PowerPoint PPT Presentation

Transcript of Mo¾nosti modern­ho grafick©ho HW

  • Monosti modernho grafickho HW Erik "Deathgate" Vesel Mat "Backslash" Zamborsk

  • vodemnejen nejnovj technologie, zptn pohled na vvoj grafiky na PCshrnut souasnch technikosvtlen a jeho proveden hraje nejvt roli pi renderingukad een osvtlen s sebou nese jednotliv problmy

  • SVTLO

  • Co to je?

    jedna se o st elektromagnetickho spektra, je je viditeln lidskm okemjednotliv hly pohledu

    sname se co nejvce piblit realitv grafice nejde o reln osvtlovac model, ale sname se o co nejkvalitnj vizuln vsledek

  • Vechno je aproximacezkladem je Lambertova rovniceintenzita = n dot l

    n normala povrchul vektor ke svtlu

  • rendering svetel se tyka distribuce energie elektromagnetickho zen do jednotlivych typu povrchu a reakce povrchu na dan zen materily st svteln energie pijmou, st ji odrazpijmut energie se stene pemn v teplo a zbytek se vyz zpt

    barva materialu zvis na tom, kterou st spektra pohlt a kterou vyz zpt

    kad povrch pijm svtelnou energii, st ji vyz zpt, st j promn v tepelnou energii

  • Phongv osvtlovac modelambientdiffusespecular

    intensita = ambient + diffuse + specular

  • Phongv osvtlovac modelambient = konstantadiffuse = N dot Lspecular = (V dot R)^shininess

    farba = ambient + diffuseLight * diffuseMat + specularLight *specularMat

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

  • Metody osvtlenstatick vs. dynamick svtlastatick vs. dynamick objekty

    pi nvrhu renderingu je dleit dobe promyslet jednotliv een, vechno m svoje pro a proti

  • Statick osvtlen

    1.) STATICK SVETLAstatick ternpohybliv objekty2.) DYNAMICK SVETLAstatick ternpohybliv objekty

  • Nejstar osvtlovac metodysimple lightmapper u od dob Quake1

    textury nanesen na statickou scnu obsahuj barvu svtla, skalrn souin a energii svtla, reprezentovanou rovnic tlumustatick lightmapy pracuj pouze se statickmi objekty, dynamick vci potebuj svoje vlastn een

  • Per-Vertex lighting OpenGL pilo vstci developerm, FFP per-vertex lightingintenzita osvtlen potna na rovni jednotlivch vertexnsledn interpolace

  • Per-Vertex LightingVhody:relativn rychlcelkem dobr vsledekNevhody:- nepresne, pro realny vzhled potreba dostatecne teselovat geometrii

  • Per-Pixel lighting

    e problmy s nepenostmi, je vznikaj pi per vertex lightinguintenzita pixelu se pot pro kad pixel zvl

  • Per-Pixel lightingVhody:pesn, nepotebuje teselaci

    Nevhody:vysok nroky na vkonosvtlovac rovnice se pot pro kad pixel zvl

  • Dal fze vvoje 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 te 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

  • Emboss bump mappingprvn metoda bump mappingupouv height mapuheight mapa vyjaduje nerovnosti povrchudefinuje vyveniny oproti fyzick geometrii dan trianglynepouv se, ale dala vzniku dalm metodm

  • Dot3 Bump mappingstar dobr heightmapa se zderivujezskme zmny vky mezi jednotlivmi texely textury(povrchu)vznik normal mapa, kde jednotliv texely reprezentuj normlu pixelupouv se klasick RGB textura

  • Dot3 Bump mappingjsou dva zkladn zpsoby jak definovat normal mapu

    OBJECT SPACE NORMAL MAPATANGENT SPACE NORMAL MAPA

  • Dot3 Bump mappingOBJECT SPACE BUMP MAPPING

    vyhody: relativne jednoduche na pochopeni, netreba delat dalsi vypocty a transformacenevyhody: kazdy kus geometrie musi mit svoji vlastni object space( world space ) mapu, nemuze se opakovat, ro kazdy bod je identicka, zabira vela mista

  • Dot3 Bump mappingTANGENT 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

  • Paralax mappingvychdza z klasickho bumpmappingu

    normly jednotlivch pixelov pochdzaj z normal mapy a vyska z height mapy

    pridva zlepenie v simulci hrbolatch povrchov

    vyhody: zlepenie vizulneho dojmu zo scny dynamickos povrchov pri pohybe kamery

    nevhody: alie intrukcie na rovni pixel/fragment shaderu via pamov nronos, pretoe je potreba height mapa pri ostrch uhloch pohadu efekt ztraci svuj smysl, protoze vynikne planarna podstata povrcha

  • inm nzvom pre parallax mapping je offset mapping, take ide o offsetovanie texturovch koordintov

    koordinty sa offsetuj poda vektora pohadu na dan povrch a vky povrchu

    vka povrchu je dan height mapou, ktor ju kduje ako hodnoty od 0.0 a 1.0, priom je na ns aby sme ich sprvne rozpakovali do rozsahu ak potrebujeme, teda naprklad -1.5 a 2.8 a pod.

  • na pervertex rovni sa vo vertex shaderi vypota 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 dku

    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 zvolenho rozsahu

    normalizovan kamera vektor(koordinty X a Y) sa nsob hodnotou paralaxu, ktor sme prve vypotali

    tm dostvame offset o ktor zmenme textrov koordinty

    na zver sa offset pripota k pvodnm texturovacm koordintom

  • Po vypotan zoffsetovanch koordintov, ich pouvame na samplovanie vetkch ostatnch textr(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;}

  • HDRHigh Dynamic Range

  • o to je?je to forma zobrazenia, pri ktorej simulujeme sprvanie sa udskho okaudsk oko je schopn zachyti vek rozsah intenzt svetlanaraz vak doke zobrazi len mal as

    vdy sa zobrazuje in rozsah intenzity svetla, ten zvis od celkovej intenzity svetla, ktor vstupuje do oka

    alm faktorom pri HDR je pomal adaptcia svetelnm podmienkam

  • Vhodydynamickos scnyenergia, ktor vyaruj povrchy v scne je o najlepie rozdistribuovan do rozsahu 0 a 1monos pridania alch efektov ako je bloom, star efekt a pod.

  • Nevhodyniekokonsobn vie nroky na bandwidth grafickej kartyvyaduje niekoko dodatonch vpotov na konci renderovania scnyvyaduje float textry(SM 2.0 HW)zatia obmedzen pouitie antialiasingu s HDRvhodn je aj podpora float blendingu(SM 3.0 HW)

  • Postupscna sa vyrenderuje do float framebuffru vypota sa priemern luminancia scny(me sa prida bloom alebo star effekt)prebehne tonemappingVsledok sa zobraz na obrazovke

  • Potanie luminancievteko prebieha na grafickej kartez float framebufferu s vyrenderovanou scnou vytvorme luminance textru scnyNa kadom 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}

    zskame priemern luminanciu scny pomocou mipmapovaniato sa bude li na NVIDA a ATI kartch

  • GeForce 6 a 7podporuje mipmapovanie NPOT(non-power of two) textur luminann textrazmipmapujeme tto textrupriemern luminancia bude uloen v poslednej mipmape

  • ATI Radeonnepodporuje mipmapovanie NPOT(non-power of two) texturnajprv pomocou shaderu namapujeme luminann textru na POT 1-komponentov textru s pomocou linerneho - filteringu ... 512x512 a pod.- alej pokraujeme runm downsaplovanm textry a sa dostaneme na rozmer 1x1

  • Tonemappingspova v mapovan hodnot z framebuffera v rozmedzi 0 az nekonecno na rozsah 0 az 1, ktor je pripraven na zobrazenie na monitoredosiahneme to delenim farby pixelu z float framebuffru, sebou samou + 1final_color = HDR_color / (HDR_color + 1.0)

    spsobov ako dosiahnu tonemapping, je viacero a vina je omnoho sofistikovanejia ako uvdzan metda- prpadne sa d doimplementova postupn adaptcia na zmenu osvetlenia