Jövőbe tekintő sorozat 16. rész: Mit tud majd a DirectX 11?

  • Írta: Chocho
  • 2009. február 14.
Link másolása
Akármilyen géppel vagy konzollal rendelkezzünk is, elvárjuk, hogy évről évre szebb játékok lássanak napvilágot. Egyre divatosabban használjuk a "shader" és "szűrés" kifejezéseket, minden eltelt nappal kritikusabbá válunk, és csak reméljük, hogy lassan eljön a nap, amikor már meg se lehet különböztetni a valóságot a játéktól. De vajon ez mikor következik be?
Mielőtt még elmerülnénk a DirectX 11 mélységeiben, nem árt egy kis technikaóra, hogy könnyebben érthető legyen, miért is várunk olyan sokat a Microsoft legfrissebb üdvöskéjétől. A videokártyák grafikus processzorai (GPU-i) abban különböznek a számítógép agyának is nevezett processzoroktól (CPU-któl), hogy míg utóbbiakat már évek óta szigorú szabványok alapján kell felépíteni, addig előbbiekre mindez nem igaz. Akármilyen architektúrát alkalmazhatunk, a lehetőségek határa a csillagos ég. Ahhoz viszont, hogy mindez működjön, szükség van egy alkalmazási felületre (API-ra), ami bármilyen videokártyát képes felismerni, s mellyel kommunikálva annak meghajtó programja kihasználhatja az eszközben rejlő lehetőségeket. Ez az API tehát létfontosságú a gyors és mindenki számára elérhető 3D-s grafika kiszámításában. Jelenleg két uralkodó típus osztja meg egymással a piacot. Az egyik az OpenGL, melyet az egyszeri játékosok főként az id FPS-eiből ismerhetnek (az összes teljesen 3D-s id motor arra épült), a másik pedig a tortából jóval nagyobb szeletet kivágó DirectX.

Mivel utóbbi nem szorul különösebb bemutatásra, legyen elég annyi, hogy ez manapság a legelterjedtebb platform. A forradalmi 8.1 után (Az übergéniusz, John Carmack szerint se készült azóta innovatívabb felület.) megérkezett a 9, mely bár koránt sem volt akkora durranás, mégis átvette a korábban uralkodó 7 helyét a játékvilágban. A DirectX 10-re a Windows Vista megjelenéséig várnunk kellett, ám mikor végre kijött, nagyon megosztotta a közönséget. Kihasználni a mai napig nem tudta senki, holott lényege nem is a grafikai tupír, hanem a programozást leegyszerűsítendő felépítésében rejlett. Ennek ellenére még most is a DirectX 9 a vezető, s még egyetlen olyan játék sem látott napvilágot, mely kizárólag a DirectX 10-re épült volna. A Microsoft látva a kvázi sikertelenségét, nem is oly rég bejelentette API-ja 11. generációját, ami a 10-hez hasonlóan most is egy új operációs rendszer keretében érkezik majd (Windows 7). De vajon jó lesz-e ez nekünk? Szükségünk van-e még egy kihasználatlan felületre, avagy komoly forradalom készül? Bemutatómban igyekszem közérthetően megismertetni a DirectX 11 legfontosabb tulajdonságait és újdonságait.


Szebb jövőt

A DirectX 10 legnagyobb buktatói pont az őt teremtő cég ostobaságaiból fakadtak. Csak és kizárólag Windows Vista operációs rendszer mellett volt elérhető, egyetlen játék sem használta ki, a driverek nem támogatták rendesen, és a tetejébe még a beígért Flight Simulator patch sem érkezett meg időben. Szerencsére az óriás tanult a hibáiból, így a DX 11 Vista alatt is elérhető lesz, jóval nagyobb táborra szert téve már rögtön a megjelenésekor. Mindez persze mit sem érne, ha nem lehetne rendesen programot írni rá, de a birtokunkban lévő eddigi információk és a novemberben elérhetővé tett DirectX SDK DX 11-et is tartalmazó elemei kellően meggyőzőek. A legnagyobb előnye a DX 11-nek a DX 10-zel szemben, hogy míg utóbbi egy abszolút új irányba terelt fejlesztés volt, addig a 11 nagyon sok elemében hasonlít a DX 10-hez.


Ahhoz, hogy ezt megértsük, tudnunk kell, hogy is működik egy átlagos API. Legfontosabb feladata természetesen nem más, mint megmondani a hardvernek, hogyan számolja ki a 3D-s világ szintén 3D-s elemeit és miként rajzolja ki őket a képernyőre. Ezt a folyamatot hívjuk pipeline-nak. A DirectX 10 sok forradalmi lépést tett a dolgok egyszerűsítése érdekében, s utódja mindezeket egy az egyben át fogja venni. Amiben mégis más lesz, az a vertex számítások után beiktatott három új tesszellációs lépcsőfok. A tesszellátor feladata a térgeometriai formák apró elemekre bontása, hogy valami bonyolultabb épülhessen fel belőlük, alapanyagot, azaz számítási kapacitást spórolva ezzel. Továbbá megjelenik még a Compute Shadernek nevezett, minden tekintetben forradalmi eljárás, mely lehetővé teszi a fejlesztők számára, hogy magát az API-t megkerülve sajtoljanak ki extra erőforrásokat a GPU-ból. Ennek részletezésébe most nem mennék bele, de mindez magyarra lefordítva annyit tesz, hogy sokkal kevesebb munkával jóval nagyobb teljesítmény érhető el a DirectX 11 használata közben, egyre közelebb hozva a valóságos grafika álmának megvalósulását.


Joggal tehetjük fel a kérdést, hogy miért is jó nekünk mindez, ha olyan 70-30%-os arányban még mindig a DirectX 10.1-et kapjuk meg új köntösben? A válasz egy üzletileg kétségkívül zseniális ötletben rejlik. A 11-es Microsoft API megjelenésével nem csak az új csúcskártyák tulajdonosai jutnak előnyökhöz, hanem a mostani, DX 10.1-es VGA-k felhasználói is! Köszönhetően a 11 operációs rendszerhez és driverekhez szorosan kötődő programozási hátterének, megfelelő támogatással a mostani kártyák teljesítménye is nő. A legszebb az egészben, hogy ez még a meghajtókat programozó csapatoktól sem kíván túl nagy megerőltetést, mert a két platform közti átjárásnak hála pofonegyszerű lesz 10-ről 11-re, vagy épp fordítva portolni. Aki tehát nemrégiben vette meg HD4870 X2-esét, nem kell elkeseredjen, mert jó ideig szórakozhat még vele, különösebb kompromisszumok nélkül is. Meg kell még jegyezni, hogy a DX 11 a 10-től eltérően az összes régebbi kártyával együttműködik majd.


Nem csak gyorsabb, sokkal szebb is!

Ugyan a több szálon futó (angolul csak multi-threaded) programozás lehetősége már évtizedek óta adott, a fejlesztők csak nemrégiben kerültek vele konkrét kapcsolatba, hála a többmagos processzoroknak. A Microsoft felismerte az ebben rejlő lehetőségeket, s most végre úgy tűnik, élnek is velük. A DX 11 nem csak a grafikus engine több szálra való installálását támogatja, de maga a játék belső motorja, forráskódja is profitálhat belőle. Mi több, ez működik majd DirectX 10-zel felszerelt, de DX 11-et telepített gépeken is, noha elképzelhető, hogy egyes esetekben a gyorsulás helyett lassulást eredményez. Manapság még nem nagyon létezik olyan motor, ami komolyan szükségessé tenné ezt a felhasználási módot, de a jövő megpróbáltatásai (CryEngine 3.0, vagy a már régóta készülő Unreal Engine 4.0) napról napra közelebb vannak, így nem árt a felkészülés.


Ha pedig már a jövő, akkor új shaderek. A Microsoft's High Level Shader Language (azaz HLSL) a DirectX 11-gyel az 5.0-ás verziószámhoz érkezik. Mivel a HLSL felépítése mindig emlékeztetett a C programnyelvére, már épp ideje volt az osztályok és interfészek beimplantálásának. Akik egy kicsit is ismerik a programozást, tudják, hogy milyen nehéz nagy adategységekkel dolgozni, ha nincs objektumorientált háttér. Ez a helyzet a mai játékok shaderigényeivel is. A kódsorok nagyok, újra és újra be kell illeszteni őket, ami lassítja a motort és elnyújtja a fejlesztés fázisait. Az új megoldásnak hála viszont minden egyes fontosabb shader leírható lesz egy osztályban, mely később bármikor meghívhatóvá válik a forrásból. Ezzel együttvéve a mutatókat is száműzik a nyelvből, így a memória sem kap felesleges terhelést.


Végszó


Ugyan sok dologról nem ejtettem szót, és lenne még bőven írnivaló a DirectX 11-ről, de szándékosan fogtam vissza magam. Egyrészről már így is picit túl technokrata lett a megközelítés, továbbá pedig úgyis csak az elméletek és elképzelések vizein eveznénk, mert ettől fogva az ismereteink már nem mind bizonyítottak. Nincs tehát jobb dolgunk, mint várni, hogy a Windows 7 elvileg jövő év eleji premierjekor az új API berobbanjon a köztudatba. Ami viszont mindenképp biztos, az a DX 11 innovációja. Ilyet már a 8.1 óta várunk, s ha csak nem rontanak el valamit nagyon a Microsoft fejlesztői, nem is fogunk csalódni. Csak jelenjen már meg a Crysis 2, hogy láthassak egy multi-threaded dzsungelt!

Kapcsolódó cikkek

31.
31.
Dcrysis02
"Az első link egy nagy marketing fogás, mert ezek a pc-s konfiguráció minimumm gépigénye és ugye nézzük a PS2-t amiben 32 MB ram volt összesen, és az arról áltportolt játékoknak pc-bn kellett 256MB is..."

Már láttam ezt a kérdést válaszként egy külföldi oldalon.

"As people here say, games on consoles use a heck of a lot less ram than the same game on a pc."

lefordítom:"Ahogy itt az emberek is mondják,a konzolon a játékok jóval kevesebb ramot használnak mint a pc-n."



És most ha nem bánod más válaszával élnék:

"Nem,az nem így működik.A konzol portok PC-n több RAM-ot használnak,mert van,és akkor miért ne használnák ki?Nincs értelme hogy egy játék 256Mb RAM-ot használjon ha 1024Mb-ot is tud használni lerövidítve ezzel a töltési időt,és akadásmentesen tudjon játszani egy játékot.Szerintem meglehetne oldani azt hogy a konzolos portok PC-n ugyanannyi RAM-ot használjanak mint a konzolok,de akkor több gigabyte-nyi RAM használatlan maradna a gépedben."

Meg ugye az is közrejátszik a legtöbb portnál hogy tuningolva van a PC-s verzió.(Gears of War,GTAIV,DMC4,Lost Planet)
30.
30.
Dcrysis02
Persze,de ha akarod folytathatjuk az Incrysis.com-on ott már legalább megvan kezdve a téma.Mondd hogy mikor és ott tudunk beszélni.Legalább ott az adminisztrátorok és a modok és beleszólnak néha a beszélgetésbe.Szívesen diskurálnék még veled.Ott is ugyanezzel a nickkel vagyok fent.Írj hogy mikor jó és megpróbálok majd időt szakítani rá.
29.
29.
Tokodboy
#30

Igazad van, még nem foglalkozom fejlesztőként, csak tanulom egyenlőre, ha minden jól megy 1 év még, most jelenleg Crytektől jönnek szakemberek oktatni fél évig, ha tudok rákérdezek és persze ha válaszolnak a kérdésemre privibe folytatjuk, ha szeretnéd
28.
28.
Dcrysis02
30:Csődbe ment volna a PC ipar?Attól hogy bejelentik hogy egy játék elfutna konzolokon?Még ma is ez az ipar hozza a legtöbbet a konyhára.Nem,nem ebben a szakmában tevékenykedem csak rám ragadt pár dolog az évek során,és szoktam olvasgatni ezekről a dolgokról.De erősen kétlem hogy te fejlesztő lennél mert akkor nem mondtál volna ilyen már elnézést"hülyeséget" hogy emiatt a PC ipar csődbe menne.Ez komplett nonszensz.

És kettő:Ram hiány miatt lenne gond.Tudod miért?Mert a konzolok nem tudják azt a nagy teret megjeleníteni ami ott szerepel.Crysis körülbelül 1500Mb RAM-ot tölt be akkor ha csak kicsit akciódúsabb lesz a játék(Nem számítva a Vramot amivel a kártya rendelkezik)Akárhogy is nézzük nincsen elég RAM a konzolokban amik elbírnának a Crysis óriási pályáival,és mert túl sok dolog folyik a háttérben egyszerre.Drasztikusan csökkenteni kéne a látótávolságot,a LOD-ot,a növényzetet,a polygonszámot,és butítani kéne a shadereken,és meg kéne szabadulni a pusztítható tárgyak többségétől.Nem kétséges hogy elfutna a Crysis a konzolokon,de nem eredeti minőségben.Így már érted?Ha ezektől meg kéne szabadulniuk egy teljesen másik játékot kéne már készíteniük.Főleg ha a pályákba is bele kell piszkálniuk.A távolban lévő növényekre is hat a szél,a gép folyamatosan kalkulációkat végez,és a távolban látott dolgok sem "díszek" hanem azokat is betölti a gép.

Ettől nem várhattok egy Killzone csodát mivel teljesen más a deffered rendering és a CryEngine 2.Sőt úgy tudom hogy mikor a Crysis készült nem is volt nagyon elterjedt a DR-féle motor.
27.
27.
Tokodboy
De teljesen mindegy, hülyeség ilyenen vitatkoznunk, majd meglátjuk, hogy mit hoz a jövő
26.
26.
Tokodboy
#30

Az első link egy nagy marketing fogás, mert ezek a pc-s konfiguráció minimumm gépigénye és ugye nézzük a PS2-t amiben 32 MB ram volt összesen, és az arról áltportolt játékoknak pc-bn kellett 256MB is...

Csődbe is ment volna 2007-ben a PC-s piac ha bejelntik, hogy röhögve elfutna konzolokon is. Meg akkoriban a PC nagyon le volt maradva HW-rileg a konzoloktól, mondhat akárki akármit is



Nem hazudok elhihetitek, erre meg is esküszöm, hogy ott voltam és személyesn a két fülemmel hallottam.

Max csak a fizika miatt lenne gond, de azzal sem lesz mert az eddigi megjelent játékok közűl a Star Wars The Force Unleashednak van a legdurvább fizikai motorja, szám szerint 3 dübörög alatta, ami egy programozói bravúr.



Én azt mondom, hogy 80-90%-ban zsír ugyanaz lenne mint PC-n.



Személyes Kérdés Dcrysis02-hez:

Véletlenűl nem foglalkozol játékfejlesztéssel vagy valami hasonló dologgal?
25.
25.
Dcrysis02
29:Te tényleg nem érted,igaz?Figyi:kérdeznék valamit:Ha a Crysis most kijönne konzolokra szerinted ugyanaz lenne mint PC-n?

28:Szerinted miért linkeltem be?Csak azok tudják mi futott akik bennt is voltak.Sajnos nem árulhatják el mi volt.De kétlem hogy a Crysis lett volna.Azt eltudom képzelni hogy egy tech-demót összerittyentettek az alkalomra de ennyi.

A te "nem árulhatom el,ki,mikor,miről,miért,hogyan" szövegedet meg őszintén nagy BS-nek találom.Nem kétséges hogy lesz valamikor konzolon Crysis,de most még kétlem hogy itt lenne annak az ideje.Na,de az első kérdésemre válaszoljál légyszíves.
24.
24.
Tokodboy
Ha az első rész nem is, de a Crysis 2 tuti, hogy fog jönni konzolokra
23.
23.
Tokodboy
De majd kiderül idővel minden úgy is:)

Ha meg Isten úgy akarja akkor úgysem fog megjelenni, de azt már mindenki tudja, hogy tavaly a Crysis futott konzolkon, amikor a cég a CRYENGINE 2 konzolos változatát demózta
22.
22.
Tokodboy
É n meg maguktól a fejlesztőktől hallottam...., és ez nem vicc
21.
21.
Dcrysis02
24:Bocsi de Yerli számtalanszor megerősítette már hogy a Crysis exkluzív darab és hogy MÁSIK sorozatok jönnek ki a CryEngine 2.0-vel konzolra.

Egyszer:(2007)http://www.gwn.com/news/story.php/id/10208/Crytek_CEO_Crysis_Not_Possible_on_Consoles.html
Kétszer:(2008)http://pc.ign.com/articles/906/906291p1.html
Háromszor:(2009)http://www.1up.com/do/newsStory?cId=3172848
Inkább te nézzél utána a dolgoknak mert nagyon,de nagyon mellé beszélsz.A Crytek most már nem CSAK PC,hanem konzol játékokat is fejleszt,mert ugye a Free Radical konzolos játékokat fejlesztett.De ez nem azt jelenti hogy nem maradnak exkluzívjai.Csak átveszik a megmaradt FR projekteket.
20.
20.
Cootermain
19: "össze-vissza verte a 7600GT" bocs lemaradt egy "-t"."össze-vissza verte a 7600GT-t".Igy akartam irni de nincs szerkesztés gomb.



22:igazad van az X1950XTX-nek közelébe sem ért de a korábbi felső kategóriás Radeonokat és GeForceokat (pl.:7800 GS)megverte.Régen nekem is 8600GT-m volt és annyira nem gyenge kártya,persze örülök hogy megszabadultam tőle.
19.
19.
Tokodboy
A sebesség növekedés meg azért van, mert jobb drivereket írtak az újjabb videókárytájukra mint a 8500GT-re.

A Crysis2 meg tuti, hogy ki jön konzolokra, vagy csak konzolokra, de idén sztem jön a Crysis is, CRY ENGINE 2 készen van konzolokra, és a cég is inkább a konzolok felé nyít most már, nézzetek utána, neten van egy csomó anyag róla
18.
18.
Tokodboy
Mondjuk úgy, hogy íbztos forráokból tudom, mind az új engine, mind a videokártyák képességeit amitl, írtam, a videójáték szakma egyik két legnagyobb emberétől hallottam személyesen, nem csak én, hanem még vagy 20an, de nem írhatom le, hogy hol és kiktől pontosan, ha itt étvedésről van szó, akkor ők tévedtek, de nem hiszem, ők látták a 2 kártya architektúráját és tök ugyanaz, mivel velük dolgoznak nap mint nap én hiszek nekik, max az órajal van egy kicsit felhúzva, de ennyi.

De mindnekinek természetesen a szíve joga, hogy elhiszi vagy nem, én elhiszem:)
17.
17.
Madd Dogg
11: Kikérem magamnak az összehasonlítgatást. X1950XTX-em van, jól néznénk már ki, ha egy 8600GT ilyet menne :D :D :D
16.
16.
Chocho
20#: Mivel maga a Crysis sem nevezhető igazi DX10-es játéknak (XP alatt, DX9 mellett is elő lehet csalogatni az effektjei 90%-át), ezért elképzelhetőnek tartom, hogy az új motor sem fogja maximálisan kihasználni a 11 grafikai adottságait. De nem is kell neki, elég, ha a sebességből profitál. Az ugyanis valljuk be, nagyon ráférne a Crytek gyermekére...
15.
15.
Dcrysis02
Chocho:Vajon az eredetileg eltervezett CryEngine-t fogják kiadni,vagy szerinted tovább szeretnének lépni most hogy közeleg a DX11?Mert amit eltávolítottak a motorból azt most már azért némileg képesek megjeleníteni az újabb kártyák.

Példának szúrom csak be a két videót:

Eredeti:http://www.gametrailers.com/player/19965.html
YTS-s videója a GDC06-on bemutatott pályával:

http://www.youtube.com/watch?v=IzESIqkzuTU&feature=channel_page&fmt=18
Jó lenne ha megkapnánk a beígért külsőt.De kíváncsi vagyok hogy a DX11 befolyásolni fogja-e a további fejlesztéseket.
14.
14.
Chocho
#18: A DirectX egy PC-s API, semmi köze a konzolokhoz. Mindössze másolnak belőle pár elemet, de azt is maximum az Xbox teszi, hisz a liszensz a Microsoft tulajdonában van. Az UE 4.0-ról valóban volt hír, mely szerint meg akarják várni a következő konzolgenerációt, de szerintem azóta már letettek róla, lévén ez 2003-ban (!!!) hangzott el (és igen, már akkor két generációval előrébb gondolkodott az Epic). A Crytek új motorjára pedig biztos nem kell annyit várni, mert eddig sem idomultak a konzolok képességeihez.



#15: A 7600GT nem volt felső kategóriás kártya. A 6600GT helyét kívánta átvenni, viszonylag sikerrel.
13.
13.
Scoo
Tokodboynak (#12) annyiban igaza lehet, hogy igazán elterjedni akkor fog az új directx ha az már az új konzolokba is benne lesz. Elvégre manapság a játékpiac elsősorban a konzolokról szól, nem a pckről. Így valószínűleg amíg ez a generácó él kevés játék lesz ami igazán kifogja hazsnálni az új diretcx-et.
12.
12.
Cootermain
15:Csak szólok hogy a 8600GT nagyjából a Radeon X1900XT-vel van egy szinten ami össze-vissza verte a 7600GT lévén hogy felső kategóriás kártya volt.Persze abban igazad van hogy a 8600 és a 9600 két különböző generáció viszont a 8800GT annak ellenére hogy 8-as már a G92-es magra épül míg a 9600GT G94-esre.
11.
11.
Optimus Prime
Hát ez mind nagyon érdekes és jó cikk, de ez engem egyáltalán nem fog érinteni. XD

XP-vel és egy Geferoce 8600 GT-vel ezeknek nem sok hasznát veszem. Azon felül nagyobb rajongója vagyok a 2-5 éves játékoknak, mint a ma hype-olt grafikai orgiáknak.
10.
10.
Dcrysis02
12:Azt meg honnan veszed?Még csak most portolták át a CryEngine 2.0-őt a konzolokra.Szerintem nem fognak várni míg megjelenik a PS4 meg az X720.Sehol sincs leírva hogy a next-gen konzolokkal jön a CE3.0.
9.
9.
Tokodboy
Teszcállicíós egység üdvözölendő dolog, bár már az X360-ban is van, csak még nem nagyon használják, ott 15-ször lehet tesszellálni:D
8.
8.
Tokodboy
Az UE4 meg a CYENGINE 3 csak a következő generációs konzolokkal együtt fog megjelenni, erre még kár számítani.

Már idleye, hogy kiadnak uja kártyákat, mert az elég buzeráns húzás mind a NVidiatól mind az Atitól, hogy ugyanazt a kártyát eladják 3 különböző néven pl.: geforce 8600 és 9600.... és ennek most jön a 3. rókabőr lehúzása csak nem tudom mi a neve a kártyának...

7.
7.
felegyi
10# Ja. Nem kell parázni, megy ez csak ahogy le van írva a cikkben sok esetben visszafogja gépet. Bár szerintem senki sem fog belehalni ha addigra vesz egy DX11-es karit, hiszen fél évvel a megjelenés után nem lesz drágább a 9800 30k-nál... (ha átrakják DX11-be a kártyát)
Hozzászólás írásához be kell jelentkezned!
Ha nem vagy még tag, regisztrálj! 2 perc az egész.
Egy kis türelmet kérünk...