在我的程序中,我有一个纹理,它在不同情况下使用多次。在每种情况下,我都需要应用一组特定的参数。
我想避免创建额外的缓冲区,并在每次需要将其用于其他用途时实质上创建纹理的副本,所以我想知道是否有更好的方法?
这是什么采样器对象 http://www.opengl.org/wiki/Sampler_Object用于(自版本 3.3 起在核心中可用,或使用ARB_sampler_objects
)。采样器对象将纹理图像与其参数分开,因此您可以使用具有多个参数集的一张纹理。该功能是根据您的问题而创建的。
引用自ARB_sampler_objects
扩展规格:
在未扩展的 OpenGL 中,纹理被认为是图像数据集(mip 链、数组、立方体贴图面集等)和采样状态(采样模式、mip 映射状态、坐标环绕和夹紧规则等)的组合。成单个对象。应用程序通常会使用许多纹理以及一组有限的采样状态,这些纹理之间的采样状态是相同的。为了以这种方式使用纹理,应用程序必须生成和配置许多纹理名称,从而增加应用程序和实现的开销。此外,如果应用程序希望以多种方式(例如,使用或不使用 mip 映射)从纹理中采样,则必须修改纹理的状态或创建两个纹理,每个纹理都具有相同图像数据的副本。这可能会给应用程序带来运行时和内存成本。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)