Registriert: Mi Jan 31, 2007 18:32 Beiträge: 150
Programmiersprache: Pascal
Also ich habe mir in letzter zeit ei n paar gedaneken gemacht wie shader in Engines impelemntiert werden könnten..
Das Problem ist nur wenn ich z.B. einen shader habe der die Textur einenes Meshes verändern soll und gleichzeitig noch die möglichkeit haben will beleuchtung per shader zu realisiern, dann müsste ich doch praktisch die pipline durch beide Shader ersetzen bzw aus beiden einen machen aber mir ist nicht ganz klar wie soetwas dynamisch von staten gehen soll...
Das einzige was mir daszu eingefallen ist, ist jeden Teil der neuen Pipline (Licht, Texturveränderungen usw.) in einer Liste zu speichern diese Template Stücke nach einer bestimmten einfolge in ein Shader Grundgerüst einzusetzen und dann jedesmal wenn die pipline angepasst werden muss den shader erst zu erzeugen...
Also habt ihr irgendwelche ideen bzw. Vorschläge wie man das regeln sollte???
Du kannst auch bei der Initalisierung mehrere ProgrammObjekte mit den verschiedenen Shadern erstellen und dann in deiner Render-Schleife mittels glUseProgram() auswählen, welcher Shader aktiviert werden soll. Mit glUseProgram(0) kannst du alle Shader deaktivieren.
Das hat den vorteil, dass du in deiner Render-Schleife die Shader nicht compilieren und linken brauchst.
Registriert: Do Sep 02, 2004 19:42 Beiträge: 4158
Programmiersprache: FreePascal, C++
Ja, bringt einem aber nicht viel, weil man nur einen Shader gleichzeitig aktivieren kann. Somit musst du die dinger trotzdem vorher zusammenlinken. Ansonsten hast du aber recht, das Kompilieren sollte genauso wie das Laden der Texturen nur vor dem Rendern während der Initialisierung erledigt werden.
Gruß Lord Horazont
_________________ If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung. current projects: ManiacLab; aioxmpp zombofant network • my photostream „Writing code is like writing poetry“ - source unknown
„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb
Mitglieder in diesem Forum: 0 Mitglieder und 7 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.