J'écris un shader dans GLSL et j'ai besoin de lui transmettre une certaine quantité d'informations. Le seul moyen pratique de transmettre cette information est d'utiliser 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 sûr de faire cela facilement?
Ce que je cherche est une formule qui prend la taille du tableau et de l'index que je veux et donne le nombre dans [0,1] qui correspond au texel que je veux.Comment indexer une texture en tant que table de correspondance discrète à partir d'un shader?
1
A
Répondre
2
idx/(size-1)
peut-être? Assurez-vous juste que idx et la taille sont les flotteurs d'abord.
1
Je viens de trouver que OpenGL 3.0 rend ce besoin obsolète avec l'introduction des texelFetch()
fonctions qui sont également disponibles avec l'extension GL_EXT_gpu_shader4
Bien que cela fonctionne (grâce au plus proche voisin), la manière correcte devrait être (IDX + 0,5)/taille. –