☰ Menu

Scene.hu

Magyar demoscene portál – grafikusok, zenészek, programozók alkotói közössége

Megjelent az Elevated forrása

Posted by Gargaj on June - 6 - 2016

Az RGBA és a TBC koprodukciójából született Elevated c. intrót biztosan nem kell senkinek bemutatni; a 2009-es Breakpoint 4k compójának győztese azon kevés intrók egyike lett ami messze túlhaladt a scene határain. Mától ez valószínűleg még tovább fog terjedni, mert tegnap publikusan is elérhető lett az intró forrása is, melynek köszönhetően végre betekintést nyerhetünk a kulisszák mögé.

Első átfutásra a következő dolgok derülnek ki a forrásból:

  • Az intró full-ASM – erről korábban ment vita is – bár érdekesmódon kétféleképp van megközelítve a dolog, a “debug” könyvtárban megtalálható az intró C verziója is, a “release” könyvtárban pedig a végleges optimalizált ASM forrás.
  • A zenét szolgáltató szintiből nincs C verzió, és egészen minimalista.
  • A kód egyik legviccesebb / legzseniálisabb része a “src\constants.h” elején található kis kódrészlet, ami segítségével ugyanaz a forrás C és ASM fordítóval is lefordítható – öröm nézni, akkora hekk.
  • Szintén gyakran hallható elmélet volt az, hogy az intró a szokásos 2D polygonra raymarcholt egy-nagy-shader. Ez nem igaz: a talaj maga egy tesszellált 3D mesh, aminek csak a poszt-processzingje történik shaderből.
  • Maga a shader természetesen olvashatatlan, ennek megértéséhez valószínűleg célszerű ha párosítjuk IQ Function 2009-es előadását is.
  • Az időzítések a GNU Rocket egy korai verziójával készültek, kivéve az égben villogó csíkokat, amik simán a zeneadatból vannak áthúzva. Ami engem elsőre meglepett, hogy sokkal több dolog van animálva, mint amire gondoltam, pl. a kontraszt, napsütés beeső szöge, de akár a domborzat mérete is.
  • Külön vicces, hogy a mostani Crinkler egy jó 30 byte helyet talál még a régihez képest.

hg_sdf – a Mercury eszköztára

Posted by Gargaj on December - 16 - 2015

Igazán érdekes és módfelett hasznos dologgal rukkolt elő a Mercury: Nyílt forráskódúvá tették azon shader-libraryjük jelentős részét, amit nem csak a nagysikerű intróikban láthattunk dolgozni, hanem Cupe NVScene-s előadásában még közelebbről is bemutatta, hogy milyen gyorsan lehet vele dolgozni.

Miről is van tehát szó? A hg_sdf névre keresztelt függvény-gyűjtemény a manapság rendkívül népszerű signed distance field renderinget (előjeles távolságtér? Jézusom) hivatott megkönnyíteni: Aki ezt nem ismeri, röviden összefoglalva a módszer lényege annyi, hogy a kirenderelendő objektumokat felületekként kezeljük a kódban, és a tér minden pontjára meghatározzuk, hogy milyen távol van a térben legközelebb lévő felülettől. A technika népszerűsége természetesen IQ / RGBA-nak köszönhető, aki szintén rengeteg infót biztosított már róla – ez a mostani kezdeményezés a Mercury részéről igazolja is az erre való igényt.

hgsdf

Nyilván a technikának megvannak az előnyei és hátrányai, utóbbi például az, hogy mindent matematikailag kell leírni; ebben próbál segítséget nyújtani ez a hasznos kis fájl, amiben az alapvető geometriai formák mellett rengetegféle ismétlődési, vagy épp csatlakoztatási formula van leírva, aminek segítségével sokkal könnyebb magukat az egyszerű formákat kicsit részletesebbé tenni. Az oldalon a leírás és a kód mellett kis dokumentáció is található arról, hogy mit hogyan érdemes megközelíteni (pun not intended), és bár maga a kód maga GLSL-hez készült, semmi olyat nem tartalmaz, ami ne lehetne átültethető HLSL-re is, így gyakorlatilag bárkinek csak a hasznára válhat, aki ilyen jellegű intrót / demót szeretne csinálni, vagy akár csak Shadertoyon szeretne valamível virítani.

Apropó Shadertoy, azt tudtátok, hogy IQ valószínűleg nem erről a bolygóról származik?

Ugrás a lap tetejére Ugrás a lap aljára