Dans les modèles GLSL spec et other sources about GLSL, les types d'échantillonneurs sont disponibles en 3 dimensions: sampler1D
, sampler2D
et sampler3D
.sampler1D non pris en charge dans nVidia GLSL?
Toutefois, lorsque j'essaie de compiler des programmes GLSL à l'aide de WebGL dans Chrome (à la fois normal et également dans Canary), sampler2D
et sampler3D
sont acceptés, mais sampler1D génère une erreur de syntaxe. Code:
uniform sampler1D tex1;
Erreur:
FS ERROR: ERROR: 0:9: 'sampler1D' : syntax error
Cette erreur se produit même si je donne Canari l'argument de ligne de commande --use-gl=desktop
. Je suis sous Chrome 12.0.742.68 beta-m et Canary 13.0.782.1. Le chipset que j'ai est Nvidia Quadro NVS 160M.
Est-il possible que Nvidia permette des échantillonneurs de texture en 2 et 3 dimensions, mais pas 1D? J'ai essayé de chercher des informations à cet effet, mais je n'ai rien trouvé.
Effectivement, vous avez raison. Pour ceux qui sont intéressés, la spécification GLSL ES 2.0 est ici: http://www.khronos.org/registry/gles/specs/2.0/GLSL_ES_Specification_1.0.17.pdf Cela montre que 'sampler1D' et' sampler3D' sont des mots-clés "réservé pour une utilisation future.L'utilisation entraînera une erreur." – LarsH
P.S. Merci de répondre. – LarsH
Les textures 2D sont carrées, donc une avec une hauteur de 1 a aussi une largeur de 1. Vous avez besoin d'une texture 2DRect qui, comme les textures 1D, sont disponibles dans le bureau GL mais pas dans GLES sans extension –