Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Anonymous

unregistriert

1

26.05.2004, 13:49

Multitexturing / DX Effekte / Shader

Hallo,

ich befasse mich z.Z. mit der im Topic beschriebenen Thematik, und es kam - da ich es gerade neu lerne - folgende Frage auf:

Habe irgendwo einmal gelesen, dass Multitexturung schon eine recht alte Methode sei. Diese Effekte können mit Shadern heute komplett erstetzt werden - ist das wahr?
Und wie ist es mit den DX Effekt Dateien, sind auch hier die Shader eine Wahl, die die Direct3D Effects ersetzen können?

Wenn dem so ist, und ich müsste mich entscheiden, dann wäre es sicher richtig, mit auf Shader zu konzentrieren. Ich kenne die Grundzüge aller Techniken, und würde mich dann detailierter mit Shadern beschäftigen.

Oder ist es so, dass alle drei genannten Techniken sich nicht gegenseitig ersetzen, und eine Engine sollte zwingend alle Techniken seperat implementieren?

Ich stelle diese sehr allgemeine Frage, da ich mich nicht unbedingt mit Multitexturing und/oder den DX Effekten beschäftigen will, wenn das alle mit Shadern "besser" und vor allem fortschrittlicher ist.


Vielen Dank für Eure Tipps

2

26.05.2004, 14:05

Multitexturing wird durch Shader nicht ersetzt. Wie soll man den z.B. einfachste Sachen wie Detailmapping ohne eine Detailmap bewerkstelligen? Mit einem VShader kann man keinen Perlin Noise Algorithmus oder ähnliches Implementieren. Wäre auch viel zu langsam.

Multitexturing ist zwar eine alte Technik aber eine sehr stark benutzte Technik, die noch einmal richtig aufschwung bekommen hat durch die Shader. Es werden nur mehr Map verschiedener Art (Detail Map, Normal Map, etc) mit der Basistextur verrechnet. Diese Maps sind aber weiterhin ganz normale Texturen!
Eine Engine ohne Multitexturing ist nicht vollständig!


Was die Effekte angeht. Welches Effektormat man nutzt ist eigentlich egal. Wie diese Effekte dann umgesetzt werden kommt auf die Hardware an. Also mittels Shader oder halt per RenderStates|TextureStageStates.Auch hier sollte man beides können.
Es gibt immer noch welche die noch keine neue Graka haben und somit auch keinen Shader.
Wichtig! Ich übernehme keinerlei Verantwortung für eventl. Datenverlust oder Schäden am Rechner ;D

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

3

26.05.2004, 14:08

Shader ist selbst programmierte codeabschnitte die von der gpu entweder für jeden Vertex oder für jeden Texel ausgeführt wird.

Also kann man die Standard Verarbeitung durch seinen eingen Codeabschnitt ersetzen. Wieso das nun Multitexturing ersetzen sollte kann ich nicht verstehen, da diese Technik immer mehr erweitert wird. Da kannst in deinen Shader natürlich deine eigene Multitextur verarbeitung einbauen....
Und das mit den Effekten passt ja überhaupt nicht, die sind nämlich ne ansammlung von Textur,sample,render und noch vielen mehr stats. Da kann man mit Shadern nichts machen, man kann nur seine eigenen "Stats" definieren.

Also Shader sind nur zum Optimieren und zum Einführen seiner eigenen Techniken zu benutzen.

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

4

26.05.2004, 14:12

da war schon wieder einer schneller..........

5

26.05.2004, 14:17

Du must schneller schreiben ;D
Wichtig! Ich übernehme keinerlei Verantwortung für eventl. Datenverlust oder Schäden am Rechner ;D

Anonymous

unregistriert

6

28.05.2004, 16:30

Zitat


Eine Engine ohne Multitexturing ist nicht vollständig!


Danke, so eine präzise Antwort wollte ich hören :D

Ihr habt mir schon sehr weitergeholfen. Ich werde mich also demnächst mit allen drei Aspekten beschäftigen. Eine Frage hätte ich da noch zu den Effects: als ich allgemein darüber gelesen habe, entstand der Eindruck, dass die DX Effects ja nur quasi ein "Tool" sind,um sich Dinge zu vereinfachen, ist das richtig? Man könnte ja sicher auch ohne diese Effects Funktionalität zum Ziel kommen. Werden diese DX Effects denn häufig benutzt, bzw. würdet ihr sowas immer in einer Engine verwenden, oder ist es doch irgendwo "eleganter", eigene Lösungen dafür zu kreieren? Ich frage mich z.B. ob größere Engines aus dem kommerziellen Spielebereich, die mit DirectX laufen, auch die DX Effects benutzen (kann man sicher nicht pauschalisieren).

7

28.05.2004, 16:58

Die DX Effekte sind auch nur ein Tool. Es ist Teil der D3D X-Bibliothek und ja, es ist dafür da um die entwicklung der Effekte zu vereinfachen und vor allem nicht immer das Projekt neu kompilieren zu müssen, wenn der Effekt nicht stimmt.


Ob komerzielle Engines dieses Effekt-Format nutzen, weis ich nicht. Ich glaub das hängt auch ganz davon ab wieviel Geld die Entwickler in die Entwicklung einer eigenen Engine stecken. Die meisten nutzen wohl ein eigenes System um Effekte zu erzeugen. Pauschal kann man das wircklich nicht sagen.
Es liegt wohl auch sehr stark daran ob die Engine massiven Gebrauch von Shadern machen oder nicht.
Wichtig! Ich übernehme keinerlei Verantwortung für eventl. Datenverlust oder Schäden am Rechner ;D

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

8

28.05.2004, 17:34

Mit den effekten kann man na Stats setzen, da aber viele Enigne Shader benutzen kommen die meisten Stats nicht mehr zur Geltung. Also muss man das Shader so modifizieren, dass es die Gewünsche Verarbeitung hat.

9

28.05.2004, 18:09

Wie man Effekte Umsetzt ist jedem selbst überlassen und jeder muss zusehen wie er das anstellt.

Bei meiner Aktuellen Engine, besteht die erste Plannung daraus das die Effekte vor allem auf Shadern aufbauen. Da ich aber noch die Kompatiblität bewahren will, hab ich mich entschieden das ein Effekt-Interface sowohl die umsetzung mit Shadern als auch die Umsetzung per States unterstützen soll.
Vor benutzung wird dann abgefragt ob der Effekt auch mit States umgesetzt werden kann. Damit falls der User keine Shader hat oder diese nicht will, der Effekt trotzdem eingesetzt werden kann.

Wie gesagt es kommt halt immer darauf an was man will, was man kann und wie das einsatzgebiet der Engine aussieht.
Wichtig! Ich übernehme keinerlei Verantwortung für eventl. Datenverlust oder Schäden am Rechner ;D

Anonymous

unregistriert

10

30.05.2004, 00:31

Könnte mir jemand kurz nen Beispiel geben, welchen Effekt man mit diesen Effektdateien bzw. irgendwelchen Renderstates oder so machen könnte, und wie man den dann mit Shadern macht? Ich habe bei beidem leider noch sehr wenig Erfahrung, und kann mir gerade irgendwie nicht vorstellen, dass man irgendwelches States die man setzen kann auch per Shader machen könnte..

Werbeanzeige