TÖL203M Tölvugrafík

Heimadæmi 7


This page in other languages:
  1. [Próf 2017] Í tölvuleikjum er mörgum mynstrum oft pakkað saman í eitt stórt mynstur, svokallað mynsturkort (texture atlas). Hér að neðan er mynsturkort með fjórum mynstrum:
    1. Hver er ástæðan fyrir því að þetta er gert? Rökstyðjið.
    2. Hvaða gallar eru á því að nota mynsturkort?
    3. Segjum að við viljum setja mynstrið sem er í neðra hægra horni mynsturkortsins að ofan á spjald með hornpunktana v0,v1, v2, v3. Útskýrið hvernig við myndum setja mynsturhnitin þannig að þetta tiltekna mynstur varpaðist á spjaldið. Notið teikningu við útskýringu ykkar.

  2. [Byggt á prófdæmi frá 2012] Skoðið bútalitarann í sýnisforritinu HIspjald.html, sem er einfaldasta mynsturvörpunarforritið. Breytið bútalitaranum (og forritinu) á tvo vegu:
    1. Látið notanda sjá í gegnum yfirborðið ef litur mynstursins í þessum punkti er daufari en 0.5 (þ.e. summa litastuðlanna R, G, B er minni en 0.5). Þið þurfið aðeins að breyta bútalitaranum til að fá þessi áhrif.
    2. Látið liti mynstursins fara í hringi. Áhrifin eiga að vera þau að litur hvers punktar breytist smátt og smátt, endar aftur í upphafslitnum, en fer síðan aftur sama hringinn. Hér þurfið þið að breyta JS-forritinu líka.

  3. Það er ekkert innbyggt slembifall (sem virkar!) í GLSL, en það eru til nokkrar góðar útfærslur á slembiföllum sem hægt er að nota. Það eru líka til einfaldari útfærslur, sem eru samt sæmilega góðar, eins og þessi hér að neðan:
       float rand(vec2 co) {
           return fract(sin(dot(co.xy ,vec2(12.9898,78.233))) * 43758.5453);
       }
       
    Breytið bútalitaranum í sýnisforritinu PhongTepottur.html á eftirfarandi hátt:
    1. Notið slembifallið til að bjaga litinn sem kemur á yfirborðið. Athugið að við viljum að sami punktur á yfirborðinu hafi alltaf sömu bjögun.
    2. Breytið litaranum þannig að bjögunin breytast með tíma.

  4. [Próf 2016] Í námskeiðinu hefur meðal annars verið minnst í eftirfarandi aðferðir: Hverjar ofangreindra aðferða hentar best til að sýna eftirfarandi hluti í tölvugrafík. Útskýrið og rökstyðjið val ykkar í nokkrum orðum.
    1. Golfkúla (án merkis)
    2. Marmarastytta
    3. Sjónvarpsskjár
    4. Parketgólf
    5. Yfirborð vatns í hægum vindi
    6. Yfirborð eldhúsborðs

  5. Breytið sýnisforritinu particleSystemHH.html þannig að eindirnar séu ekki allar með sama massa þegar þær eru smíðaðar, heldur sé hann valinn af handahófi á bilinu 0.5 til 1.5. Breytið forritinu líka þannig að þegar eindirnar eru gerðar stærri þá aukist massi þeirra (ásamt því að þeir séu teiknaðir stærri). Sömuleiðis þegar eindirnar eru gerðar minni þá minnkar massi þeirra. Athugið að þið þurfið bæði að breyta fallinu simulation og að laga fallið doubleNumParticles, því þar er massi allra eindanna setur sem föst tala, óháð núverandi stærð þeirra.

Skilið PDF-skjali með lausnum ykkar á þessum dæmum fyrir kl. 23:59 laugardaginn 14. apríl í Gradescope.com. Hafið hlekki á WebGL forritin í lausnunum ykkar þannig að hægt sé að smella á þau til að keyra þau (ekki ljósmyndir af hlekkjum!).

hh (hja) hi.is, 7. apríl, 2018.