Anbringen von mehreren Shadern des gleichen Typs in einem einzigen OpenGL-Programm?

Beim Lesen der OpenGL-specs, die ich bemerkt habe, im ganzen, dass es erwähnt, dass Sie können mehrere Shader, die von der gleichen Art in einem einzigen Programm (d.h. mehr als ein GL_VERTEX_SHADER befestigt mit glAttachShader). Speziell im OpenGL 4.2, §2.11.3 -, Programm-Objekte: "Mehrere shader-Objekte des gleichen Typs angebracht werden kann, um eine einzelne Programm-Objekt...".

OpenGL-pipeline-Programme und Unterprogramme könnte hier zutreffen, aber diese war definiert werden, bevor diese existierte (in der Tat geht es zurück in der 2.1 spec, §2.15.2) also ich bin auf der Suche nach einem pre-GL4 Beispiel dieser Idee. Wenn ich nicht einige einfache Tests habe ich festgestellt, dass darunter mehr als ein void main() verursacht Verknüpfungsfehler. Ist jemand bekannt, der ein praktische Beispiel, bei dem dieses verwendet wird?

  • Ich bin mir nicht sicher, ob das funktioniert, aber ich denke, man kann Shader mit den üblichen Funktionen (aber keine main-Funktion), so können Sie diese in das porgram und können auf diese Funktionen zugreifen, die von der main-shader. Auf diese Weise brauchen Sie nur zu kompilieren, die diese Funktionen einmal.
InformationsquelleAutor Mike E | 2012-02-06
Schreibe einen Kommentar