Comment indexer une texture comme une table de recherche discrète d'un shader?
Question
J'écris un shader en GLSL et je dois passer un certain nombre d'informations. Le seul moyen pratique de transmettre cette information utilise une texture 1-D.
Je crée la texture et la mise en GL_TEXTURE_MIN_FILTER
et GL_TEXTURE_MAG_FILTER
à GL_NEAREST
Maintenant, à partir du shader j'ai besoin d'accéder à la texture donc je vais être en mesure d'indexer exactement chaque numéro vecteur 3-valeur que je mets dedans.
Qu'est-ce qu'un moyen infaillible de le faire facilement?
Ce que je suis à la recherche est une formule qui prend la taille du tableau et l'indice que je veux et me donner le numéro de [0,1] qui correspond à la texel que je veux.
La solution
idx/(size-1)
peut-être? Assurez-vous simplement IDX et la taille sont des flotteurs d'abord.
Autres conseils
Juste a découvert que OpenGL 3.0 rend obsolète ce besoin avec l'introduction des fonctions de texelFetch()
qui sont également disponibles avec l'extension GL_EXT_gpu_shader4