gpt4 book ai didi

opengl - 何时使用纹理 View

转载 作者:行者123 更新时间:2023-12-04 11:54:15 25 4
gpt4 key购买 nike

我正在阅读 Texture Viewsnew红色的书。
在第 322 页上说:

OpenGL allows you to share a single data store between multiple textures,each with its own format and dimensions.



(通过纹理 View )

现在,我的问题是:

这是否意味着多个实例(在本例中为纹理 View )引用了单个纹理源?

它与使用相同的纹理对象(例如,使用不同的采样器)有何不同?

另外,这是否意味着通过纹理 View 更改纹理像素会更改原始纹理对象中的像素?(我想答案是肯定的,因为 doc 说它是纹理存储的别名)

最佳答案

是的,共享数据存储意味着从不同的对象访问相同的存储。就像共享一个指针意味着能够从两个不同的位置访问相同的内存。

它与使用采样器对象的不同之处在于它们之间没有相似之处。 Sampler objects存储采样参数。纹理对象有 parameters that are not for sampling ,例如 the mipmap range , swizzle mask之类的。这些不是采样器状态;它们是纹理状态。

纹理对象也有 specific texture type .同一个存储的不同 View 可以有different texture types (within limits) .您可以拥有一个 GL_TEXTURE_2D那是GL_TEXTURE_2D_ARRAY的单层 View 质地。你可以拿一个GL_TEXTURE_2D_ARRAY 6 层或更多层并创建一个 GL_TEXTURE_CUBE_MAP从中。

采样器对象不能这样做。

纹理对象有一个 internal format它定义了如何解释存储。同一个存储的不同 View 可以有different formats (within limits)采样器不影响格式。

采样器对象也不能这样做。

可以使用纹理 View 来实现与采样器对象相同的效果吗?不。使用采样器,您可以将采样参数与纹理对象分离。这允许您对多个不同的对象使用相同的参数集。因此,您可以更改一个采样器对象并将其与多个纹理一起使用,而无需转到每个纹理并对其进行修改。

它们是两个不同的功能,用于两个不同的目的。

关于opengl - 何时使用纹理 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17152340/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com