DirectX 10
Van Wikipedia
DirectX 10 | |
---|---|
|
|
Ontwikkelaar | Microsoft |
Meest recente versie | / |
Laatse bèta versie | {{{laatste_beta_versie}}} / {{{laatste_beta_releasedatum}}} |
Besturingssysteem | Windows Vista |
Categorie | |
Licentie | EULA |
Website |
DirectX 10 is een verzameling van API's die het voor programmeurs eenvoudiger maakt computerspellen te programmeren op Windows Vista. DirectX 10 is verkrijgbaar sinds de definitieve release van Windows Vista.
Windows Vista heeft als opvolger van Windows XP een hoop technologische vernieuwingen zoals DirectX 10, dat de opvolger wordt van DirectX 9 onder Windows XP.
De ontwikkeling van DirectX 10 was grotendeels gericht op het verhelpen van problemen die programmeurs ondervonden bij de vorige versies van DirectX en om de snelheid, efficiëntie en prestaties aanzienlijk te verhogen.
Inhoud |
[bewerk] DirectX 10 APIs
- DirectX Graphics, bevat twee API's:
- DirectDraw: voor 2D
- Direct3D10 (D3D): voor 3D graphics
- XInput: verwerking van gegevens afkomstig van toetsenbord, muis, joystick of andere spelcontrollers
- DirectPlay: voor communicatie over het netwerk bij spellen
- XACT: afspelen en opnemen van waveform- en 3D-geluiden en 3D-audio-effecten
- DirectMusic: voor het afspelen van soundtracks gemaakt in de DirectMusic Producer
- DirectSetup: voor de installatie van DirectX-componenten die nog niet in de API geïntegreerd zijn.
- DirectX Media: bevat DirectAnimation, DirectShow, DXVAIDirectX Video Acceleration, Direct3D Retained Mode en DirectX Transform voor animatie, afspelen van multimedia en streaming-programma's, 3D, en de interactiviteit hiertussen.
- DirectX Media Objects: ondersteuning voor streaming-objecten zoals encoders, decoders en effecten.
DirectX 10 gebruikt alle DirectX-API's (DirectDraw, Direct3D, etc.) tesamen. (In tegenstelling tot DirectX 9 waar ze onafhankelijk zijn.) Door deze combinatie van API's neemt de snelheid van DirectX10 toe. DirectX is niet omgekeerd compatibel maar kan eerdere DirectX (9, 8, ...) applicaties uitvoeren in een emulatielaag die eerder bekend stond als “Windows Graphics Foundation” (WGF). DirectX 10 voorziet ook ondersteuning voor shaders.
[bewerk] Innovatie
De grafische chip voert meer taken zelfstandig uit, waardoor de gewone processor minder wordt belast. Bovendien kan de grafische processor met DirectX 10 ook voor andere taken ingeschakeld worden.
DirectX 10 gebruikt snellere en compleet nieuwe Dynamically Linked Libraries (DLL's) om de prestaties te verhogen.
Graphics Processing Units (GPU's) die DirectX 10 ondersteunen hebben een geavanceerdere structuur en de onderdelen ervan sluiten beter op elkaar aan. Dit stelt ze in staat om volledige taken uit te voeren, wat traditioneel enkel door de Central Processing unit (CPU) gedaan werd.
Direct3D 10: Microsoft werkt in 2007 aan een grote update van de Direct3D-API. De oorspronkelijke naam was Windows Graphics Foundation en later DirectX Next, maar de API krijgt nu de naam Direct3D 10 toegewezen en zal verschijnen als een deel van Windows Vista. Direct3D 10 vertrekt van het drivermodel van DirectX Graphics 9.0 met de toevoeging van een scheduler en een virtueel geheugensysteem. Direct3D 10 maakt een eind aan het gebruik van "capability bits" om aan te duiden welke features actief zijn binnen de huidige hardware. In plaats hiervan definieert Direct3D 10 een minimumstandaard van hardwaremogelijkheden die ondersteund moeten worden door een systeem om "Direct3D 10-compatibel" te zijn. Microsoft stelt dat Direct3D 10 tot acht maal sneller graphics zal kunnen weergeven dan DirectX Graphics 9.0. Als toevoeging zal Direct3D 10 het Microsoft Shader Model 4.0 in zich opnemen.
High Level Shader Language (HLSL) en Shader Model 4.0: Sinds DirectX 8 in 2000 zijn er verschillende types programmeerbare Shaders geweest. Deze lieten ontwikkelaars toe om het uiterlijk van de graphics naar hun wensen aan te passen door het overschrijven van de "fixed function pipeline" welke altijd de pixels en vertices tekende. In DirectX 8 was dit enkel mogelijk door een bepaalde syntax. Deze syntax was gecompliceerd en werd nauwelijks bestudeerd door de DirectX programmeurs. Bij het uitkomen van DirectX 9 werd deze syntax verfijnd en ontstond de High Level Shader Language (HLSL). Dit liet de ontwikkelaars toe om zelf shaders te schrijven door het gebruik van een gelijkaardige syntax gebaseerd op de programmeertaal C. Door deze syntax toegankelijker te maken voor ontwikkelaars werd de fixed function pipeline (FFP) vaker overschreven om zelf shaders te ontwikkelen. Zo ontstond er een standaard model voor shader ontwikkeling, Shader Model 3.0. DirectX 10 hanteert een nieuwere versie gekend als Shader Model 4.0 waar er geen limieten staan op het aantal instructies dat gelijktijdig mag worden uitgevoerd. Dit komt omdat onder Windows Vista de Graphics Processing Units (GPU) gezien wordt als een gedeelde hulpbron om de Central Processing Unit (CPU) te ontlasten. (Als voorbeeld hiervan kunnen oneindige loops verwerkt worden door de GPU zonder dat de CPU andere noodzakelijke processen moet opgeven waardoor de snelheid van de computer zou vertragen. )
De High Level Shader Language (HLSL) is vernieuwd en bevat nu elke mathematische, logische, bitgerichte en gelijkheids operatoren die je kan vinden in de programmeertaal C. Het voorziet ook ondersteuning voor de Shader Model 4.0's nieuwe "Geometry Shaders". Deze zijn gelijkaardig aan de Vertex naar Pixel shaders maar laten toe dat de Graphics Processing Unit (GPU) primitieven kan aanmaken, verwijderen of aanpassen. De Geometry Shader bevindt zich tussen de Vertex -en Pixel Shader. De Vertex Shader kon alleen werken met vertices (3D-punten). De Geometry Shader werkt met polygonen en aangrenzende polygonen. Dat maakt de hele grafische pijplijn wat complexer om in hardware te 'gieten', maar wel veel efficiënter. Door met complete polygonen of zelfs een heleboel polygonen te werken, kunnen enkele berekeningen van de Central Processing Unit (CPU) naar de Graphics Processing Unit (GPU) doorgeschoven worden. Botsingdetectie en het verwijderen van objecten die niet gezien worden, worden nu eerst door de CPU berekend en dan pas doorgestuurd. Nu kan de GPU dat eventueel zelf doen.De Geometry Shaders worden uitgevoerd voor de Pixel Shader en na de Vertex Shader. De afbeelding laat de nieuwe DirectX 10 pipeline zien.
XNA : Microsoft werkt aan de ontwikkeling van dit framework wat het assisteren van de ontwikkeling van games gemakkelijker maakt door het integreren van DirectX, High Level Shader Language (HLSL) en andere hulpmiddelen in 1 pakket.
Er is een snellere High Dynamic Range belichting (HDR), deze zorgt voor de lichteffecten bij grafische beelden. Behalve deze snellere HDR-belichting zijn ook de zachte schaduwen (soft shadows), displacement-mapping en dynamische pixel shaders sterkverbeterd. Een nadeel aan de soft shadows is dat het het frameratio vermindert. Dynamische pixel shading duidt op het feit dat een pixel shader beslissingen kan nemen met IF-THEN-ELSE vertakkingen. Displacemen-mapping is vooral interessant om reliëf weer te geven in gezichten: dit laat toe om het spierweefsel van het gezicht en de huidrimpels te simuleren.
[bewerk] Compatibiliteit
Microsoft zal strikte vereisten stellen voor Graphics Processing Unit fabrikanten om DirectX 10 compatibel te zijn met enkel 3 optionele features:
- het aantal samples voor multisample antialiasing
- het blenden van 32bit floating-point render targets of color buffers
- het filteren van 32bit texture formats
De intentie hiervan is om game ontwikkelaars bewust te maken van alle features dat videokaarten hebben zodat men effectievere games zal kunnen maken door alle features van DirectX 10 te gebruiken. DirectX 10 is exclusief verkrijgbaar door Windows Vista, wat betekent dat computers die een ander besturingssysteem hebben niet in staat zijn om applicaties uit te voeren die DirectX 10 vereisen. Een uitzondering hierop zullen de "next generation home consoles" zijn. De fabrikant ATI heeft onthuld dat de Xbox 360, DirectX 10 klaar zal zijn door een software update. Tevens hebben Wine ontwikkelaars plannen om DirectX 10 te implementeren in oudere Windows versies.
[bewerk] DirectX 10 Videokaarten
ATI en Nvidia de grootste fabrikanten van videokaarten wachten nog met het op grote schaal produceren van DirectX 10 compatibele videokaarten omdat DirectX 10 games vermoedelijk pas over 2 jaar op grote schaal worden aangeboden. Echter heeft Nvidia Geforce de 8800 familie reeds aan het publiek vrijgegeven. Het betreft de 8800GTX en de iets mindere 8800GTS, deze kaarten zijn DirectX 10 compatibel. ATI heeft een DirectX 10 compatibele GPU, de Radeon R600 die verwacht worden in het tweede kwartaal van 2007. De architectuur van deze nieuwe videokaarten verschillen significant met zijn DirectX 9 voorgangers. Deze nieuwe architectuur is dus afgestemd op de multimedia API DirectX 10. De G80 maakt gebruik van een ‘unified architecture’ wat inhoudt dat er geen onderscheid meer gemaakt wordt tussen pixel- en vertexshaders. De GeForce 8800 GTX is uitgerust met 128 streamprocessors die met beide shadertypes overweg kunnen. Hierdoor hangen de prestaties van de gpu minder af van het type belasting dan voorheen.
[bewerk] DirectX 10 Spellen
- Het spel Alan Wake van Remedy
- Het spel Crysis van Crytek
- Het spel Flight Simulator X van Microsoft
- Het spel Supreme Commander van Gas Powered Games
- Het spel Unreal Tournament 3 aka Unreal Tournament 2007 Door middel van een patch, van Epic Games