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