Question

Shaders peuvent avoir beaucoup de noms différents uniformes + attributs. Comment puis-je faire un système qui fonctionne dans le cas général pour que je n'ai pas connaître le nom de chaque uniforme de shaders au préalable et hardcode à code pour obtenir son emplacement. J'utilise OpenGL.

Était-ce utile?

La solution

Malheureusement, à un moment donné, vous aurez besoin de savoir quels sont les noms uniformes dans le shader sont, et ce qu'ils appellent ... il n'y a aucun moyen de contourner cela.

La plupart des graphiques / moteurs de jeu travail par convention - sont fixés par le moteur certains uniformes, et les utiliser shader au besoin. Certains ajouteront la configuration, de sorte que chaque shader peut spécifier quels uniformes il faut, mais en général, les noms sont encore fait par convention.

Autres conseils

Utilisez une convention de nommage, ou analyser la chaîne de shaders vous-même pour obtenir le type, le symbole et spécificateur de stockage en option. La première option met la responsabilité sur le programmeur de shaders, alors que la dernière solution met le fardeau sur le programmeur d'application. Un tel code peut être beaucoup plus élégant et efficace en utilisant l'extension GL _ ARB _ _ uniforme tampon _ objet , qui a été promu à noyau en OpenGL 3.1

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top