矩形纹理(Rectangle_Texture)里面是一个2D image,该image不包含mipmap。当对纹理进行采样的时候,需要使用texel value来访问纹理里面的点。这和普通的GL_TEXTURE_2D的不一样,普通的纹理使用的是归一化的纹理坐标(Real time rendering 149页, 将图片纹理里面的像素,叫做texel,所以texel value指的就是纹理像素的真实的值)。
| SamplerType | TextureLookup | 纹理坐标 | |
|---|---|---|---|
| GL_TEXTURE_2D | sampler2D | texture2D | 归一化的UV坐标 |
| GL_TEXTURE_RECTANGLE_ARB | sampler2DRect,sampler2DRectShadow | texture2DRect | 纹理像素值 |
| GL_TEXTURE_EXTERNAL_OES | samplerExternalOES | samplerExternalOES | 归一化的UV坐标 |
使用的场景:早期的时候,纹理必须是power-of-two的。对于不是这个尺寸的纹理,rectangle texture是唯一的选择。所以这个通常被用在render target上面。因为render target通常是屏幕的尺寸大小,是不满足power-of-two的。但是现在的显卡都没有了power-of-two的限制,所以这个看起来没那么有用了。Khronos wiki里面还提到矩形纹理的一些小的用途:

矩形纹理(Rectangle_Texture)是一种2D图像,不包含mipmap且使用texel value访问。它曾用于非power-of-two尺寸的纹理,常见于render target。尽管现代显卡不再有此限制,矩形纹理在Chromium合成器中仍有应用。在Vulkan中,矩形纹理通过VkSamplerCreateInfo::unnormalizedCoordinates处理,采样器不支持texture2DRect类型,但坐标处理方式取决于该参数设置。
最低0.47元/天 解锁文章
668

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



