PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : wie der NV30 Bandbreite sparen könnte


egdusp
2002-07-26, 21:04:29
Ein Verfahren massiv Bandbreite zu sparen, wäre die Texturen direkt im Grafikchip zu erzeugen.
Ich weiß nicht, ob MS dies in einer zukünftigen DX Version realisieren will, oder ob die bestehenden Pixelshader flexibel und schnell genug sind. Dies ist nicht spezifisch auf den NV30 beschränkt, aber gerade nVida betont ja immer wieder, dass der NV30 bessere Pixel erzeugt. Das dies entweder eine reine Marketing Aussage sein kann, bzw. von einem evtl. 128 bit Interface ablenken soll, ziehe ich als Möglichkeit durchaus in Betracht. Nichtsdestotrotz ändert sich an der reinen Möglichkeit nichts, also bitte hier nicht rumflamen.

Ich kam darauf als ich dieses 64K !!!Grafikdemo gesehen habe: http://www.farb-rausch.de/fr08_final.zip
von den Jungs von Farbrausch www.farb-rausch.de (am Besten alle anschauen, lohnt sich).

Dabei werden alle Texturen prozedural erzeugt, danach aber konventionell abgespeichert. Meine Überlegung ist nun, dass dies in zukünftigen (oder sogar heutigen) Chips direkt in der Hardware möglich ist. D.h. es werden alle Texturerzeugungsroutinen im GraKa Cache gespeichert und bei Bedarf direkt zur Pixelerzeugung verwendet.
Dies müsste kein Ersatz der konventionellen Texturen sein, sondern eine Ergänzung.
Ein weiterer Vorteil wäre die unendliche Auflösung der Texturen, keine Blockbildung mehr, kein Trilinearer Filter mehr nötig.

Dabei wären folgende Probleme zu lösen:
1. Die Texturerzeugungsroutinen dürften nicht iterativ sein, d.h. jeder Punkt einer Textur müsste sich direkt erzeugen lassen.
2. Die Routinen müssten so kurz sein, das der Pixelshader (oder in zukünftigen Chips eine extra Einheit) in einem Takt (oder zumindest in wenigen) erzeugen kann.

Dies führt mich zu einer allgemeinen Frage zu Pixelshadern: Wieviel Instruktionen pro Takt können diese ausführen?
Wenn man sich das in einem anderen Thread gepostet R300 Holzbild anschaut, dann sind das ja 20-30 Assemblerinstruktionen pro Pixel (nehme ich an).

Kommentare bitte.

mfg
egdusp

Demirug
2002-07-26, 21:32:22
Es sind etwa 40 Instructionen.

Man kann durchaus einiges mit den PS erzeugen aber dem sind Grenzen gesetzt und für die meisten Effekte braucht man immer noch Texturzugriffe (auch wenn dort dann nicht unbedingt Farbwerte hinterlegt sind) Die Masserung des Holz ist zum Beispiel berechnet trotzdem wird eine Textur dafür benutzt. Da es sich dabei aber um eine 1D Textur handelt müsste die komplett in den Texturcache passen.

"Wieviel Instruktionen pro Takt können diese ausführen?"

Das ist noch ein grosses Geheimnis.

egdusp
2002-07-26, 23:38:59
Gibt es eigentlich für die Enwickler momentan schon die Möglichkeit solche Routinen zu nutzen in heutiger DX8 Hardware, falls nicht, wird DX9 Hardware dazu in der Lage sein?

Dadurch wird ein Spiel zwar vielleicht etwas Schliff an den Texturen verlieren, die gesparte Bandbreite könnte aber an anderer Stelle evtl. sinnvoller eingesetzt werden. Da gäbe es sicher viele Optimierungsmöglichkeiten.

Auf jeden Fall erwarte ich einige Techdemos oder Grafikdemos die durch solche Optimierungen Wahsninnseffekte in guter Geschwindindigkeit darstellen können.

Wegen diesen Holzfiguren, habe ich es richtig verstanden, dass nicht nur die Refelektionen sondern auch die Holztextur dynamisch von den PS erzeugt werden?

Mal sehen was da in Zukunft auf uns zukommt.


mfg
egdusp

Demirug
2002-07-26, 23:48:58
In DX 8 Hardware ist sowas nur sehr begrentz möglich.

Die Holzmaserung ist dynamisch. Dafür wird lediglich eine kleine 1D Textur benutzt.