En GLSL spec y other sources about GLSL, los tipos de muestreador están disponibles en 3 dimensiones: sampler1D
, sampler2D
y sampler3D
.sampler1D no es compatible con nVidia GLSL?
Sin embargo, cuando intento compilar programas GLSL usando WebGL en Chrome (tanto regular como también en Canarias), sampler2D
y sampler3D
son aceptados, pero sampler1D da un error de sintaxis. Código:
uniform sampler1D tex1;
error:
FS ERROR: ERROR: 0:9: 'sampler1D' : syntax error
Este error se produce incluso si doy Canarias el argumento de línea de comandos --use-gl=desktop
.
Estoy ejecutando Chrome 12.0.742.68 beta-m, y Canario 13.0.782.1. El chipset que tengo es Nvidia Quadro NVS 160M.
¿Es posible que Nvidia permita muestreadores de texturas de 2 y 3 dimensiones, pero no 1D? Intenté buscar información a tal efecto, pero no encontré nada.
Efectivamente, tienes razón. Para otros interesados, la especificación GLSL ES 2.0 está aquí: http://www.khronos.org/registry/gles/specs/2.0/GLSL_ES_Specification_1.0.17.pdf Esto muestra que tanto 'sampler1D' como' sampler3D' son palabras clave "reservado para uso futuro. Su uso dará como resultado un error". – LarsH
P.S. Gracias por responder. – LarsH
Las texturas 2D son cuadradas, por lo que una con una altura de 1 también tiene un ancho de 1. Necesita una textura 2DRect que, al igual que las texturas 1D, están disponibles en el escritorio GL pero no en GLES sin una extensión –