Frage

Shaders können viele verschiedene einheitliche Namen + Attribute haben. Wie kann ich ein System zu machen, die im allgemeinen Fall funktioniert so, dass ich muß vorher nicht wissen, die Namen der einzelnen Shader-Uniform und codieren sie Code seine Lage zu erhalten. Ich benutze OpenGL.

War es hilfreich?

Lösung

Leider an einem gewissen Punkt, Sie müssen wissen, was die einheitliche Namen im Shader sind und was sie beziehen sich auf ... es gibt einfach keine Möglichkeit, um das.

Die meisten Grafiken / Game-Engines Arbeit vereinbarungs - bestimmte Uniformen werden durch den Motor eingestellt und Shadern benutzen sie je nach Bedarf. Einige Konfiguration hinzufügen wird, so dass jeder Shader kann angeben, welche Uniformen es erfordert, aber in der Regel werden die Namen noch vereinbarungsgemäß durchgeführt.

Andere Tipps

Verwenden Sie eine Namenskonvention, oder analysieren, um die Shader-String selbst die Art zu erhalten, Symbol und optionalen Speicher Spezifizierer. Die erste Option stellt eine Verantwortung auf dem Shader-Programmierer, während die letztere Lösung, um die Belastung für den Anwendungsprogrammierer legt. Ein solcher Code kann GL _ ARB viel eleganter und effizienter mithilfe der Erweiterung vorgenommen werden _ _ Uniform Puffer _ Objekt , der Kern in OpenGL 3.1 gefördert wurde

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top