纹理滤波

✍ dations ◷ 2025-06-09 19:41:46 #计算机图形学,三维计算机图形学

在计算机图形学中,纹理滤波(Texture filtering)是一种针对一个使用材质贴图的像素,使用临近的一个或多个纹素计算其纹理颜色的方法。从数学上来说,纹理滤波是抗锯齿的一种,但它更着重于滤掉纹理中的高频,而不像其他抗锯齿技术那样着重于改善边界显示效果。简单来说,它使得同一个纹理可以被用于不同的形状,尺寸和角度,同时尽可能减少显示时的模糊和闪烁。

用户可以权衡计算复杂度和图像质量,在许多种纹理滤波方法中进行选择。

在应用纹理贴图时,需要对于每一个像素中心所在的位置进行查询纹理值的操作。但是由于被渲染的目标表面相对于视角,可能处于任意距离或者角度,一个像素不一定有一个纹素对应。所以需要应用某种滤波方式来决定其纹理值,缺少滤波或使用不当都会造成最终的图像存在例如锯齿和闪烁之类的瑕疵。

由于应用纹理贴图的表面相对于视角的距离和角度不同,在表面之上的一个像素和对应的纹理之上一个或多个纹素之间可能存在多种对应关系,这也导致需要应用不同的滤波方式。如果把一个正方形的纹理映射到一个正方形的表面上,在离视角的某一个距离上,屏幕上的一个像素和一个纹素几乎等尺寸。如果比这个距离近,纹素就会比像素尺寸大,这是就需要将纹素相应地放大,这就是所谓的。同理,如果比这个距离远,纹素将比像素尺寸小,一个像素最终的纹理值就会从其覆盖的多个纹素的值计算出,这也就是通常所说的。常见的图像应用程序接口,例如OpenGL,提供了多种的缩小和放大滤波方式。

值得注意的是,即使在像素和纹素尺寸相等的情况下,其之间也不一定就存在一一对应的关系。例如可能存在错位而导致一个像素覆盖了相邻四个纹素的各一部分。所以仍然需要某种滤波方式。

Mipmapping是一种常见的通过预计算减小渲染时所需滤波工作的方法。在中,所参与计算一个像素的纹理值的纹素一般是四个或更少;而在中,随着目标表面远离视点,整个纹理尺寸可能最终将比一个像素还小,这将造成需要其上的所有纹素进行计算,这样造成的计算量和带宽在实时渲染中是不现实的。Mipmapping通过进行预计算,并将结果存储在一系列更小尺寸的纹理中,避免了这种情况的发生。当目标表面逐渐远离时,更小尺寸的纹理将自动被选用参与计算。

以下列举了常见的纹理滤波方式,以计算成本从少到多排序。

最近邻插值是最快速,也是最粗糙的滤波方式。最邻近像素中心的纹素颜色将被作为像素的颜色。在时,这种方式会导致色块;而在时,则会导致闪烁和锯齿。

这种方式先根据距离选择最近的mipmap层级,再从其中选择最靠近像素中心的纹素。这对闪烁和锯齿很有效,但不能减少色块。

双线性滤波会从最近的mipmap层次上,选择最靠近像素中心的四个纹素,再根据他们靠近像素中心的具体进行权重插值。这时如果进行,当像素相对于纹素移动时,像素颜色会从逐渐从一个纹素颜色变化到相邻的纹素颜色,而不是像最近邻插值那样,在穿过两个纹素的边界时发生突变,这样就消除色块。双线性滤波经常与mipmapping一起使用,但也可以单独使用,但这时会出现闪烁和锯齿化的问题。

在使用mipmapping双线性滤波时,当目标表面的距离变化时,会从一个mipmap层次突变到相邻的层次。三线性滤波被用来解决这个问题,方法是在最相邻的两个mipmap层次上分别进行双线性滤波,再用得到的两个值进行线性插值。值得注意的是,当距离小于mipmap的零层次时(即纹素大小超过像素大小时),三线性插值退化为双线性插值。

各向异性过滤是现有消费级显卡所提供的图像质量最佳的滤波方式。传统的各项同性滤波中只是在正方形的mipmap层次间进行双线性或三线性插值,但是当一个目标表面和摄像机之间角度较大时,纹理的填充面积并不是正方形,这样便引入了模糊和闪烁等瑕疵。于是,各向异性滤波需要对一个非方形纹理进行采样。在一些简单的实现中,显卡使用长方形的纹理取代方形纹理,达到了较好的近似效果。但是这种方式在处理边界时效果依然不理想,原因是在倾斜的表面上,近端边界比远端边界拥有更多的像素。于是一些高端显卡使用了梯形纹理,当然这也要求更大的运算量。

相关

  • 化粪池化粪池,是为一些没有连接公共排污系统的楼宇而设的小型污水处理系统,包括一个或多个水池及化粪系统。污水在进入水池时,细菌会对污物进行无氧分解,并会使固体废物体积减少,再经过
  • 威斯巴登威斯巴登(德语:Wiesbaden)是德国中部黑森州的州府,法兰克福之后该州的第二大城市。它同时还是欧洲最老的温泉水疗城镇之一,有着26个温泉和1个冷泉。威斯巴登是黑森州的核心城市之
  • 法美关系法美关系是指法国和美国两国之间自1776年以来的国际关系。法国在1778年就承认了美国,并且在美国独立战争期间给予美国军事援助。基本上法国和美国关系皆处于和平状态(除了1798
  • 髌丛这是一个位于髌骨、髌韧带和胫骨上端前面的精细的神经丛,由以下几条分支构成:1)外侧皮神经前支2)中间皮神经3)内侧皮神经前支4)隐神经髌下支。本条目包含来自属于公共领域版本的《
  • 精神权利著作者的精神权利、人身权或人格权(英语:moral rights)是在欧陆法系及部分普通法系中赋予创作者对自己原创作品享有独立于著作权的另一系列权利,换言之这个权利是不会因为原作者
  • 疯狗浪疯狗浪(Rogue waves),或称异常巨浪(Freak waves)是指比有效波高(Significant wave height)高出1倍的巨浪。疯狗浪其实是海洋中的一种涌浪(又称长浪),也就是人们常说的“无风三尺浪”。
  • X-SAMPA拓展音标字母评估法(英语:Extended Speech Assessment Methods Phonetic Alphabet (X-SAMPA))是SAMPA的一种变体,最先于1995年由伦敦大学的语言学教授约翰·克利斯多佛·威尔士(J
  • 痒病羊搔痒症(英语:Scrapie),是一种退化性疾病,发生在绵羊及山羊上,造成它们的神经系统异常。它跟牛海绵状脑病与鹿的慢性消耗病相同,都是传染性海绵状脑病的一种,由异常的朊蛋白(英语:PRN
  • 枫林镇枫林镇可以指:
  • 不送气不送气清辅音(Tenuis consonant),语音学概念上指一个不送气、不吸气、属清音的塞音或塞擦音辅音。例子有英文s后面的p、t、k(spy、sty、sky)。为感知送气与不送气音之间的差别,试