 |
| jak-tvorit |
» OpenGL, D3D
» 2D rasterizacia
» Dalsie uzitocne kniznice a tooly
» Zvuk
» Tutorialy a zaujimave stranky
» OpenGL, D3D
Tak ako sa este v nie tak vzdialenej minulosti pouzivali na vytvaranie realtime
grafiky vylucne softwarove metody, dnes tuto ulohu prevzali hardwareove
akceleratory. Vdaka tomuto posunu je vytvaranie dem ovela pristupnejsie
pre sirsi okruh ludi. Navyse, demomakeri odlahceni od pracneho vytvarania
softwarovych rendererov mozu zamerat svoje sily na vizualnu a designovu
stranku dema.
| | | » Direct3D |
 | |
API umoznujuce pristup k 3D hardwaru. Vyvijane firmou Microsoft pre svoje
vlastne platformy (Windows, XBox). V minulosti sa Direct3D vyznacoval
mnozstvom detskych chyb ale v poslednych rokoch dospel a je pre 3D
programovanie skutocne dobrou volbou.
API je objektovo orientovane, navrhnute velmi prehladne, pricom ponuka siroku
paletu moznosti vyuzitia. Najefektivnejsie sa k nemu pristupuje z C++,
ale existuje aj verzia pre .NET platformu a teda vsetky .NET jazyky.
| | | |
|
| | | » OpenGL |
 | |
Multiplatformove API umoznujuce pristup k 3D hardwaru. Jednoznacna volba
pre aplikacie, ktore musia bezat aj na inych platformach ako Windows.
Vytvorene povodne spolocnostou SGI, dnes za jeho vyvojom stoja okrem ineho
viaceri popredni vyrobcovia 3D hardware - nVidia, ATI, ci 3DLabs.
Na Windows platforme spopularizovane do znacnej miery vdaka firme
Id Software, ktora patri medzi priekopnikov 3D hier.
Ma za sebou dlhsi vyvoj ako konkurencne Direct3D co je vidno na pomerne
velmi elegantnom a intuitivnom designe rozhrania. Na rozdiel od Direct3D
vsak ide o ciste C rozhranie. Pozitivom takehoto pristupu je, ze sa lahko
prepaja s neprebernym mnozstvom programovacich jazykov. Na druhu stranu
je vsak OpenGL oproti Direct3D viac low-level, co si pri vacsich projektoch
casto vyzaduje pouzitie dalsej vrstvy, ktora urobi pracu s API prijemnejsim.
Z hladiska moznosti vyuzitia hardwaru su Direct3D a OpenGL prakticky
ekvivalentne. Direct3D vsak navyse tazi zo svojho prepojenia s platformou
Windows, co sa prejavuje napriklad na moznosti nacitavat textury zo suborov
zakodovanych v beznych grafickych formatoch ako JPEG, PNG, BMP, atd.
Specifikacia OpenGL je pisana formou, ktora ju umoznuje citat ako knihu.
Ak citatel disponuje dostatocnym prehladom o 3D grafike, casto uz ani nema
potrebu citat nieco ine a moze rovno zacat experimentovat.
| | | |
|
| | | » OpenGL toolkity, enginy |
 | |
Stranka obsahujici odkazy na mnozstvi 3D enginu a pomocnych nastroju, vhodnych pro rychly zacatek vyvyjeni vlastnich dem,
ci primo vlastniho demo engine.
| | | |
|
| | | » nVidia |
 | |
Spolu s ATI v dnesnej dobe najznamejsi vyrobca 3D akceleratorov. Medzi spotrebitelmi
najrozsirenejsia rada 3D kariet od nVidie nesie nazov GeForce. Okrem vyroby hardwaru
sa zameriava aj na vyskum v oblasti jeho vyuzitia. Jazyk Cg pre programovanie grafickych
kariet pochadza z dielne nVidie.
| | | |
|
| | | » ATI |
 | |
Najznamejsia rada 3D akceleratorov firmy ATI nesie spolocny nazov Radeon. ATI zapasi
s nVidiou ako aj o technologicke prvenstvo, tak i prvenstvo na trhu. V sucasnosti
ma mierne navrch nVidia s GeForce 7800, ale ATI je silny hrac a buducnost
moze priniest zmenu.
| | | |
|
» 2D rasterizacia
Napriek tomu, ze mainstream sa orientuje na vyuzivanie 3D akceleratorov, este vzdy
moze vyvstat potreba zaobstarat si rasterizaciu na vlastnu past. Hardware ma svoje
limity, zameriava sa predovsetkym na 3D vizualizaciu. Fantazii sa vsak medze nekladu
a kedze scena nie je pod takym silnym diktatom modnych trendov ako herny priemysel,
mame pred sebou pole neorane. Ako ziarivy priklad nech nam vsetkym sluzi nestarnuca
produkcia skupiny Satori v demach ako Metamorf, Incyber, ci De:tox.
| | | » TinyPTC |
 | |
C, C++ a Java kniznica, ktorej cielom je poskytnut programatorovi pohodlie pri
tej najjemnejsej zo vsetkych prac, kresleni grafiky pixel po pixeli. Vy zapisujete
32-bitove hodnoty do buffra v pamati a TinyPTC sa postara o zobrazenie vasich
dat v okne alebo na fullscreene spolu s pripadnou konverziou do bitovej hlbky
a pixelformatu vasho desktopu. Vytvara tak abstrakciu nad roznymi alternativnymi
sposobmi zobrazenia ako aj hardwarovymi platformami a oknovymi systemami.
Podporovane su: Windows (DirectDraw, GDI a ine), Java, X11, MacOS X, PocketPC,
SDL, DOS, BeOS, Amiga a Delphi. TinyPTC pride vhod pri tvorbe 64k intier,
pretoze sa da lahko osekat na nevyhnutne minimum kodu.
| | | |
|
| | | » AntiGrain Geometry |
 | |
Multiplatformova kniznica so zameranim na vysoko precizny antialiasovany
rendering 2D utvarov, ako su ciary a krivky roznych stylov, polygony, bitmapy, a pod.
Naprogramovana v modernom C++ s dorazom na vysoky stupen abstrakcie
a dekomponovania procesu renderovania na mnozstvo nezavislych dielcich konceptov.
Krasna ukazka pouzitia C++ templatov v low-level aplikacii akou je rasterizacia.
Slabsie povahy, ktore po tychto vyhlaseniach obchadzaju smrtelne mdloby
upozornujeme, ze stupen abstrakcie je miestami naozaj znacny, a dokumentacia
prakticky ziadna. Autor si navyse nezvykne pisat do kodu komentare, aspon teda
nie na miesta, kde by ste ich potrebovali. Nastastie sucastou distribucie
je velke mnozstvo prikladov. Odmenou za utrpenie su pozoruhodne kvalitne
vysledky a velmi prijemna moznost kombinovania tejto kniznice s vasim
vlastnym kodom. A to vsetko bez akejkolvek straty efektivity (no, hlavne
nezabudnite zapnut optimalizacie ;-)
AGG ma velmi liberalnu licenciu, moze sa volne pouzivat aj v komercnych
projektoch. Jeden priklad za vsetky, ktory podciarkuje vyspelost tejto kniznice
je uz skoro kompletna reimplementacia kniznice GDI+ od Microsoftu ciste cez AGG
(GDI+ sa dodava s Windows ako moderna objektovo-orientovana nahrada za davno
prestarnute GDI a ako defaultny sposob kreslenia na .NET platforme).
| | | |
|
| | | » libArt |
 | |
Znamejsi konkurent pre AGG na poli antialiasovanej 2D rasterizacie, tentokrat
v cistom C. Ma vyrazne monolitnejsi charakter, takze si s nim nemozete robit hned
len tak co sa vam zachce. Jednoducho je to kniznica tak ako sme na ne zvyknuti.
Na druhu stranu by to vsak malo znamenat, ze API je uzivatelsky pristupnejsie
a zvladnut ho nebude vyzadovat vynimocne dusevne usilie. V praxi vsak libArt ma asi
tak rovnako dokumentacie ako AGG. Neprijemnym faktom je, ze tato kniznica pred casom
ustrnula vo vyvoji a nad vodou ju drzi hlavne skutocnost, ze je na nej postaveny
canvas vo window manageri GNOME. libArt sa bude nepochybne pouzivat este mnoho
rokov, ale v prospech AGG hovori zivsia komunita a dynamicky vyvoj.
Nic to vsak nemeni na fakte, ze libArt sa v sucasnosti uplatnuje v mnohych
projektoch a ide o naozaj kvalitne dielo.
| | | |
|
» Dalsie uzitocne kniznice a tooly
| | | » SDL |
 | |
Plny nazov "Simple DirectMedia Layer" napoveda, ze prvoradou ambiciou tejto
kniznice je poskytnut multiplatformovu nadstavbu nad viacerymi aspektmi
nasich milacikov. Hlavnym zaberom SDL su zobrazovanie cez framebuffer
(podobne ako TinyPTC), ci 3D rendering cez OpenGL; ale jedna sa aj o zvuk,
interakciu s klavesnicou, joystickom a myskou, a mnohe ine. SDL nachadza
uplatnenie pri vytvarani aplikacii ako su hry, prehravace videa, emulatory,
ale aj dema.
API je ciste C. Dostupne su prepojenia s viacerymi jazykmi ako Ada, Eiffel,
Java, Lua, ML, Perl, PHP, Pike, Python, a Ruby. Existuje aj neoficialny
.NET wrapper. Podporovane platformy su primarne Linux, Windows, BeOS,
MacOS (classic) a MacOS X.
SDL ma siroku uzivatelsku zakladnu. Pristupne je mnozstvo kniznic postavenych
na SDL, alebo rozsirujucich jeho funkcionalitu napriklad o podporu sietoveho
programovania, vytvaranie GUI, prehravanie hudby a pod.
| | | |
|
» Zvuk
Cim by bolo demo bez hudby? Zvukova stranka dema tvori nezriedka polovicu uspechu.
Nejedno demo by sa smahom ruky ocitlo v sedom priemere, keby ho smutneho osudu neuchranil
vynimocny soundtrack. Naopak, najdu sa po vizualnej stranke vyrazne dema, ktore zly hudobny
doprovod takmer zruinoval.
| | | » FMOD |
 | |
Na scene asi najpopularnejsia kniznica na prehravanie hudobnych streamov
a modulov. Zaklada si na rychlosti prehravania a mixovania kanalov, na sirokej
podpore zvukovych formatov, platforiem a standardov. Dema vsak jej moznosti vyuzivaju
len velmi obmedzene, typicky na prehravanie jedneho streamu. Niektori demomakeri idu
o kusok dalej a synchronizuju efekty na zaklade fourierovej analyzy zvuku ktoru tato
kniznica ponuka. Medzi priekopnikov tohto pristupu patria napriklad skupiny MFX a Kewlers.
Programatorske API je C-ckove, da sa pouzivat z mnozstva kompilatorov a aj inych
jazykov ako C/C++. FMOD sa vyvija pre mnozstvo rozsirenych platforiem, od Windows
cez Linux, Mac, az po herne konzoly ako PS2, XBox, XBox 360 a GameCube.
Ako tento zoznam naznacuje, jednym z hlavnych cielov FMODu je vybudovat si reputaciu
v hernom priemysle. A vdaka nespornym kvalitam sa mu to aj dari.
| | | |
|
| | | » BASS |
 | |
Na scene najvacsia konkurencia pre FMOD, s velmi podobnymi moznostami. Z hladiska
demomakera je volba medzi touto dvojicou skor vecou osobnych preferencii nez
cohokolvek ineho. BASS je okrem ineho zakladom pre popularny prehravac XMPlay,
ktory sa medzi scenermi bezne pouziva namiesto vseobecne rozsireneho WinAMPu,
co suvisi s vynimocne kvalitnou podporou module formatov ako XM a IT.
Jedinou naozaj vaznou nevyhodou BASSu v porovnani s FMODom je orientacia
vyhradne na platformu Windows. Ale ak nepotrebujete viac, BASS je skvela volba.
API je C, dynamicka kniznica ma len 100 KB, rozhrania existuju.
| | | |
|
| | | » MiniFMOD |
 | |
Minimalisticka kniznica na prehravanie XM modulov. Pouziva sa typicky na tvorbu
64k intier. Dnes uz mozno nie tak aktualna ako kedysi, s ohladom na prechod
k realtime synteze zvuku. Nic vam ale nebrani pouzit kombinovane riesenie,
t.j. generovat sample kodom a notovy zapis spravit v XM.
Aktualna verzia FMODu je urcena pre Windows a C kompilator od Microsoftu, ale zo
stranky FMODu je dostupny aj o kusok starsi port pre kompilatory zalozene
na GCC, ktory funguje aj pod Linuxom. Tuto verziu ma na svedomi slovensky
scener Luks.
| | | |
|
| | | » BASSMOD |
 | |
Tato kniznica vznikla osamostatnenim kodu na prehravanie modulov z BASSu.
To znamena, ze MP3/OGG/WAV a dalsie streamovane formaty nou neprehrate,
ale na druhu stranu vyvoj prebieha aj pre Linux (OSS) a MacOS X.
Dalsia dobra sprava pre uzivatelov Linuxu je, ze pre XMMS (co je popularny
prehravac hudby na UNIX platformach) existuje plugin na prehravanie modulov
ktoreho jadrom je BASSMOD. Na moduly uz proste nic lepsie nenajdete.
| | | |
|
| | | » V2 Synthesizer System |
 | |
Najprominentnejsi realtime softsynth na scene, ktory pouzivali Farbrausch
vo vsetkych svojich najslavnejsich intrach. Legendarne dielo, ktore zahajilo
prilivovu vlnu zvukovej syntezy a zatlklo jeden z poslednych klincov
do rakvy pouzivania modulov v produkcii obmedzenej na velkost.
Tento software dlho nebol pristupny pre siroku verejnost. Tak ako ho KB
pred casom releasol obsahuje tri hlavne casti: VSTi plugin, Buzz plugin
a staticku kniznicu na prehravanie vyslednej hudby v realtime. VSTi verzia
sa da pouzivat z lubovolneho programu na komponovanie hudby, ktory disponuje
podporou multitimbral VST. Druhy plugin je to iste len zvlast pre Buzz tracker.
Oba pluginy vedia zaznamenavat prehravanu hudbu do formatu .v2m, ktory prehra
prilozena kniznica libv2, alebo sam velky .werkkzeug.
| | | |
|
| | | » OpenAL |
 | |
Cielom tvorcov OpenAL specifikacie je vytvorit podobny standard pre zvuk,
akym je OpenGL pre 3D grafiku. Z velkych spolocnosti za OpenAL stoja predovsetkym
Creative Labs a nVidia. Zatial co OpenGL ma za sebou roky vyvoja, dobru podporu
vyrobcami hardwaru a zastupy uzivatelov, OpenAL je pomerne novy standard,
ktory sa este len uchadza o svoje miesto na slnku.
Implementacie API existuju pre mnozstvo platforiem od Windows, MacOS 8/9/X,
Linux, BSD, Solaris az po herne konzoly XBox a PlayStation 2.
API je pomerne usporne, ciste C. Dnes uz pren existuje niekolko nadstavieb.
Zameriava sa skor na samotne prehravanie a mixovanie zvukovych kanalov s roznymi
efektmi, nez na podporu konkretnych formatov (dalsia podobnost s OpenGL).
Znacnou nevyhodou je, ze OpenAL runtime sa dnes bezne nedodava spolu s operacnym
systemom (snad len s vynimkou Linuxovych distribucii).
| | | |
|
| | | » SoftSynth.com Programming |
 | |
Mnozstvo uzitocnych linkov, ktore sa zidu ked si programujete vlastny softsynth.
| | | |
|
| | | » SoftSynth.com Languages and APIs |
 | |
Linky na rozne kniznice a tooly ktore sa mozu zist pri pisani softsynthu.
| | | |
|
| | | » Harmony Central Programming |
 | |
Dalsia stranka o DSP programovani a softwarovej synteze zvuku, bohata na obsah.
| | | |
|
» Tutorialy a zaujimave stranky
| | | » Paul Bourke |
 | |
Clovek s neuveritelne sirokym zaberom v grafike a geometrii. Jeho stranky pokryvaju
mnozstvo tem od fraktalnej geometrie, cez radiositu, proceduralne texturovanie,
az po studie velkej skaly geometrickych utvarov. Nekonecny zdroj inspiracie. Existuju
viacere vynimocne dema a intra ovplyvnene materialom z Bourkeho stranok, za vsetky
pomenujme aspon 4k San Angeles Observation na PC z roku 2004.
| | | |
|
| | | » Dave Eberly |
 | |
Dave Eberly sa povodne preslavil knihou "3D Game Engine Design". Dnes znie
uspechy svojimi aktualnymi dielami "3D Game Engine Architecture" a "Game Physics".
Jeho stranka ponuka zdrojaky Wild Magic enginu, spolu s mnozstvom zaujimavych,
dobre napisanych technickych clankov. Eberly je zarukou kvality a spolahlivym
zdrojom inspiracie. Jeho knizky su povinnym citanim pre game developerov
a predovsetkym pre ludi, ktori si designuju svoj vlastny 3D engine.
| | | |
|
| | | » Realtime Rendering |
 | |
Stranka k dnes uz legendarnej knihe Real-Time Rendering (Tomas Akenine-Möller, Eric Haines).
Okrem vybranych casti z knihy tu najdete velke mnozstvo okomentovanych linkov na zaujimave
clanky z oblasti grafiky, vychadzajuce knihy a pod.
| | | |
|
| | | » John C. Hart |
 | |
Vedec pohybujuci sa na hrane vyskumu v 3D grafike. Zaobera sa proceduralnym
modelovanim, texturovanim, fraktalnou geometriou, GPU algoritmami, clusterizaciou
atd. Jeho publikacie su volne pristupne.
| | | |
|
| | | » Peter-Pike Sloan |
 | |
Jeho clanky o specialnej metode osvetlovania nazvanej Precomputed Radiance Transfer
ovplyvnili uz aj demoscenu. Vyuzitie tychto technik si vychutname vo viacerych demach
polskej skupiny Plastic a v jednoduchsej podobe napriklad v 64k intre 195/95/256
skupiny RGBA.
| | | |
|
| | | » NeHe (Neon Helium Productions!) |
 | |
NeHe je chlapik, ktory sa v dobrom zmysle slova preslavil tutorialmi, ktore
vas krok po kroku vovedu do sveta OpenGL a 3D grafiky vobec. Jeho stranka obsahuje
niekolko desiatok tutorialov a clankov o roznych grafickych technikach a
suvisiacich veciach spolu so stiahnutelnym kodom. Mnoho zacinajucich demomakerov
sa odrazilo prave na NeHe tutorialoch a pamatnici iste nemusia siahat hlboko
aby si spomenuli na dema, ktore chybovymi hlaskami prezradzali, odkial koder
zobral inicializacny kod.
| | | |
|
| | | » Dingus |
 | |
3D engine pouzivany v demach skupiny Nesnausk, najnovsie v zaujimavom
a technicky vyspelom in.out.side
| | | |
|
| | | » Poznamky z PG na MFF UK v Prahe |
 | |
Poznamky k prednaskam o pocitacovej grafike na MFF UK v Prahe vo formate PDF.
Siroky zaber do problematiky, po cesky.
| | | |
|
| | | » Poznamky z PG na fakulte elektrotechniky v Prahe |
 | |
Poznamky k prednaskam z pocitacovej grafiky v cestine. Do znacnej miery ovplyvnene
OpenGL, mensi rozsah ako konkurencia z MFF, ale zato viac down-to-earth.
| | | |
|
| | | » NIST Dictionary of Algorithms and Data Structures |
 | |
Viac siroky nez hlboky prehlad terminologie, algoritmov a datovych struktur
pouzivanych v pocitacovej vede.
| | | |
|
| | | » FlipCode |
 | |
Stranka orientovana na hry z coderskej stranky. A kedze od hier k demam netreba urazit
dlhu cestu (aspon po technologickej stranke), tato stranka zaujme aj nas. Ponuka rozsiahle
forum na diskusiu o programovani.
| | | |
|
| | | » GamaSutra |
 | |
Vacsi brat FlipCodeu, ludia v pozadi tejto stranky stoja za znamou Game Developers
Converence (GDC) a Game Developer's Magazine (gdmag). Tato trojica tvori Mekku
pre game developerov, ale sceneri si tu tiez pridu na svoje. Mnozstvo zaujimavych
odbornych clankov ako aj noviniek z herneho sveta.
| | | |
|
| | | » ShaderTech |
 | |
Stranky zabyvajici se vyvojem pixel a vertex shaderu, s mnozstvim ukazkovych programu a jejich zdrojovych kodu, tutorialu, a archivem bohuzel ponekud starsich novinek.
| | | |
|
| | | » GameProgrammer.org |
 | |
Menej znama stranka o hrach. Novinky, OpenGL tutorialy, fora.
| | | |
|
| | | » CodeSampler |
 | |
Stranka prinasejici zdrojove kody, predevsim z oblasti 3D grafiky a game enginu.
Se zamerenim na obe hlavni API, tedy OpenGL a DirectX, a jejich vzajemnym porovnanim.
| | | |
|
|
| |
|