GeForceFX: NVIDIA wordt Hollywood?

NVIDIA 2.0+ De programmeerbaarheid van de pixel- en vertex-shaders overtreft duidelijk de vereisten in de DirectX 9-specificatie. Dit is de reden waarom NVIDIA dit benadrukt door een "+" toe te voegen aan hun denotatie. Het introduceren van alle functies en mogelijkheden van deze nieuwe shaders gaat ver buiten de focus van dit artikel en uiteindelijk zouden alleen de shaderprogrammeurs tot een echte conclusie kunnen komen over de waarde van deze functies

NVIDIA 2.0+

De programmeerbaarheid van de pixel- en vertex-shaders overtreft duidelijk de vereisten in de DirectX 9-specificatie. Dit is de reden waarom NVIDIA dit benadrukt door een "+" toe te voegen aan hun denotatie. Het introduceren van alle functies en mogelijkheden van deze nieuwe shaders gaat ver buiten de focus van dit artikel en uiteindelijk zouden alleen de shaderprogrammeurs tot een echte conclusie kunnen komen over de waarde van deze functies.

Een screenshot van Ogre, het personage in de film Spellbound YEAH. NVIDIA gebruikte het in een real-time demo.

Een overzicht van de extensies van de GeForceFX:

GeForceFX Vertex Shader 2.0+

Uitbreidingen vergeleken met DirectX 9 (standaard):

256 instructies van opgeslagen programma (was 128); 256 constanten (was 96); Vectoradresregister (was een scalair); Het maximale aantal instructies dat per shader kan worden uitgevoerd, is nu 65.536.

De hoogtepunten, zoals gepresenteerd door NVIDIA:

Tot 65.536 vertex-instructies uitgevoerd per vertex (maximaal 256 statische instructies per shader)
De CineFX shading-engine biedt een ongekende hoeveelheid mogelijkheden voor vertexverwerking. Naast het verdubbelen van de instructieopslag, verhoogt de toevoeging van de besturingsstroom de hoeveelheid feitelijke berekening die voor elke vertex kan optreden, dramatisch. Deze flexibiliteit vermindert het totale aantal vertex shaders dat vereist is voor een toepassing.

Tot 256 vectorconstanten
Het aantal constante registers dat beschikbaar is in de CineFX vertex-arcering is meer dan verdubbeld - van 96 tot 256 quad-woorden! Deze toename maakt aanzienlijk meer botmatrices mogelijk voor het villen van het matrixpalet en veel meer gelijktijdige lichtbronnen.

Zestien tijdelijke vectorregisters
Tijdelijke registeropslag is met 33% gestegen van 12 naar 16. Deze tijdelijke opslag is met name handig bij de grotere programma's die door de CineFX-engine worden ondersteund.

Tot 64 afzonderlijke lussen
De CineFX vertex shading engine zorgt voor eenvoudigere programma's door volledig afhankelijke looping en vertakking (inclusief geneste lussen en vertakkingen) te ondersteunen met maximaal 64 unieke vertakkingsdoelen in een enkel shaderprogramma. Lussen over alle lichtbronnen en vervolgens vertakken naar het juiste type licht is nu een koud kunstje.

Voorwaardelijke codes per component en schrijfmaskers
Conditiecodes vormen de machine achter data-afhankelijke vertakking, maar ze kunnen ook de prestaties verbeteren en de code vereenvoudigen voor voorwaardelijke toewijzingen.

Opbellen en terugbrengen (subroutines)
Naast de vertakkingsmogelijkheden van CineFX ondersteunt de vertex-processor de volledige subroutine CALL / RETURN-semantiek, met een vier-op-een-diepte stapel.

Lussen en aftakkingen voor zowel statische als dynamische stuurstroom
Volledig algemene lus- en vertakkingen (samen met afhankelijke gegevensreferentie) maken de CineFX vertex shading engine zo flexibel en krachtig.

Top