Entiendo las principales diferencias entre texelFetchy texture, pero tengo algunas preguntas sobre los detalles:
- ¿
texelFetchImplica una penalización de rendimiento? ¿Como no usar un caché o algo así? - ¿Son
texelFetchetextureintercambiables cuando se usanGL_NEAREST?
opengl
textures
performance
Martin Perry
fuente
fuente

Respuestas:
texelFetches muy diferente detexture.texturees su función habitual de acceso a la textura que maneja el filtrado y las[0,1]coordenadas de textura normalizadas ( ).texelFetchaccede directamente a un texel en la textura (sin filtrado) usando coordenadas no normalizadas (p. ej.,(64,64)en el texel del medio-ish en una textura de 128x128 vs(.5,.5)en coordenadas normalizadas).fuente
textureo necesita que el hardware no lo haga y, por lo tanto, debe usartexelFetch)texelFetches más rápido y el filtrado del vecino más cercano es suficiente, no puede cambiar el contexto a filtrado NN por cualquier razón, sería razonable preferirlotexture.texelFetchytexturefunciona de manera diferente en formas fundamentales. Vea también las entradas: coordenadas de textura vs coordenadas normalizadas. Sirven para diferentes propósitos. El uno no es solo una optimización del otro.Como no hay una respuesta aceptada, agrego información, solo quería agregar cosas que Sean no dijo en su respuesta.
TexelFetch trata la textura como una imagen, para que pueda acceder exactamente al contenido de píxeles. Usualmente haces eso cuando necesitas exactamente ese contenido, lo cual es en pocas pero útiles ocasiones:
Tex2D trata la textura como una textura. No desea el contenido exacto de un píxel, pero desea el resultado más realista. Una lectura de textura estándar es una operación muy compleja e implica la lectura de datos interpolados de uno o más niveles de mipmap y luego se interpola nuevamente. Todas esas operaciones costosas son para evitar artefactos visuales.
GL_NEAREST no funcionará igual porque en los polígonos más alejados está leyendo datos en el nivel de mapa MIP más pequeño, que no son los mismos datos exactos que leería de una búsqueda de texel.
Hay un caso en el que Tex2D (casi) funciona igual que TexelFetch:
fuente