纹理过滤与反走样.doc

上传人:hw****26 文档编号:3120524 上传时间:2019-05-22 格式:DOC 页数:7 大小:222KB
下载 相关 举报
纹理过滤与反走样.doc_第1页
第1页 / 共7页
纹理过滤与反走样.doc_第2页
第2页 / 共7页
纹理过滤与反走样.doc_第3页
第3页 / 共7页
纹理过滤与反走样.doc_第4页
第4页 / 共7页
纹理过滤与反走样.doc_第5页
第5页 / 共7页
点击查看更多>>
资源描述

1、纹理过滤与反走样纹理过滤与反走样朱元伟 计算机应用 09 研 2110912097进行纹理过滤时,正在使用的纹理通常也正在被进行放大或缩小。换句话说,这个纹理将被映射到一个比它大或小的图元的图象上。纹理的放大会导致许多像素被映射到同一个纹理像素上。那么结果看起来就会使矮矮胖胖的。纹理的缩小会导致一个像素被映射到许多纹理像素上。其结果将会变得模糊或发生变化。 另外将一张黑白的世界象棋图映射到物体表面, 当物体表面小到接近单位像素时, 表面只能显示黑色或白色, 当物体位移或旋转时, 会出现黑白闪烁现象要解决这些问题,我们可以将一些纹理像素颜色融合到一个像素颜色上。没有反走样 正弦滤波器 1.双线性

2、过滤双线性过滤1.1 双线性过滤的工作原理 其工作原理是将一个像素分成2X2的纹理元素区域块 这样我们就拥有A、B、C、D 4个纹理元素区域了,然后以目标纹理的像素点为中心,对该点附近的这个4个像素颜色值求平均值。再将这个平均颜色值贴至目标图像素的位置上。双线性过滤的优点是运算量少,效果也很不错.上图中显示出一条直路 你可以看到左边的斜线标志在某个距离外,会出现一些环状失真的现象1.2 双线性过滤的问题 双线性过滤是最基本的 3D 纹理过滤技术,通过使用双线性过滤,不同像素间的过渡会变得比较圆滑,不过经过双线性处理后的图像会显得有些模糊,比较适用于有一定景深的静态影像,不适合非常小的三维物体,

3、也不适用于移动中的物件。因为会产生如条纹和纹理变形等,当视角发生变化时,就可能感觉到闪烁感等的问题。2. MIP-MAP2.1 MIP-MAP思想与算法当一个物体离观察点较远的时候,并不需要这样高分辨率的纹理。mipmapping是在纹理缓存里面装载不同分辨率的纹理位图,当物体里观察点较近的时候采用高分辨率的纹理,离开观察点较远的时候采用低分辨率的纹理位图,就可以在很大程度上消除远端物体纹理的闪烁感。mipmapping的实现是以需要更大的纹理缓存为代价的,因为纹理缓存里面需要为场景中的物体保存不同分辨率的几套位图 1。 这是未采用双线性过滤的效果,可以看见很明显的马赛克现象。 这是采用了双线

4、性过滤后的效果,马赛克没有了。 图中铁丝网应该是均匀的,但在这里成了不均匀的分布,在移动的时候,这些地方就会感到有闪烁。注意图中箭头所指之处。 这是应用了mipmap后的效果Mip-Map 图映射方法是对前置滤波法的一种加速办法,是一种牺牲精度来提高速度的纹理映射方法。 它采用一个适当大小的正方形区域近似表示图象空间一个象素在纹理空间的映射区域,用该正方形区域的样本平均值近似作为图象空间一个象素的纹理计算值。 Mip-Map 图映射方法预先将纹理函数值按照不同的分辨率记录在纹理数组中,作为纹理查找表。其中低分辨率的函数值由比它高一级分辨率的函数值取平均得到。 设 t(u,v)是纹理函数,给定的

5、分辨率是 NN(如 512512),将纹理空间划分成NN 个小正方形区域,取每个小正方形区域中的纹理函数平均值即得 NN 个纹理值,按红、绿、蓝 3 个分量分别存放于 3 个 NN 的二维数组中,即为 Mip 图的第一级数据(在设定的 NN 分辨率下的最高分辨率纹理值)。 设屏幕空间一象素对应到纹理空间的 4 个角点构成的四边形的最大边长 d,按照分辨率由高向低往上分层存放 Mip-Map 图映射表:如果选取最高分辨率,即屏幕空间一象素几乎对应纹理空间的 1(2 0)个正方形。此时压缩倍数是 20,正方形的边长是 1,应选取 1 层。如果屏幕空间一象素几乎对应纹理空间的 22个正方形,此时压缩

6、倍数是 21,正方形的边长是 2,应选取 2 层。 如果屏幕空间一象素几乎对应纹理空间的 2N 个正方形,此时压缩倍数是 2N-1,正方形的边长是 N,应选取 N 层。mip-map 在确定屏幕上可见表面的纹理过程如下 2(1). 计算屏幕上可见表面的中心在纹理空间上的映射点坐标(u, v).(2). 确定纹理空间中以(u, v)为中心, 边长为 d 的正方形, 要求正方形能覆盖表面在纹理空间中映射的区域.(实际这样算 d 太复杂, 一般 d 为表面在纹理空间中映射的区域的最大边长)(3). 根据 d 的大小确定使用哪一级的纹理 map.因为 mip-map 中的纹理图案存储的是特定的图案,

7、即只有边长 d = 2k, k = 0, 1, ., log2S的图案, 对于在 2k d 2(k + 1)的边长 d, mip-map 通过线性插值第 k 层的纹理和第 k + 1 层的纹理得到2.2 MIP-MAP 出现的问题在 mipmapping 中,由于采用了不同分辨率的纹理,在这些不同分辨率的纹理交界的地方,我们就有可能看见一个明显的边界,这显然是不符合实际情况的。另外,在场景中移动的时候,当显示的物体由一个分辨率的纹理切换到另一个分辨率的纹理的时候,我们就会看见纹理突然发生了变化。 使用三线性过滤,几乎看不出界限的存在了 纹理突然发生了变化3.三线性过滤3.1 三线性过滤原理三线

8、性过滤技术主要是解决双线性过滤与 Mip Mapping 相配合使用时所出现的不同纹理层接缝的突发变化失真问题。三线性过滤的原理同双线性过滤一样,只不过三线性过滤的采集范围更大:它主要是在双线性过滤的基础之上增加了 4 个的纹理元素采样参考,也就是三线性过滤必须使用两次双线性过滤,即必须计算 2X4=8 个像素的值 3。三线性过滤可以比双线性过滤更有效地解决不同 LOD 细节等级纹理过渡时出现的组合交叉重叠现象。从上图可以以看到,在使用三线性过滤后,虽然接缝现象不见了,但存在有过渡模糊的现象3.2 三线性过滤的问题当物体消失的方向(透视方向)和我们的视角有一定夹角时,三线性过滤仍然存在失真现象

9、。为什么会出现过渡模糊的现象呢?这是因为这条路相对于观察者来说,是相当“扁平”的,所以一个像素在贴图上的图元像素会变得很扁。由于形状的不规则,显示芯片在选择不同分辨率的 Mip Mapping 时会选较低分辨率的 Mip Mapping,这样就会造成在某个方向下分辨率是适当的,但是在另一个方向则会过渡模糊。我们可以强迫显示芯片使用较高分辨率的贴图来解决这个问题。不过,这个方法只能用在方向是固定的情形,如果视角常常会转动(Z 轴旋转表面),那它可能反而会变得更为模糊。当然,对于一般视角变化不大的情形,如一般的赛车游戏,效果还是不错的 4。不过,对于像是第一人称射击、飞行仿真等视角变化较大的游戏来

10、说,这个方法就不见得这么有用了。针对这个问题,人们又推出了各向异性过滤技术。4. 各向异性过滤各向异性过滤主要作用通过增加更多的贴图模型来消除 Z 轴旋转表面的锯齿状线条、而达到更好的画面效果。它融合了双线性过滤和三线性过滤的一些特点。但从各向异性过滤又不同于传统的双线性和三线过滤:后两者都是各向同性的过滤,各方向上矢量值是一致的,在渲染时各个图元像素的尺寸、形状都是固定的;各向异性过滤正好相反,它主要处理矢量方向上值不一致的数据,在渲染时使用尺寸可变的图元像素。从上图可以以看到,在使用三线性过滤后,虽然接缝现象不见了,但存在有过渡模糊的现象 启用各向异性过滤后可以看到几乎所有的失真包括过渡模

11、糊的现象,都已经消失了不过在显卡实际工作中,上面几种过滤模式是相辅相承的 5。各向异性过滤一般都配合双线性过滤或三线性过滤来运行的。不过,它的缺点也是很明显的:对每个贴图来说,使用三线性过滤的情形下,最多会需要读取 128 个像素。这会占用很多显存的带宽,因此会造成性能降低。不过,这个问题在今天已经不再是问题了目前主流的显示芯片在设计时就考虑了对各项异性过滤的硬件支持并提供了相当高采样率如 Radeon9500、Radeon9700。参考文献 :1 杜颖,吴保国,武玉国 全球虚拟地形环境中mip-map研究J 测绘科学技术学报 第5卷,第23期 2006.102 孙芳,戴卿,周太平 Mipmap应用于纹理绘制的新算法及实现J 应用科技 第35卷 ,第4期 2006.93汤彬基于OpenGL的纹理映射研究J实验室研究 与探索,2006,25(5):576-5794 付恺,李春霞,杨克俭,李波,等Bump Mapping原理及在OpenGL下的实现J交通与计算机,2004(2):54-575 郭立,杨毅 基于纹理贴图及高斯滤波的纹理反走样方法J 第34卷,第5期 2008.3

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育教学资料库 > 精品笔记

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。