在OpenGL3.3中先加入了采样器对象( sampler object ),记得以前做OpenGL程序的时候,有时会遇到需要相同的纹理数据只是filter模式不同而已,但当时由于不支持多个不同属性集共享同一个纹理对象,因此必须分别建立2个不同的纹理对象(当然使多个纹理对象共享同一个pixel buffer来达到此目的),显得很笨拙和浪费。新加入的采样器对象就使这个工作变得容易且合乎逻辑和直觉的“美感”
一个采样器对象实际上时定义了诸如过滤,寻址模式等属性,但不包括纹理的宽度和高度。之所以这样也是想当然的,因为通常采样器可以为多个纹理对象共享,当这些纹理对象的纹理内存尺寸不同时也不会造成歧义。
使用过程大致如下:

OpenGL3.3引入了采样器对象,允许定义过滤和寻址模式而不包含纹理尺寸,可以被多个纹理对象共享。CUDA3.0也支持类似特性,分为统一模式和正交模式。采样器对象使得多个纹理单元可以共享相同的过滤和寻址设置,即使它们的尺寸、数据类型和通道数不同,也可以共享数据源。
最低0.47元/天 解锁文章
879

被折叠的 条评论
为什么被折叠?



