Vorschau auf die nVidia GeForce 6800 Ultra: Auf NV30 folgt NV40

 5/12
Carsten Spille
188 Kommentare

Renderarchitektur, Teil 1

Zuvorderst in der 3D-Pipelines sitzen die Vertexshader. Hier war schon das so genannte Vertex-Array, welches inoffiziellen Angaben zufolge aus drei separaten Vertexeinheiten bestehen soll, des NV3x hinsichtlich seiner Programmierbarkeit sehr mächtig und nicht viel fehlte zu einem Shader-Model 3.0 Vertex-Shader.

NV40 - Single Vertex Shader Pipeline
NV40 - Single Vertex Shader Pipeline

Dies hat nVidia nun nachgerüstet und so kann der NV40 sich voller Kompatibilität mit dem 3.0-Shader Model rühmen.

Vertex Shader
NV30/5/6/8 NV40
Anzahl Vertexeinheiten 3 (Array) 6 (2*Array)
Durchsatz pro Takt 0,75 1,5
Max. Instructions 65535 65535
Max. Static Instructions 256 >511
Max Const. Instructions 256 >511
Temporary Registers 16 32
Static Flow Control Ja Ja
Dynamic Flow Control Ja Ja
Geometry Instancing Nein Ja
Vertex Texture Fetch Nein Ja

Die vormals noch geheimnisvoll als Array betitelte Vertexeinheit hat sich, dem Branching zuliebe, auf mysteriöse Weise in sechs Einheiten aufgeteilt und somit, was den Durchsatz anbelangt, im Direktvergleich zum NV30 verdoppelt. Man könnte nun entweder von dualen Arrays sprechen oder dem NV30 zubilligen, was schon lange gemutmaßt wurde: Drei Vertex-Einheiten.

Dahinter wird es erst wieder interessant, wenn wir uns dem Ende der Tabelle nähern. Hier kommen die schon von Matrox im Zusammenhang mit dem Parhelia erwähnten Displacement Maps ins Spiel. Diese ermöglichen (oder werden vielmehr ermöglicht durch) die Fähigkeit der Vertex-Einheiten, nun auch Texturzugriffe, allerdings ohne die Möglichkeit, mehr als Point-Sampling, also ungefiltert, durchzuführen. Geometry Instancing, oder, wie das Feature auch heißt, Vertex Stream Divider, dienen hingegen dazu, Geometrie-Anweisungen z.B. in Strategiespielen auf viele verschiedene Einheiten leicht versetzt aufzuteilen, anstatt jede Einheit einzeln zu animieren.