Estoy usando OpenGL para hacer algunos cálculos de GPGPU mediante la combinación de un sombreador de vértices y un sombreador de fragmentos. Necesito hacer cálculos en una imagen a diferente escala. Me gustaría utilizar mipmaps ya que su generación puede ser automática y acelerada por hardware. Sin embargo, no logro acceder a las texturas de mipmap en el sombreador de fragmentos.En un sombreador de fragmentos GLSL, ¿cómo acceder a texel en un nivel específico de mipmap?
He habilitado la generación automática de mipmap: glTexParameteri (GL_TEXTURE_2D, GL_GENERATE_MIPMAP, GL_TRUE);
Intenté usar texture2DLod en el shader sin tener suerte, simplemente seguía dando la textura normal. También intenté usar glTextureParameteri (GL_BASE_LEVEL, X) en el programa principal y no cambió nada.
¿Cómo harías eso?
Estoy usando Linux. Mi tarjeta gráfica es una Nvidia Quadro bastante vieja. Here es mi salida glxinfo con todas las extensiones compatibles.
He votado positivamente porque es "útil y claro", pero pareces hacer todo bien. ¿Qué dice glTextureSize (sampler, lod)? (En su sombreador de fragmentos) – Calvin1602
No hay tal función disponible para mí. Creo que mi tarjeta es demasiado vieja (acabo de comprobar y la versión de GLSL es GL_ARB_shading_language_100). Eso explicaría mucho, pero no entiendo por qué el sombreador aceptaría la variante * Lod sin quejarse si no era compatible ... – Jim
No entiendo tampoco por qué glTextureParameteri (GL_BASE_LEVEL, X) y glTextureParameteri (GL_MAX_LEVEL, X) las llamadas tampoco tienen efecto. Esto no está relacionado con GLSL ... Estoy bastante confundido en este momento. – Jim