如果我理解正确,如果我要设置TEXTURE_MIN_FILTER为NEAREST那么sampler2DArray/ TEXTURE_2D_ARRAY和sampler3D/ 之间没有太大的区别TEXTURE_3D
差异似乎是
GenerateMipmap 将交叉图层与3D纹理混合,而不是2D数组Z传递给textureGLSL 的坐标在3D阵列中为0到1,在2D阵列中为0到N(深度).正确?
除了已经给出的答案外,还有另一个值得注意的区别:大小限制也有很大不同。阵列纹理的单层可能与标准2D纹理一样大,并且层数有一个额外的限制,而对于3D纹理,存在一个限制所有尺寸的最大大小的限制。
例如,OpenGL 4.5保证以下最小值:
GL_MAX_TEXTURE_SIZE 16384
GL_MAX_ARRAY_TEXTURE_LAYERS 2048
GL_MAX_3D_TEXTURE_SIZE 2048
Run Code Online (Sandbox Code Playgroud)
因此16384 x 16384 x 16阵列纹理就可以了(对于现实世界中发现的每个支持GL 4.5的GPU,它也应该适合内存),而当今大多数实现都将不支持相同尺寸的3D纹理(尽管在3D纹理的情况下,完整的mipmap金字塔将消耗更少的内存)。
| 归档时间: |
|
| 查看次数: |
1436 次 |
| 最近记录: |