Könntest du mal eine komplette Material-Datei hier posten bzw. mit nopaste verlinken? Das wäre super, dann könnte man das mal genauer analysieren, denn so bin ich noch nicht ganz durchgestiegen, denn das ist doch schon mehr als ein paar ifdef´s oder ich habs jetzt auf anhieb nicht verstanden.
Ich habe nämlich grad ein ähnliches verlangen, meine Shader zu "Generalieren", denn ich möchte nicht zig verschiedene Shader haben, die im grunde immer das gleiche machen.
woran hapert es denn? Weil prinzipiell ist in den Sachen die ich geposted habe alles drin was Shader angeht - ich könnte noch mehr verschiedene Shader posten, aber die würden auch keine anderen Befehle etc nutzen als der Phong der schon da ist
Wenn es dir erstmal nur um die Sache mit "Ein Shader für Deferred/Forward" geht, da braucht dich eigentlich nur das ciOutput/ciCompose zu interessieren. Oder was genau hast du vor?
Registriert: Di Mai 18, 2004 16:45 Beiträge: 2621 Wohnort: Berlin
Programmiersprache: Go, C/C++
Das Thema höre ich in letzter Zeit des häufigeren. Ich bin da ein Fan von folgender Lösung. http://prideout.net/blog/?p=1
Man muss jetzt nicht zwingend Lua verwenden. Ich hab LuaJit in meinem proof of concept benutzt und war super zufrieden. Jemand anderes nimmt vieleicht V8, GameMonkey, was eigenes, C# jit oder was auch immer.
_________________ "Wer die Freiheit aufgibt um Sicherheit zu gewinnen, der wird am Ende beides verlieren" Benjamin Franklin
Was mir nicht klar, bei hasInput(), dieser Wert den man hier angibt, wie registriert man den, bzw. wie sieht das im C++ code aus wenn du z.b. nen Objekt renderst mit dem Shader. Das zusammenbauen ist mir relativ klar nur das Anwenden in Echtzeit ist mir noch unklar.
Ich vermute mal das dein Phong-Material nicht nur einen Shader erzeugt, sondern alle für die ganzen Zustände oder unterstützt GLSL ifdef´s und man kann ifdef konstante nachdem binden vom Shader irgendwie mitgeben???
Fragen über fragen.
Edit*: Ach man es ist einfach zu warm zum denken. Ist mir klar, das das Materialsystem, die Inputs einfach definiert und diese dann mit ciHasInput() abgefangen werden können.
Mitglieder in diesem Forum: 0 Mitglieder und 42 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.