Material in Datei beschreiben
-
Hiho,
es geht um das Thema Materialen in einer Datei zu beschreiben. Das Format soll dabei relativ flexibel und unabhängig von einem bestimmten Projekt sein.
Ich habe dabei an ein xml-Format gedacht, falls es andere Ideen gibt kann es aber auch gerne etwas anderes sein.Als Beispiel mal ein kleiner Entwurf:
<material> <shader> <vertexprogram>c:\bladings\vertexshader</vertexprogram> <uniform type="TIME">time</uniform> <uniform type="UP_VECTOR">upVector</uniform> <shader> <texture combine="GL_REPLACE"> <basetexture>c:\dings\bla.bmp</basetexture> <alphamask>c:\bla\alpha.bmp</alphamask> <detailtexture>dingsbla.bmp</detailtexture> </texture> <texture combine="GL_MODULATE"> <basetexture>c:\blablubb.tga</basetexture> <scrollU>0.4</scrollU> </texture> </material>Das ganze soll jetzt in etwa folgendes bedeuten:
-1 texture layer mit textur "c:\dings\bla.bmp", alpha mask "c:\bla\alpha.bmp" und detail texture "dingsbla.bmp" gerendert mit GL_REPLACE
-2 texture layer mit textur "c:\blablubb.tga", gerendert mit GL_MODULATE, bewegt sich in U Achse mit Geschwindigkeit 0.4
-gerendert wird das ganze mit dem vertexshader der in c:\bladings\vertexshader steht. Die uniform variablen des shaders (time, upVector) werden mit bestimmten werten vom Programm aus aktualisiert (der wert hinter "type" soll eine von ein paar definierten Konstanten sein)Ich gebe zu das das Beispiel noch etwas fragwürdig ist. Ich will damit eigentlich auch erstmal nur die Idee etwas verdeutlichen.
-Gibt es an der grundsätzlichen Idee etwas auszusetzen?
-Gibt es bestimmte Dinge auf die ich bei sowas unbedingt achten sollte?
-Alternative Vorschläge für den Aufbau eines solchen Formats?Danke schonmal

-
Gibt es an der grundsätzlichen Idee etwas auszusetzen?
Das Editieren eines Materials ist ein kreativer Prozess.
Der Grafiker moechte schnell und gezielt Einfluss auf alle Einstellungen haben bis das Ergebnis seinen Vorstellungen entspricht.
Wenn er dazu XML-Dateien editieren soll wird er Dein System nicht benutzen.Es gibt meiner Meinung nach keinen allgemeingueltigen Ansatz.
Schreibe Shader die einen gewissen Zweck erfuellen und mach alle Parameter (Texturen, Farben, Werte) in einer kleinen GUI konfigurierbar, so dass man die Aenderungen sofort sehen kann.
In welcher Form Du die Einstellungen dann speicherst ist eigentlich egal.
-
also wenn es fuer solche xml-files dann noch einen netten editor (gui) gaebe, koennte es schon cool werden, imho.
mfg,
julian