我一直在努力寻找一个明确的答案,但似乎没有人清楚地提出这个问题。
我能在WebGL Chrome、Firefox、Safari、IE等浏览器中使用1D采样器和1D纹理吗?
编辑
可以理解为1确实是2的幂(2^0=1),这意味着您可以使用高度为1、宽度为256或512等的2D采样器和纹理来复制1D纹理。
1D纹理并不是无用的,因为它们不仅有一个目的,而且旨在将优化转化为GPU本身(而不是2D纹理)。请记住,每个参数都需要时间加载到调用堆栈上,几乎所有的GPU编程都是优化每个可能操作的艺术。
计算着色器经常需要一个单独的浮点数列表,而没有额外的维度,使用1D纹理和采样器提供了与强类型相同的清晰度。例如,在1D结构中表示1D数据,在2D结构中表示2D数据。它还消除了需要进行索引到行/列转换的额外操作。
问题不是是否有充分的理由,而是它们是否已得到支持。
在基于OpenGL ES 2.0的WebGL 1.0中,截至2014年5月9日
- 目前没有1D纹理或采样器支持。