GeForceFX: NVIDIA wordt Hollywood?

DirectX 9 Functies, Shaders en Cg, vervolg Met de introductie van DirectX 8 werden hardware-shaders voor het eerst geïmplementeerd in grafische chips van consumentenniveau. Hun capaciteiten waren echter nog steeds zeer beperkt. Complexe shaders konden nog niet worden gerealiseerd. Bovendien konden alleen gegevens met een geheel getal worden berekend.

DirectX 9 Functies, Shaders en Cg, vervolg

Met de introductie van DirectX 8 werden hardware-shaders voor het eerst geïmplementeerd in grafische chips van consumentenniveau. Hun capaciteiten waren echter nog steeds zeer beperkt. Complexe shaders konden nog niet worden gerealiseerd. Bovendien konden alleen gegevens met een geheel getal worden berekend. De resulterende onnauwkeurigheden hebben onjuiste resultaten veroorzaakt. In het geval van pixel shaders zouden dit artefacten zijn, zoals 'spots'. DirectX 9 breidde de mogelijkheden van de shaders enorm uit en voegde de mogelijkheid toe om drijvende-kommengegevenssets te berekenen. Verdere toevoegingen zijn loops, langere programmacodes en verschillende andere extensies (zie tabel in "3D-functies").

Nog een shot Dawn's haar.

Het programmeren van deze hardware-shaders is echter een nogal moeilijke taak, omdat hun formaatbehoefte doet denken aan de assemblercode - waardoor het een taak voor specialisten wordt. 3D-ray tracing-software maakt gebruik van gespecialiseerde shader-programmeertalen. NVIDIA heeft iets soortgelijks gemaakt met Cg (C voor afbeeldingen). Ontwikkelaars kunnen nu hun shaders in een universeel begrijpelijke shadertaal op hoog niveau schrijven. De Cg-compiler maakt vervolgens de nodige machinecode uit deze instructies. NVIDIA's Cg is volledig compatibel met Microsoft's gecertificeerde HLSL (high-level shader-taal). Cg berekent de arcering voor de betreffende taak, ongeacht of dit voor DirectX 8/9 of OpenGL is. Ten slotte lijkt de Cg-taal sterk op die welke al is vastgesteld in de sector van de derde ray tracing, waardoor deze zeer eenvoudig aan te passen zijn.

De demo van de NVIDIA Timemachine. Een auto wordt ouder en ouder.

Samenvattend kan worden gesteld dat shaders een enorme stap zijn in de richting van het foto-realisme.

Hieronder volgen de drie belangrijkste verbeteringen in DirectX 9:

Pixel Shader 2.0: DX9 legt ware programmeerbaarheid van de pixel-shading-engine bloot. Dit maakt procedurele schaduwwerking op een GPU voor het eerst mogelijk. Vertex Shader 2.0: DX9 verbetert de kracht van de vorige DirectX vertex-arcering aanzienlijk door de lengte en flexibiliteit van vertex-programma's te vergroten. Kleur met hoge precisie en drijvende komma: DX9 breekt de wiskundige precisiebarrière die in het verleden beperkte pc-afbeeldingen heeft. Precisie, en daarmee de beeldkwaliteit, wordt verhoogd met 128 bit floating-point kleuren per pixel.

We hebben de DirectX 9-functies al uitvoerig behandeld in ons artikel over de ATi Radeon 9700 PRO. GeForceFX biedt volledige DX9-ondersteuning - en gaat zelfs veel verder dan deze specificaties.

Als u meer wilt weten over Shader-talen op hoog niveau, gaat u naar dit artikel:


HLSL's, Cg en de RenderMonkey

Top