scene.cz - cs demoscene portal
    HOME |  CO JE TO DEMOSCÉNA |  JAK TVOŘIT |  OSA CS DEMOSCÉNY |  DISKUZE |  AKCE |  VÝBĚR DEM |  ODKAZY
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.
  


 
Nejnovejsi odkazy v teto sekci :
CodeSampler - Zdrojaky z oblasti 3D grafiky
BeroTracker - nadupany tracker

CS skupiny :
Broncs | produkce
CS_zvuk
Downtown | produkce
Insomnia | produkce
LowFuel | produkce
Marshals | produkce
MovSD | produkce
clrsrc | produkce
terror opera | produkce
Pine Records
Pipkasoft | produkce
Satori | produkce
Tetris
Vectors | produkce
tb2 | produkce
eL | produkce
7gods | produkce
Peon | produkce
Osiris | produkce
Kosicky vyber | produkce