Klávesové zkratky na tomto webu - základní­
Přeskočit hlavičku portálu


Jazyk Cg od NVIDIE: nová éra v programování grafických efektů

aktualizováno 
Programovat grafické efekty na úrovni hardwaru není žádný med a vývojáři her jistě mnohokrát zatoužili po jazyku vyšší úrovně, který by umožnil snadnější psaní pixel a vertex shaderů. NVIDIA jim nyní vychází vstříc a zdá se, že ve svém jazyce Cg přináší grafickému světu nový a pevný standard.

Historie se opakuje
Když se objevily první mikroprocesory, neexistovaly pro ně žádné jazyky vyšší úrovně (Pascal, C, Basic apod.). Prvním programovacím prostředkem, na němž se muselo teprve vybudovat všechno ostatní, byl tzv. assembler – jazyk, který má převelice blízko k vlastnímu strojovému kódu daného procesoru (strojovým kódem rozumíme elementární instrukce ve formě čísel, které procesor umí přímo vykonat). Pod každým příkazem vyššího programovacího jazyka se obvykle skrývá velké množství (desítky, stovky, ale i tisíce) jednotlivých strojových instrukcí procesoru. Dnešní nástroje, jejichž pomocí vznikají typické aplikační programy a hry, poskytují vývojářům možnosti na hony vzdálené primitivnosti strojového kódu.

Programovat v assembleru není žádný med a dělá se to v podstatě jen tehdy, když není pro daný procesor žádný vyšší jazyk k dispozici, nebo když je potřeba docílit maximální rychlosti programu. Proto bylo jen otázkou času, kdy se objeví něco komfortnějšího i pro grafické procesory (GPU) s programovatelnými enginy. První vlaštovka právě přilétá, je (nic překvapivého) z dílny agilní NVIDIE, ale bude použitelná na všech grafických čipech kompatibilních s DirectX 8.

Tři tisková prohlášení
Minulý týden přišla NVIDIA se třemi separátními zprávami, které položily solidní základnu pro nástup nové éry programování. V první z nich představila vlastní jazyk Cg – C pro grafiku, jehož účelem je podstatně zjednodušit tvorbu zvláštních efektů na moderních grafických kartách. Syntakticky je, jak už název napovídá, Cg velmi podobné klasickému Céčku – většina datových typů je stejná, stejně se deklarují i proměnné a funkce atd. Výhody vyššího jazyka nad dosud používaným assemblerem jsou zřejmé – kromě jiných můžeme jmenovat rychlejší a efektivnější vývoj a ladění, optimalizaci prováděnou kompilátorem a přenositelnost programu na větší množství hardwarových Cg aneb grafické Céčko od NVIDIEplatforem. Cg vznikalo v úzké spolupráci s Microsoftem – je kompatibilní s jeho jazykem High Level Shading Language (ohlášen na Game Developers Conference 2002 v dubnu tohoto roku), který bude podporován rozhraním DirectX 9.0.

Na následujícím obrázku vidíte grafické efekty, kterých lze docílit pomocí shaderů.

 Zatímco první tisková zpráva se týkala věci abstraktní, tedy specifikace jazyka, druhé oznámení se již týkalo konkrétního produktu: kompilátoru jazyka Cg. Tento kompilátor je ústředním bodem vývojového prostředí NVIDIA Cg Toolkit 1.0, jehož veřejnou betaverzi si lze zdarma stáhnout ze stránek NVIDIE (je k dispozici pro Windows a Linux). Pro neprogramátory: kompilátor je program, který ze zdrojového kódu (typicky textový soubor) vytvoří cílový kód – v případě kompilátoru jazyka Cg (CgC) se jedná o výstup v assembleru pro grafický čip. CgC podporuje tyto významné platformy: Windows (DirectX 8, DirectX 9, OpenGL), Linux (OpenGL), Mac OS X (OpenGL) a Xbox. NVIDIA zřídila speciální stránku http://www.cgshaders.org, která se má stát oblíbeným návštěvním místem všech tvůrců pixelvertex shaderů – měli by zde najít volně použitelná dílka jiných autorů (a případně sami přispět), články na související témata a soutěže o zajímavé ceny.

Ve třetí tiskové zprávě se NVIDIA chlubí, a s největší pravděpodobností oprávněně, širokou podporou, které se jejím výše popsaným iniciativám dostává u vývojářů her a jiných grafických aplikací. Mnoho významných osobností se vyjádřilo o jazyku Cg a jeho kompilátoru od NVIDIE velmi pochvalně; specifikace Cg se vyvíjela již od druhé polovinyCg aneb grafické Céčko od NVIDIE roku 2001, NVIDIA oslovila stovky vývojářů a ti přispěli ke konečné podobě jazyka svými připomínkami a návrhy. Z herních firem, které podporují Cg, můžeme jmenovat například Bethesdu, Bioware, Blizzard, Codemasters, Core Design, Croteam, Electronic Arts, Ensemble Studios, Fox Interactive, Ion Storm, Lionhead, Lithtech, Massive, Maxis, Novalogic, Relic, Sony nebo Valve. Cg se však uplatní i v „seriózních“ grafických aplikacích firem jako je Alias|Wavefront Maya, Discreet 3DS MAX, SOFTIMAGE|XSI nebo NewTek LightWave 3D.

Základ byl položen
NVIDIA učinila další významný krok, aby upevnila pozici světového grafického lídra – a toto není (jen) reklamní slogan, ale evidentní fakt. Grafické procesory dozrály do stadia, kdy si již zaslouží programovací prostředek vyšší úrovně, a NVIDIA nezaváhala a dodala ho. Zavádí tak v jazyku Cg standard, který se jistě prosadí, a jeho specifikaci si NVIDIA podrží pevně ve svých rukách. Ostatní výrobci grafických čipů se tak buď budou muset smířit s tím, že jejich produkty jsou ve většině případů programovány „konkurenčním jazykem“, nebo se pokusí vytvořit nějaký gPascal či něco podobného. Nemusí však mít strach, že by kompilátor Cg generoval pro jejich čipy nějak nevýhodný kód – a pokud by jim to tak náhodou připadalo, nic jim nebrání vytvořit vlastní překladač Cg, který bude perfektně optimalizovat právě na míru jejich hardwaru.





Hlavní zprávy

Další z rubriky

Senzory obsazenosti parkovacího místa předvádělo několik výrobců a počítají s...
Invaze čidel začala. Podívejte se na to nejzajímavější z IoT Expa

V pražském Fórum Karlín v úterý proběhla konference SigFox World IoT Forum 2017. Podívejte se s námi na ty nejzajímavější představované projekty.  celý článek

Nývlt Václav: Asus ROG Zephyrus
První Max-Q notebook vysune po odklopení displeje podvozek

První notebooky s koncepcí Max-Q od Nvidie míří na český trh. První bude Asus/ROG Zephyrus, hned po něm Acer Triton 700. Oba překvapí tichým chodem při...  celý článek

Dlouho očekávané procesory AMD Ryzen 7 přišly na trh.
Nečekaný dárek. Některá šestijádrová AMD mají patrně omylem osm jader

Příjemné překvapení čekalo na některé nové majitele procesorů Amd Ryzen 1600 a 1600X. Místo slibovaných šesti výpočetních jader dostali model se dvěma jádry...  celý článek

Najdete na iDNES.cz



mobilní verze
© 1999–2017 MAFRA, a. s., a dodavatelé Profimedia, Reuters, ČTK, AP. Jakékoliv užití obsahu včetně převzetí, šíření či dalšího zpřístupňování článků a fotografií je bez souhlasu MAFRA, a. s., zakázáno. Provozovatelem serveru iDNES.cz je MAFRA, a. s., se sídlem
Karla Engliše 519/11, 150 00 Praha 5, IČ: 45313351, zapsaná v obchodním rejstříku vedeném Městským soudem v Praze, oddíl B, vložka 1328. Vydavatelství MAFRA, a. s., je členem koncernu AGROFERT.