HTML

Az élet kódjai

Csináld maga. Senki nem csinálja meg helyetted.

Friss topikok

Készülődés Sundownra

2016.07.11. 00:33 Travis.CG

Volt egy visszamaradt demó kezdeményem QBPartyról, amit elkezdtem formálni, hogy a következő Sundownra release-é alakuljon. Az első érdekes akadály egy bug formájában érkezett. A shader betöltő modul, ami hosszú ideje tette a dolgát, hirtelen nem működött Windows 10 alatt. A kód végén nem olvasható karakterek voltak, hiába zártam le a sztringet nullal. Végül a memória foglalást malloc-ról calloc-ra cseréltem és minden gondnak vége szakadt. A hiba oka nem hagy nyugodni, de most nem ez a prioritás.

Sokat szerencsétlenkedtem olyan rutinok megírásával is, amikre nem vagyok képes. Az egyik egy teljesen shader alapú részecske rendszer lett volna, ami egy pányva tulajdonságait igyekezett szimulálni. Miután rájöttem, hogy ebből sem lesz semmi és eltávolítottam a tervekből, máris könnyebben ment a munka.

Csak egy olyan effekt lesz benne, amit még nem programoztam le, mégsem nehéz: a bloom. Alapvetően arról van szó, hogy a fényes részeket egy külön textúrába renderelik, nyomnak rá egy Gaussian blurt, majd összemossák az eredeti képpel. A tutorial kódok legtöbbje 4 menetben állította elő. Először lerenderelik a normál képet, aztán vízszintesen elmossák a fényes részeket, majd ugyan ezt függőlegesen is elmossák, végül az egészet kirakják a képernyőre.

De én még post processinget is szeretnék! Az lesz az ötödik renderelés? Több problémám is volt a tutorialokkal. Először is, mindenki csak fehér fényt változtatott tündöklővé, amit az első menet végén egy határértékkel állapítottak meg. Csakhogy ez nekem nem jó, mert én egy narancssárga dolgot akartam felvillanyozni, ráadásul ez a szín olyan tárgyakon is megtalálható, amelyek nem fénylenek. Ezért a fix érték helyett én egy maszkot használtam. A maszk egy külön textúra volt, tehát egy renderelést megspóroltam.

Maradt három: vízszintes Gauss, függőleges Gauss, post processing. A vízszintes Gausst beraktam az első renderelésbe, mert hála az OpenGL 3.3-nak, egy pixel shaderből akár két kimenetre is tudok írni. A második Gauss elmosást pedig betettem a post processzingbe. Úgyis ott kell összemosni a két végső textúrát. Nem tudom, mennyit javít a teljesítményen (elképzelhető, hogy semmit), de a kód átláthatóbb. Legalábbis nekem.

Írtam Shamennek, hogy kell zene. Röviden vázoltam a kocepciót: szomorú, monoton demó a reménytelenségről. Nagyon ráérzett a témára, mert mindjárt 8 zenét is kaptam két nap elteltével. Ezzel már lehet dolgozni! Miután kiválasztottam a megfelelő zenét, a jelenetek szinte maguktól kezdtek a megfelelő helyre vánszorogni. Már tudtam, hogy mit hova szeretnék tenni.

Mivel 2D demó lesz, Gimp segítségével összedobtam néhány textúrát, majd összeállítottam, hogyan is képzelem el a jeleneteket egymás után. A vázlatot elküldtem Grassnak, aki kicsit aggódott, hogy csak egy héttel a határidő előtt szóltam neki (úgy látszik túl jól ismer), mégis hamar elkészítette a végleges textúrákat. Illetve a textúrák egy részét, mert két jelenethez még nincs semmi.

Most, kevesebb, mint egy héttel a határidő előtt, úgy gondolom, 80%-on állunk. Ez optimizmusra ad okot. Nagy effektek nincsenek benne, akár be is tudom fejezni az elkövetkező pár napban.

Szólj hozzá!

Címkék: demoscene

A bejegyzés trackback címe:

https://cybernetic.blog.hu/api/trackback/id/tr358877546

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Nincsenek hozzászólások.
süti beállítások módosítása