Yes, sharing a data store means accessing the same storage from different objects. Just like sharing a pointer means being able to access the same memory from two different locations.
It's different from using sampler objects in that there is no similarities between them. Sampler objects store sampling parameters. Texture objects have parameters that are not for sampling, such as the mipmap range, swizzle mask and the like. These are not sampler state; they're texture state.
Texture objects also have a specific texture type. Different views of the same storage can have different texture types (within limits). You can have a GL_TEXTURE_2D
that is a view of a single layer of a GL_TEXTURE_2D_ARRAY
texture. You can take a GL_TEXTURE_2D_ARRAY
of 6 or more layers and create a GL_TEXTURE_CUBE_MAP
from it.
Sampler objects can't do that.
Texture objects have an internal format that defines how the storage is to be interpreted. Different views of the same storage can have different formats (within limits) Samplers don't affect the format.
Sampler objects can't do that either.
Can you use texture views to achieve the same effect as sampler objects? No. With samplers, you decouple the sampling parameters from texture objects. This allows you to use the same set of parameters for multiple different objects. And therefore, you can change one sampler object and use that with multiple textures, without having to go to each texture and modify it.
They're two different features, for two different purposes.