是的,共享数据存储意味着从不同的对象访问相同的存储空间。就像共享指针意味着能够从两个不同的位置访问相同的内存一样。
这与使用采样器对象不同,因为它们之间没有相似之处。采样器对象 存储采样参数。纹理对象具有 非采样参数,例如 mipmap 范围, 颜色通道重映射 等等。这些不是采样状态;它们是纹理状态。
Texture对象也有特定的纹理类型。相同存储的不同视图可以拥有不同的纹理类型(在限制范围内)。你可以拥有一个GL_TEXTURE_2D
,它是GL_TEXTURE_2D_ARRAY
纹理单层的视图。你可以从6个或更多层的GL_TEXTURE_2D_ARRAY
创建一个GL_TEXTURE_CUBE_MAP
。你能使用纹理视图来实现与采样器对象相同的效果吗?不行。使用采样器,您可以将采样参数与纹理对象分离。这使您可以为多个不同对象使用相同的参数集。因此,您可以更改一个采样器对象并将其与多个纹理一起使用,而无需去每个纹理并修改它。
它们是两个不同的功能,用于两个不同的目的。