PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Prozedurale Texturen - Gibt es noch Hoffnung?


(del)
2004-07-09, 14:36:07
In meiner gestrigen schlaflosen Nacht sind mir so einige Begriffe durch den Kopf geschwirrt. Darunter auch prozedurale Texturen. Nachdem ich mich erinnerte, was genau das ist ((animierte) Texturen, die durch mathematische Formeln berechnet werden), blieb mir die Frage warum sich diese nie wirklich durchgesetzt haben. Dabei liegen die Vorteile doch klar auf der Hand:

- Bandbreitenschonend bis zur GPU/CPU (je nachdem, wo sie berechnet werden)
- Aktuelle PCs sind schnell genug für das Echtzeit-Rendering dieser Texturen

Besteht noch Hoffnung, dieses (mehr oder weniger) innovative Feature jemals in einem Spiel zu betrachten?

Meine persönliche Vermutung ist, dass diese Technologie in 2 Jahren einen neuen Anlauf nimmt und in ca. 3 Jahren mal eventuell ein Spiel mit eben dieser Technik erscheint. Aber ob das für die Breite Masse ausreicht?

Baalzamon
2004-07-09, 14:40:21
Wenn mich icht alles täuscht, wo soewtas, oder etwas in der
Richtung, doch bei der .kkrieger Demo von Farbrausch benutzt, oder?
Ihch kann mir auf jeden nicht vorstellen, wie die ansonsten die Texturen in 96k packen, wenn nicht als Algorithmus.

Wenn du die Demo noch nicht kennst, schau sie dir mal an, ist echt beindruckend, gibt dazu auch eine Thread im Board, bin aber zu faul die Suchfunktion anzuwerfen. :)

aths
2004-07-09, 14:50:18
Original geschrieben von Mayday
- Bandbreitenschonend bis zur GPU/CPU (je nachdem, wo sie berechnet werden)
- Aktuelle PCs sind schnell genug für das Echtzeit-Rendering dieser TexturenNoch nicht. NV40 setzt hier neue Aspekte, aber Texturen sind nach wie vor viel "billiger".

(del)
2004-07-09, 15:01:49
Noch nicht. NV40 setzt hier neue Aspekte, aber Texturen sind nach wie vor viel "billiger".Aber warum?

Grakas der GF6800-Klasse sollten doch prinzipiell in der Lage sein, die Texturen schnell genug zu rendern. D.h. ohne Drop-Downs.

Ausserdem wurde die Technik doch schon vor Jahren vorgestellt. Mittlerweile sollte es doch ausgereift genug für die Masse sein.

PS: kkrieger-Demo ist mir bekannt. Aber ob Farbrausch dort prozedurale Texturen verwendet oder einfach nur nen ausgeklügelten Kompressionsalgorithmus weiss ich nicht.

Grestorn
2004-07-09, 15:04:00
Hat nicht Unreal 1 prozedurale Texturen verwendet? Ich dachte eigentlich, dies sei bis heute für bestimmte Effekte üblich...

Demirug
2004-07-09, 15:11:53
Man muss zwischen zwei Arten von prozeduralen Texturen unterscheiden. Bei der einen Art wird von der CPU eine Texture aufgrund einer Formel bzw eines kleines Programms berechnet. Für die Grafikkarte ist das dann eine ganz normale Texture. Bei der zweiten Methode wird im Shader die Anweisung zum Textursample durch Code ersetzt welcher den entsprechenden Wert errechnet.

Farbrausch benutzt die Methode 1 um Speicherplatz zu sparen.

Derzeit ist es aber noch billiger eine Holztexture zu benutzten als die Holzmasserung selbst zu berechnen. Zudem braucht man für viele prozedurale Texturen auch weiterhin noch Texturen die dann aber keine Farbwerte sondern Stützpunkte für Funktionen enthalten.

(del)
2004-07-09, 15:28:04
Verstehe...

Aber zumindest bei großflächigen und einfarbigen Texturen wäre es doch dann sinnvoll mit prozeduralen Algorithmen zu arbeiten.

Die meisten Spieletexturen werden ja im JPG oder im DDS (DirectDraw Surface) Format gespeichert. Selbst große einfarbige Texturen können da nicht so effektiv wie im GIF Format komprmiert werden. Da wären doch prozedurale Texturen die Lösung.

Muh-sagt-die-Kuh
2004-07-09, 16:14:30
Original geschrieben von Mayday
Verstehe...

Aber zumindest bei großflächigen und einfarbigen Texturen wäre es doch dann sinnvoll mit prozeduralen Algorithmen zu arbeiten.

Die meisten Spieletexturen werden ja im JPG oder im DDS (DirectDraw Surface) Format gespeichert. Selbst große einfarbige Texturen können da nicht so effektiv wie im GIF Format komprmiert werden. Da wären doch prozedurale Texturen die Lösung. Wozu sollte man bei großen einfarbigen Flächen überhaupt texturieren? ;)

Brillus
2004-07-09, 16:42:40
Original geschrieben von Muh-sagt-die-Kuh
Wozu sollte man bei großen einfarbigen Flächen überhaupt texturieren? ;)

SOwas ähnliches habe ich mich auch gerade gefragt nur war die frgae bei mir warum dort nicht eine hollen wo nur ein pixel Gross ist. Welcher dieser beiden Arten (texturiert mit einem Pixel oder uber Vertexfarben besser wäre kommt wohl auf die Engine an und wie sie dortin ihre Daten abspeichert.

(del)
2004-07-09, 17:03:06
Legt eure Scheuklappen ab...

Es gibt durchaus Texturen, die zum größten Teil aus einfarbigen oder gleichen Teilen bestehen. Es liegt im Ermessen der Grafiker, dafür Texturen zu erstellen oder die Oberfläche simpel einzufärben. Für den ersteren Fall wären nun mal ohne Wenn und Aber prozedurale Texturen die bessere Lösung.

@Brillus: Nochmal in Deutsch bitte. Ich verstehe den Beitrag nicht.

Xmas
2004-07-09, 17:33:29
Original geschrieben von Mayday
Legt eure Scheuklappen ab...

Es gibt durchaus Texturen, die zum größten Teil aus einfarbigen oder gleichen Teilen bestehen. Es liegt im Ermessen der Grafiker, dafür Texturen zu erstellen oder die Oberfläche simpel einzufärben. Für den ersteren Fall wären nun mal ohne Wenn und Aber prozedurale Texturen die bessere Lösung.
Nicht ohne wenn und aber. Du tauschst Anforderungen an Speicherplatz und Bandbreite gegen Rechenleistung. Nicht immer sinnvoll. Und du musst dir erst mal eine Formel überlegen, die dem gewünschten Aussehen überhaupt nahekommt.

Zudem haben prozedurale Texturen (nach Demirugs Methode 2) den Nachteil, nicht automatisch frequenzbegrenzt zu sein, während das bei Texturen mit Mipmaps der Fall ist.

aths
2004-07-09, 18:35:42
Original geschrieben von Xmas
Zudem haben prozedurale Texturen (nach Demirugs Methode 2) den Nachteil, nicht automatisch frequenzbegrenzt zu sein, während das bei Texturen mit Mipmaps der Fall ist. Soweit ich weiß gibt es hier Ansätze, um z. B. Schachbrettmuster mit richtigem LOD zu rendern. Das erhöht natürlich den Rechenaufwand.

aths
2004-07-09, 18:38:43
Original geschrieben von Mayday
Ausserdem wurde die Technik doch schon vor Jahren vorgestellt. Mittlerweile sollte es doch ausgereift genug für die Masse sein.Die Theorie ist ja auch soweit klar ... nur ist die HW noch nicht so weit.
Original geschrieben von Mayday
PS: kkrieger-Demo ist mir bekannt. Aber ob Farbrausch dort prozedurale Texturen verwendet oder einfach nur nen ausgeklügelten Kompressionsalgorithmus weiss ich nicht. FR nutzt zum Großteil per CPU gerenderte prozedurale Texturen.
Original geschrieben von Mayday
Grakas der GF6800-Klasse sollten doch prinzipiell in der Lage sein, die Texturen schnell genug zu rendern. D.h. ohne Drop-Downs.Für vernünftige Material-Shader sind einige -zig Anweisungen nötig. Das packt die 6800 nur dann, wenn solche Materialien nicht flächendeckend eingesetzt werden.

Prinzipiell hoffe auch ich, dass Texturen mal langsam durch Materialshader abgelöst werden. Doch damit treten neue Probleme auf. Bevor sich nicht hochperfomante Shader-Technik featuremäßig mindestens auf 3.0-Niveau durchgesetzt hat, sehe ich kaum Chancen.

Darkstar
2004-07-09, 19:46:58
Original geschrieben von aths
Die Theorie ist ja auch soweit klar ... nur ist die HW noch nicht so weit.Der S3 Savage wurde doch schon vor einigen Jahren vorgestellt und zumindest einige Demos haben auf dem schon funktioniert. Wo liegt also das Problem?

anorakker
2004-07-09, 21:46:13
versteh ich das jetzt richtig ? : prozedurale texturen haben nichts mit animierten texturen zu tun, oder ?

aths
2004-07-10, 00:53:50
Original geschrieben von Darkstar
Der S3 Savage wurde doch schon vor einigen Jahren vorgestellt und zumindest einige Demos haben auf dem schon funktioniert. Wo liegt also das Problem? :eyes: In Techdemos präsentiert die GF FX 5800 tolle Effekte. In Spielen sieht man sowas nicht. Wo liegt also das Problem?

aths
2004-07-10, 00:55:32
Original geschrieben von anorakker
versteh ich das jetzt richtig ? : prozedurale texturen haben nichts mit animierten texturen zu tun, oder ? Wenn ich das anmerken darf: Vor Satzzeichen (also Fragezeichen und Doppelpunkt) sollte man kein Leerzeichen setzen.

Prozedurale Texturen ließen sich auch animierbar machen. Das wäre ein Anwendungsgebiet. Ein anderes wäre, mit einem Shader tausende unterschiedlich aussehende Marmor-Kacheln oder Holzscheite zu rendern.

tokugawa
2004-07-10, 01:01:16
Original geschrieben von anorakker
versteh ich das jetzt richtig ? : prozedurale texturen haben nichts mit animierten texturen zu tun, oder ?

Im Prinzip nicht, sind unabhängige Dinge.

Prozedurale Texturen können animiert sein, müssen aber nicht.

Animierte Texturen können prozedural berechnet sein, müssen aber nicht.

@Mayday: erkläre bitte nochmal, was du unter "einfärbig" verstehst. Eine "einfärbige" Oberfläche (im Sinne von "Farbe" in der Computergraphik) würde eine extrem einfache prozedurale Formel haben (nämlich eine Konstante). Wozu dann einen Shader? Vertex Color tut's doch auch dann.

Wobei ich "Oberfläche" als zusammenhängende Materialgruppe von Vertizes/Dreiecken verstehe.


Ah, und noch was: es ist schon logisch, dass heutige Hardware noch nicht soweit ist, "realistische" der physikalischen Eigenschaften entsprechende Materialshader zu verwenden. In der Computergraphik wird schon seit jeher mit Vereinfachungen (z.B. beim Lichtmodell, etwa dem Lambert'schen) gearbeitet. Das halte ich für nicht verkehrt, denn das Ergebnis zählt; und die großen algorithmischen Errungenschaften in der Computergraphik basieren fast ausschließlich auf Heuristiken oder "Vereinfachungen" bzw. Annäherungen.

Allerdings wären natürlich realistische (dynamische) Materialshader in Echtzeit interessant.

aths
2004-07-10, 14:54:20
Original geschrieben von tokugawa
In der Computergraphik wird schon seit jeher mit Vereinfachungen (z.B. beim Lichtmodell, etwa dem Lambert'schen) gearbeitet. Das halte ich für nicht verkehrt, denn das Ergebnis zählt; und die großen algorithmischen Errungenschaften in der Computergraphik basieren fast ausschließlich auf Heuristiken oder "Vereinfachungen" bzw. Annäherungen.Ja, es gibt massig Beispiele, wo man mit Vereinfachungen trotzdem vernünftige Ergebnisse erzielt – hoffentlich habe ich in absehbarer Zeit die Zeit, darüber mal ein paar Zeilen zu schreiben.
Original geschrieben von tokugawa
Allerdings wären natürlich realistische (dynamische) Materialshader in Echtzeit interessant. Allerdings.

MadManniMan
2004-07-10, 15:12:01
Verwendet nicht die PS2.0 Demo vom Murks03 prozedurale Shader zur Erzeugung der Textur von den Viechern? :|

zeckensack
2004-07-10, 15:17:05
Original geschrieben von MadManniMan
Verwendet nicht die PS2.0 Demo vom Murks03 prozedurale Shader zur Erzeugung der Textur von den Viechern? :| Ja. Ebenso grosse Teile des Shadermark.