Vorschau auf die nVidia GeForce 6800 Ultra: Auf NV30 folgt NV40
5/12Renderarchitektur, 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.
Dies hat nVidia nun nachgerüstet und so kann der NV40 sich voller Kompatibilität mit dem 3.0-Shader Model rühmen.
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.