Architektur für OpenGL Programme?

Unicate

Erfahrenes Mitglied
Hallo alle zusammen!

Ich bastle gerade ein wenig mit OpenGL ES 2.0 rum. Speziell auf Androidgeräten (C/C++ only).

Nun find ich, dass das Shaderkonzept den Code ein wenig "dreckig" macht. Man braucht einen Handler für alle Attribute, was die Klassen relativ schnell "vollstopft" und sie somit recht unübersichtlich werden.

Meine Frage:

Gibt es eine gute Vorgehensweise, wie man evtl. die Shader, incl. der handle's, in eine Klasse packen und das sauber handlen könnte?
Wie macht ihr das?
Wie stellt ihr sicher, das die Shader nur noch eingebunden werden müssen. Unabhängig von dem Mesh, welches ihr zeichnen wollt? Geht das überhaupt?
 
Echt keiner?

Nun ja hier mal mein Ansatz einer Idee:

Ich habe eine Klasse Mesh, welche so ziemlich alles enthält, was ein Shader so rendern könnte. (Vertices,TexCoords,Indices,Material etc.)

Nun werd ich mir ne Shaderklasse bauen, welche VS & FS bauen kann, wobei es egal sein sollte, was der Shader tut. DIESER Klasse verpasse ich eine (abstrakte) RenderMethode, welche dann eine Meshklasse rendern kann.

Irgendwie stell mich das aber noch nicht ganz zufrieden.
Ich könnte die Rendermethode noch weiter runterbrechen, sodass ich Klasse Mesh noch von irgendetwas allgemeinerem ableite. Wenn ich nämlich einfache Linien rendern möchte würde das damit noch nicht so richtig funktionieren.

Jetzt müsste ich aber immer noch für jeden Shader eine Klasse WhateverShader von Klasse Shader ableiten, damit sich das vernünftig handlen lässt.

Hat jemand noch andere Ideen?
 
Zurück