DirectX og Direct3D
DirectX er microsoft egen kommunikations-standard og er blevet udviklet løbende. Jeg vil ikke granske i de helt gamle udgaver, selvom der skete ligeså store fremskridt dengang som der gør i dag.
Men de grafikkort der bliver produceret i dag er fra DirectX6.0 op til 9.0
Den moderne udvikling og interesse for DirectX stammer i høj grad fra benchmarkprogrammet 3Dmark, der har leveret benchmarks til de nyeste opkomlinger af DirectX. Den sidste nye 3Dmark05 er faktisk den første, der ikke basere sig på en ny udgave af DirectX.
Men hvad er DirextX så?
Faktisk har DirectX ikke vildt meget med grafikkortet at gøre. Dets funktion er meget grundlæggende at få det forskellige hardware til at kommunikere sammen. Det kunne f.eks. være:
At musen fungerer sammen med grafikkortet, således at vi kan se den bevæge sig på skærmen. I sig selv snakker DirectX på tværs af driverne, og ved directX ikke hvad en pixelshader er, så når beskeden aldrig ud til grafikkortet. Det lyder meget simpelt, men med de mængder af funktioner og øget mulighed for kommunikation mellem driverne, gør faktisk dette stykke software meget avanceret. Så directX er altså en kommunikationsform og det er ikke kun beregnet til grafikkortet, men også lydkort, mus, tastatur osv. Grafikkortets funktioner er selvfølgelig indkodet i DirectX-driveren hvilket gør den til den vigtigste bestanddel af DirectX og det udvikles derfor også løbende sammen med grafikkortene.
Bogstavsrækken beskriver ikke en fornyelse men en optimering. Så da Geforce6-serien kom, måtte microsoft muligvis omskrive den oprindelige kode lidt, for at understøtte de nyere grafikkort.
Microsoft har muligvis set shader3.0 som en mildere opdatering, og af god grund da det på mange områder minder om shader 2.0.
Faktisk er der rygter der siger, at shader3.0 altid har været i DirectX9 og at microsoft blot har opdateret koden så det passer til de nyeste grafikkort, ad den grund at microsoft ikke kendte ret meget til geforce6 og Radeon X800 da Geforce4ti samt Radeon8500 var det hotteste.
Direct3D er selve grafikprogrammeringen som er en del af DirectX. DirectX er altså den samlede pakke der bl.a. indeholder Direct3D med bl.a. de opdaterede shadere osv. og er bl.a. det man vælger når man vil spille med microsofts grafikmetode.
DirectX har sit eget diagnosticeringsværktøj og kan let findes på følgende måde, herinde kan man arbejde med directX, og det er bl.a. muligt at se at det ikke kun er grafikkortet der ligger under for directX.
Næste generation af DirectX, som tidligere har været kendt som directX 10 og DirectX next, har fået navnet WGF Det står for Windows Graphic Foundation og der er flere grunde til navneskiftet. Den første grund er at microsoft har gjort DirectX-afdelingen uafhængig. En anden grund er at det skal vise en milepæl inden for denne verden. Tredje grund er at det højst sandsynligt bliver udgivet sammen med næste generation af Windows, kendt som Windows Longhorn.
Når WGF 1.0 kommer vil vi se 3Dgrafik i selve Windows, og det bliver så grundlæggende, at man ikke vil kunne spille minestryger uden at have min. pixelshader2.0 på grafikkortet. Det er bl.a. grunden til, at det er så vigtigt for bundkortproducenternes at deres kommende integrerede grafikkort min. har pixelshader 2.0, for ellers vil de ikke kunne fungere sammen med den kommende Windows.
WGF 1.0 vil på mange områder minde om et DirectX9.0 og skal nok mest ses som en slags DirectX9.0d der sørger for optimering til windows longhorn samt opdateringer til nye grafikkort. Om vi nogensinde får en decideret WGF1.0-opdatering tror jeg ikke. Dette skal mest ses som grafikkortene er parate til at udnytte windows longhorn fuldt ud.
Jeg tror at WGF 1.0-mærkningen mest vil ses på grafikkort og at WGF-opdateringen vil være en WGF2.0 der indeholder WGF1.0 som i virkeligheden blot er en opdateret directX9.
WGF2.0 vil være den standard der også er kendt som DirectX10 og DirectX next, og være den der kommer med shader4.0-understøttelse.
Det vil højst sandsynligt blive en mærkning på grafikkortene der vil beskrive hvor meget de egentligt kan. Om direct3D-navnet forsvinder med WGF ved jeg ikke, men mon ikke de også her finder på noget nyt.
OpenGL
OpenGL indeholder en grafik-kodning ligesom DirectX. Den er ældre og derfor også mere simpel, og kan benyttes især i ældre spil, samt til professionelt brug. Nogle nyere spil som Warcraft3, World Of Warcraft samt Doom3 benytter sig stadig af openGL. OpenGL samarbejder oftest sammen med DirectX om f.eks. lydkort, men hvor DirectX tager sig både af grafikkortet og den interne kommunikation, tager openGL-driveren over der hvor grafikken skal laves.
OpenGL er opensource og derfor frit tilgængelig.
Der venter en OpenGL2.0 som virkelig skal begynde at benytte de moderne dele af grafikkortets hardware. Grundet dets alder, har openGL 1.x ikke 100% mulighed for at udnytte alle de moderne teknikker i hardwaren. Det skal openGL2.0 ændre på, og flere grafikkortproducenter har allerede meldt ud, at flere af deres kort allerede nu understøtter OpenGL2.0.
Der findes flere andre standarder, og især det gamle grafikkortfirma 3dfx havde et par andre OpenGL-lignende standarder ude at køre. Glide er f.eks. fuldt integreret i chippen og grundidéen er lidt li' med T&L. Altså at chippen var forudprogrammeret og optimeret til at tage sig af nogle specielle grafik-intensive udregninger. En anden er WickedGL som er en 3parts-udvikling. Kun de sidste 3dfx-kort understøttede OpenGL i driverne, så derfor udviklede nogle uden for 3dfx WickedGL der kunne danne bro mellem 3dfx og openGL.