Hirdetés

Keresés

Új hozzászólás Aktív témák

  • Meteorhead

    aktív tag

    válasz Cathulhu #24 üzenetére

    Nincs mindenhol downsampling. Vegyél egy négyzetes textúrát, és húzd rá egy félgömbre. A közepén "kinyúlik" a textúra. Ha csak az oversmplinget követő monitorra igazításban bíznál, akkor a gömb közepe, ahol a legnagyobb a nyúlás, egyszerűen ocsmányul nézne ki.

    És itt most történetesen pont erről beszélünk, csak nem teljes félgömb, hanem valamivel kisebb gömbről. Akkora az oversampling, hogy a kép közepe elfogadható legyen, és aztán elmossák.

    Abban teljesen igazad van, hogy tisztán oversamplinggel is meg lehetne oldani, de visszatérve a gömbre... ha akkora oversamplinget használsz, hogy a közepén a monitorra igazítás tüntesse el az alias jelenségeket, akkor mi történt? 4X annyit számoltál, mert az EGÉSZ képen megszülted a 4X annyi pixelt, holott a széleken a torzulás miatt teszem azt MSAA sem kellett volna, mert ott megfelelt a kisebb textúra is.

    Azért csinálják a kettőt együtt, mert egy sima MSAA sokkal olcsóbb, mint oversamplinggel dolgozni. Minden shader program legköltségesebb része a Fragment/Pixel shader, mert abból van a legtöbb (és sajnos sok munka van benne, nem lehet mindent a Vertex sahderbe tenni). Igyekeznek nem a pixelek számával bruteforce megoldani mindent, hanem olcsóbb algoritmusokkal kiváltani célfeladatokat, amik arra születtek. Egy pixelnyi MSAA-hoz kellhet nagyjából 4-8-16 pixel és relatíve triviális számítások, míg a torzulás korrigáláshoz nagyjából ugyanennyi plusz egy halom transzcendes függvény (tangens-hiperbolikusz és társai) kiértékelés, amiben a GPU shaderei nagyon nem bajnokok (mondjuk azt, hogy az MSAA csak térdenlövi a az egész shaderprogramot, míg egy négyszer akkora frame bufferen számolt transzcendes halom tőböl csonkolja a lábát.).

    [ Szerkesztve ]

  • Meteorhead

    aktív tag

    válasz tlac #12 üzenetére

    A kijelző meghajlítása nem javít a dolgon.

    A számítógépes grafikában, és azon belül is a csúnyán magyarított inkrementális képszintézisben használt vetítőmátrix, amit az összes játékban használnak akkor működik rendesen, ha kicsi a nézeti gúla nyílásszöge. (Olyan matematikai közelítésekkel van összerakva, ami csak ott érvényes.) Ha nagyobb szögekre alkalmazzák, akkor természetellenes módon szétmásnak a párhuzamosok, és mozgóképben ez erős hányingert kelt. (Ha valaki hozzám hasonlóan rosszul lesz az eredeti Wolfeinstein 3D-től, akkor az tudja miről beszélek)

    Képzeld el, hogy nézel egy nagy festményt messziről. Hajlítsd meg a képet, és sétálj be a gyújtópontba. Az ember gömbérzéke talán megsúgja, hogy nem azt fogod látni, mintha "benne" lennél a képben.

    Az egész bónusz shader arról szól, hogy kikorrigálják azt, hogy szabvány vetítő mátrix amit játékokban használnak nem érvényes a közelről nézett vászonra. Ezért kell az oversampling, mert szét kell nyúzni a képet, és ez akkor adja a legszebb eredményt, ha eleve nagyobba lett leképezve. De a nagyobb kép ugynaúgy szenved minden alias jelenségtől, amitől bármely más renderelt kép, ezért kell még MSAA is. A kettő független, és egyiket sem lehet elhagyni, mert más betegségét küszöblik ki a képnek. Az egyikkel a hányingert küszöbölik ki, a másikkal pedig a recésséget. Oversampling nem MSAA alternatívaként van benne a buliban.

    Remélem közérthető voltam.

Új hozzászólás Aktív témák