J'utilise OpenGL pour faire des calculs GPGPU en combinant un vertex shader et un fragment shader. J'ai besoin de faire des calculs sur une image à une échelle différente. Je voudrais utiliser des mipmaps car leur génération peut être automatique et matérielle accélérée. Cependant, je n'arrive pas à accéder aux textures mipmap dans le fragment shader. J'ai activé la génération automatique de mipmap: glTexParameteri (GL_TEXTURE_2D, GL_GENERATE_MIPMAP, GL_TRUE);Dans un fragment de fragment GLSL, comment accéder à texel à un niveau de mipmap spécifique?
J'ai essayé d'utiliser texture2DLod dans le shader sans aucune chance, il a simplement continué à donner la texture normale. J'ai également essayé d'utiliser glTextureParameteri (GL_BASE_LEVEL, X) dans le programme principal et cela n'a rien changé.
Comment le feriez-vous? J'utilise Linux. J'utilise Linux. Ma carte graphique est une Nvidia Quadro assez ancienne. Here est ma sortie de glxinfo avec toutes les extensions supportées.
J'ai mis votre question en suspens parce que c'est "utile et clair", mais vous semblez tout faire correctement. Que dit glTextureSize (sampler, lod)? (Dans votre fragment shader) – Calvin1602
Il n'y a pas une telle fonction à ma disposition. Je pense que ma carte est trop ancienne (je viens de vérifier et la version de GLSL est GL_ARB_shading_language_100). Cela expliquerait beaucoup mais je ne comprends pas pourquoi le shader accepterait la variante * Lod sans se plaindre s'il n'était pas supporté ... – Jim
Je ne comprends pas non plus pourquoi le glTextureParameteri (GL_BASE_LEVEL, X) et glTextureParameteri (GL_MAX_LEVEL, X) les appels n'ont aucun effet non plus. Ce n'est pas lié à GLSL ... Je suis assez confus en ce moment. – Jim