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

botlin

Treue Seele

  • »botlin« ist der Autor dieses Themas

Beiträge: 139

Wohnort: Berlin

Beruf: Fachinformatiker für Anwendungsentwicklung, Student Internationale Medieninformatik

  • Private Nachricht senden

1

08.06.2011, 10:37

GLSL - Lassen sich mehrere Shader kombinieren?

Hi Leute ich denke der Titel sagt schon alles...
Kurz etwas zur situation.

Ich habe mich in den letzten Wochen mit GLSL auseinander gesetzt und gestern meinen ersten Shader fertig gestellt er übernimmt eigentlich nur die T&L Unit der Opengl Pipline wobei ich die Beleuchtung etwas aufgebohrt habe. er kann jetz Per Pixel Lighting sowie Bumpmapping und die von Opengl definierten Sachen mit den ganzen Material einstellungen und dem Spotlight.

Wenn ich nun bei einem bestimmten Objekt eine Spezielen Shader anwenden möchte der zum Beispiel das Objekt verformt kann ich ja nicht mehr meinen Beleuchtungsshader verwenden.
Nun die Frage. Bin ich gezwungen meinen spezielen Shader ebenfalls mit dem Code aus dem Beleuchtungsshader zu versehen oder ist es möglich erst den einen Shader und dann den andern Shader aufzurufen?

Ich hoffe es ist ersichtlich was ich meine...

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

2

08.06.2011, 11:40

Du kannst theoretisch afaik mehrere Shader Objekte zum gleichen Program attachen wobei eben nur eines eine main() Funktion hat und die andren irgendwelche andren Funktionen die irgendwo wieder verwendet werden. Aber prinzipiell ist das Zusammenbasteln eines passenden Shaders der einzige Weg.