nVidia GLSL不支持sampler1D?

Lar*_*rsH 7 graphics textures nvidia glsl

GLSL规范,和大约GLSL其他来源,采样器类型是在3个维度可用的:sampler1D,sampler2D,和sampler3D.

但是当我尝试在Chrome中使用WebGL编译GLSL程序时(包括常规的,也包括Canary),sampler2D并且sampler3D被接受但是sampler1D给出了语法错误.码:

uniform sampler1D tex1;
Run Code Online (Sandbox Code Playgroud)

错误:

FS ERROR: ERROR: 0:9: 'sampler1D' : syntax error 
Run Code Online (Sandbox Code Playgroud)

即使我给Canary命令行参数,也会发生此错误--use-gl=desktop.

我正在运行Chrome 12.0.742.68 beta-m和Canary 13.0.782.1.我拥有的芯片组是Nvidia Quadro NVS 160M.

是否有可能Nvidia允许2维和3维纹理采样器,而不是1D?我已经尝试搜索相关的信息,但没有找到任何东西.

Mat*_*gro 10

不,您的问题与"NVIDIA GLSL"无关.WebGL基于OpenGL ES 2.0,而OpenGL ES 2.0没有1D纹理,只有2D和3D纹理(作为扩展),因此您将无法在WebGL中使用sampler1D.

解?只需使用带有sampler2D的高度为1的2D纹理.

注意:如果使用Desktop OpenGL(OpenGL> = 2.0),您将能够使用1D纹理和sampler1D.