如果我理解正确,如果我要设置 TEXTURE_MIN_FILTER
至 NEAREST
那么sampler2DArray
之间没有太大区别/TEXTURE_2D_ARRAY
和 sampler3D
/TEXTURE_3D
差异似乎是
GenerateMipmap
将与 3D 纹理而不是 2D 阵列混合交叉层 Z
坐标传递给 texture
在 GLSL 中,3D 纹理是 0 到 1,而 2D 数组是 0 到 N(深度)。 正确的?
最佳答案
不正确。还有一个区别:mipmap 大小。
在 3D 纹理中,宽度、高度和深度都随着 mipmap 尺寸的减小而减小。在二维数组纹理中,每个 mipmap 级别具有相同数量的数组层;只有宽度和高度减少。
这不仅仅是混合和一些纹理坐标奇怪的问题;纹理数据的大小是不同的。它是一种非常不同的纹理,不同于 3D 纹理,就像 2D 纹理与 1D 纹理一样。
这也是您不能创建 view texture 的原因。 2D 阵列的 3D 纹理,反之亦然。
关于opengl - 了解 2D 纹理数组和 3D 纹理之间的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35818027/