PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Zukunft der Grafik-Shader Technologie


Demirug
2003-06-12, 22:03:37
Von Generation zu Generation werden die "Shader" in den Grafikkarten flexibler und sind in der Lage immer mehr in nur einem einzigen Pass zu berechnen. Trotzdem bleiben immer noch begrenzungen zurück. So gibt es nach wie vor viele Teile eines Chips welche sich nicht durch die Shader Kontrolieren lassen. Als Beispiel möchte ich hier einmal die Alphablending Operationen oder auch die Texturefilter nennen.

Daraus ergibt sich nun das zum Rendern eines Effekts heute mindestens 3 Dinge benötigt werden:

- Ein Vertexshader (oder alternativ die HT&L Einstellung)
- Ein Pixelshader (bzw eine DX7 Texturestage konfiguration)
- Ein ganzen Rudel von Einstellungen für einzelne Settings welche nicht durch die Shader kontrolliert werden können.

Und damit haben wir dann für genau einen Effekt für eine Technologie einen Pass beschrieben.

Mehr Effekte = Mehr dieser Beschreibungen und man braucht schon für zwei unterschiedliche Arten von Licht mindestens zwei Effekte
Mehrere Technologien (DX7, DX8, DX9) = Mehr Beschreibungen
Multipass = Mehr Beschreibungen.

Shaderhochsprachen können hierbei zwar die Wiederverwendbarkeit einzelner Codefragmente erleichtern und damit den Zeitbedarf für das entwickeln der Effekte reduzieren aber anfassen muss man doch noch jeden einzelnen Effekt.

Wenn wir also die gleiche Effektvielfallt wie in gerenderten Kinofilmen haben wollen muss dieses Verfahren durch etwas einfacheres ersetzt werden. Vorallem müssen die Grafiker/Designer in die Lage versetzt werden einen Grossteil der anfallenden Arbeiten ohne die ständige Unterstützung der Entwickler zu erledigen.

Um Spiele wie Kinofilme aussehen zu lassen reicht es einfach nicht das wir Hardware mit genügend Rechenleistung haben. Vielmehr müssen Lösungen geschaffen werden welche es auch erlauben die Rechenleistung richtig zu nutzen.

Vor etwas länger Zeit hatten wir schon mal einen Thread mit einem ähnlichen Thema. Ich möchte hier nun nocheinmal meinen Wüschen bezüglich programmierbarer Grafikhardware wiederholen.

- Vollständige Kontrolle der Renderpipeline über eine Hochsprache.
- Die programmierbare Renderpipeline sollte schon bei der Objekterzeugung anfangen.
- Weg von den Einheiten orientierten Shadern (Vertex, Pixel, ...) hin zu den Funktions orientierten Shadern (Geometrie, Licht, Oberfläche, ...)
- Multipass zerlegung und zuweisung der Arbeiten auf die Funktionseinheiten sollte automatisch ablaufen.

Ich weiss das ich viel möchte aber das ist IMHO der einzige Weg schneller Kinoeffekte auch in Spielen zu bekommen. Leider sehe ich derzeit keinerlei Bewegung in diese Richtung bei OpenGL oder D3D.

Andere Meinungen, Wünsche, Ergänzungen usw. sind ausdrücklich erwünscht. Möglicherweise stehe ich mit meinen Ansätzen auch aleine auf weiter Flur.

Thomas Gräf
2003-06-12, 23:02:58
...Demirug for President ;)

grs.
th.

Rampage
2003-06-12, 23:27:33
entwickle deine eigene API, ist doch kein ding, würde es ja machen aber habe heute abend schon was vor :jumping: :spam:

micki
2003-06-13, 09:42:59
warte bis directX X, dann kannst du genau wie auf der playstation dir in einer VPU geometrie generieren... und vs+ps sind dann sicherlich vieel flexibler. :D

das größte problem ist aber den content dafür zu generieren.früher konnte man noch mit coder-art durchkommen, später hat ein grafiker gereicht um alle grafiken für ein spiel zu machen... doch heute sitzen schon sehr viele mehrere jahre daran, dass ein spiel mehr als nur durchschnitt wird.

als beispiel würde ich z.B. GTA sehen, die grafik darauf ist echt nicht der hit, aber alleine schon die menge an fahrzeugen und die größe der level verlangen nach derart viel quantität, wie es früher unvorstellbar war.
und wenn man nun die grafikqualität wirklich hochschauben will auf kino-like, dann muss man anfangen materialien zu generieren (nicht texturepages), sodass (wie in renderprogrammen üblich) stein,asphalt,eisen,holz... als material irgendwo draufgepackt wird.
filme verschlingen unsummen an personalkosten damit genug content dieser qualität erzeugt wird, dort sitzen die leute an der modelierung eines objektes so lange wie heutzutage jemand einen unreal2 level bastelt (soweit ich weiß).

und das muss in kontrast zu der steigenden anzahl der leute gesehen werden, die sich fragen weshalb sie für nur ne cd/dvd 50€ abdrücken sollen, wenn ein rohling 1% davon kostet.


würde der markt besser laufen, dann würden sich alle auf solche technologien stürzen denk ich mir, mir würde es auch gefallen alles machen zu können in einer voll konfigurierbaren einheit.... vielleicht wird der cell-chip sowat können.


MfG
micki

Demirug
2003-06-13, 10:49:42
Das mit dem Content ist so eine Sache. Je mächtiger die Hardware wird desto einfacher kann man sich für die Geometrie aus einer Datenbank bedienen. Wenn man dann zum Beispiel einen Wald braucht wirft man schnell die Baum-CD ins Laufwerk sucht sich ein paar Bäume aus und fertig. Dann habe ich mir auch noch sagen lassen das es einfacher ist mit vielen Polys zu modelieren als nur mit wenigen.

Das Hauptproblem sehe ich aber auch mit den Oberflächen. Denn selbst wenn ich im Moment zum Beispiel einen Holzshader habe muss ich den für jede Art von Lichtquelle wieder anpassen kommt dann noch ein Öl Effekt (Politur) dazu muss man schon wieder am Shader rumbauen. Das nervt einfach nur noch. Codefragmente sind da zwar eine kleine hilfe aber das ware eben auch nicht. Beim Offline Rendering arbeitet man ja schon mit funktionsorientierten Shadern womit sich der grossteil dieser Problematik erledigt hat.

Und was das warten angeht das kann man ja auch nicht ewig tun.