(精品)纹理贴图.ppt

上传人:hyn****60 文档编号:70923069 上传时间:2023-01-29 格式:PPT 页数:135 大小:7.36MB
返回 下载 相关 举报
(精品)纹理贴图.ppt_第1页
第1页 / 共135页
(精品)纹理贴图.ppt_第2页
第2页 / 共135页
点击查看更多>>
资源描述

《(精品)纹理贴图.ppt》由会员分享,可在线阅读,更多相关《(精品)纹理贴图.ppt(135页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、Chapter 5.Texturing纹理贴图纹理贴图金小刚金小刚 Email:http:/ it takes is for the rendered image to look right”Jim Blinn纹理贴图是一个用图像、函数或其它数据源来改纹理贴图是一个用图像、函数或其它数据源来改纹理贴图是一个用图像、函数或其它数据源来改纹理贴图是一个用图像、函数或其它数据源来改变表面在每一处的外观的过程。变表面在每一处的外观的过程。变表面在每一处的外观的过程。变表面在每一处的外观的过程。例如,我们不必用精确的几何去表现一块砖墙,例如,我们不必用精确的几何去表现一块砖墙,例如,我们不必用精确的几何

2、去表现一块砖墙,例如,我们不必用精确的几何去表现一块砖墙,而只需把一幅砖墙的图像贴到一个多边形上。而只需把一幅砖墙的图像贴到一个多边形上。而只需把一幅砖墙的图像贴到一个多边形上。而只需把一幅砖墙的图像贴到一个多边形上。除非观察者非常靠近墙,否则我们并不会觉得缺除非观察者非常靠近墙,否则我们并不会觉得缺除非观察者非常靠近墙,否则我们并不会觉得缺除非观察者非常靠近墙,否则我们并不会觉得缺少几何细节(例如发现砖头和泥浆在同一表面上)。少几何细节(例如发现砖头和泥浆在同一表面上)。少几何细节(例如发现砖头和泥浆在同一表面上)。少几何细节(例如发现砖头和泥浆在同一表面上)。既节省了大量的造型工作量,也节

3、省了内存空间,既节省了大量的造型工作量,也节省了内存空间,既节省了大量的造型工作量,也节省了内存空间,既节省了大量的造型工作量,也节省了内存空间,加快了绘制速度。加快了绘制速度。加快了绘制速度。加快了绘制速度。并非由于缺少几何细节的缺陷并非由于缺少几何细节的缺陷但是,贴了纹理的砖墙还会出现并非由于缺少几但是,贴了纹理的砖墙还会出现并非由于缺少几但是,贴了纹理的砖墙还会出现并非由于缺少几但是,贴了纹理的砖墙还会出现并非由于缺少几何细节而出现的不真实的缺陷。何细节而出现的不真实的缺陷。何细节而出现的不真实的缺陷。何细节而出现的不真实的缺陷。但是:砖是发亮的但是:砖是发亮的但是:砖是发亮的但是:砖是

4、发亮的(shiny),(shiny),但是泥浆不是。但我们但是泥浆不是。但我们但是泥浆不是。但我们但是泥浆不是。但我们会发现会发现会发现会发现砖和泥浆同样发亮砖和泥浆同样发亮砖和泥浆同样发亮砖和泥浆同样发亮。为了生成更真实的效。为了生成更真实的效。为了生成更真实的效。为了生成更真实的效果,我们还需要一张果,我们还需要一张果,我们还需要一张果,我们还需要一张镜面高光纹理贴图镜面高光纹理贴图镜面高光纹理贴图镜面高光纹理贴图。但是:砖不是平的,其表面通常是粗糙的。我们但是:砖不是平的,其表面通常是粗糙的。我们但是:砖不是平的,其表面通常是粗糙的。我们但是:砖不是平的,其表面通常是粗糙的。我们还需要还

5、需要还需要还需要凹凸纹理凹凸纹理凹凸纹理凹凸纹理(Bump mappingBump mapping)广义纹理贴图广义纹理贴图(Generalized Texturing)纹理贴图可看成是一种有效的改变物体表面属性纹理贴图可看成是一种有效的改变物体表面属性纹理贴图可看成是一种有效的改变物体表面属性纹理贴图可看成是一种有效的改变物体表面属性的一种方法。颜色、高光、凹凸、反射、透明度的一种方法。颜色、高光、凹凸、反射、透明度的一种方法。颜色、高光、凹凸、反射、透明度的一种方法。颜色、高光、凹凸、反射、透明度等等都可采用纹理贴图。等等都可采用纹理贴图。等等都可采用纹理贴图。等等都可采用纹理贴图。从贴图

6、图像中取出相应的值代入光亮度计算方程。从贴图图像中取出相应的值代入光亮度计算方程。从贴图图像中取出相应的值代入光亮度计算方程。从贴图图像中取出相应的值代入光亮度计算方程。计算物体计算物体空间位置空间位置用投影函用投影函数计算数计算(u,v)用对应函用对应函数找到纹素数找到纹素应用应用值值变换函数变换函数改变方程或改变方程或Fragment值值单个纹理的广义贴图流水线。单个纹理的广义贴图流水线。单个纹理的广义贴图流水线。单个纹理的广义贴图流水线。采用该复杂流水线的原因:采用该复杂流水线的原因:采用该复杂流水线的原因:采用该复杂流水线的原因:每一步都可给用户提供有用的控制每一步都可给用户提供有用的

7、控制每一步都可给用户提供有用的控制每一步都可给用户提供有用的控制砖墙纹理贴图的流水线砖墙纹理贴图的流水线投影函数投影函数(Projection function)投影函数把三维空间点转化为纹理坐标。投影函数把三维空间点转化为纹理坐标。常用的投影函数:常用的投影函数:Spherical,Cylindrical,Planar Projections,参数曲面的参数曲面的(u,v)映射映射其它:如根据表面法向来确定其它:如根据表面法向来确定6个平面投影个平面投影方向方向不同的纹理投影不同的纹理投影sphericalcylindricalplanar(u,v)应用应用应用应用应用应用不同的纹理投影可以

8、应用于一个物体不同的纹理投影可以应用于一个物体即时即时(on the fly)投影投影在实时绘制中,投影函数常常在造型阶段应用,在实时绘制中,投影函数常常在造型阶段应用,在实时绘制中,投影函数常常在造型阶段应用,在实时绘制中,投影函数常常在造型阶段应用,然后把然后把然后把然后把纹理坐标记录在顶点上纹理坐标记录在顶点上纹理坐标记录在顶点上纹理坐标记录在顶点上。也可即使计算:如也可即使计算:如也可即使计算:如也可即使计算:如OpenGLOpenGL的的的的glTexGenglTexGen函数可提函数可提函数可提函数可提供不同的投影函数,然后让图形加速卡即时计算供不同的投影函数,然后让图形加速卡即时

9、计算供不同的投影函数,然后让图形加速卡即时计算供不同的投影函数,然后让图形加速卡即时计算投影。投影。投影。投影。On the flyOn the fly投影的优点:投影的优点:投影的优点:投影的优点:纹理坐标不需要送到图形纹理坐标不需要送到图形纹理坐标不需要送到图形纹理坐标不需要送到图形卡,节约传输带宽卡,节约传输带宽卡,节约传输带宽卡,节约传输带宽。纹理投影时会带来畸变,艺术家经常通过人工交纹理投影时会带来畸变,艺术家经常通过人工交纹理投影时会带来畸变,艺术家经常通过人工交纹理投影时会带来畸变,艺术家经常通过人工交互方法把模型分解成接近平面的碎片。互方法把模型分解成接近平面的碎片。互方法把模

10、型分解成接近平面的碎片。互方法把模型分解成接近平面的碎片。多个小纹理拼成的大纹多个小纹理拼成的大纹理理(雕塑模型雕塑模型)多边形网格模型在纹理多边形网格模型在纹理空间的展开空间的展开纹理坐标的形式纹理坐标的形式纹理坐标有时表示成三个坐标纹理坐标有时表示成三个坐标纹理坐标有时表示成三个坐标纹理坐标有时表示成三个坐标(u u,v v,w w)的形式,其的形式,其的形式,其的形式,其中中中中w w为投影方向的深度。如医学图像数据。为投影方向的深度。如医学图像数据。为投影方向的深度。如医学图像数据。为投影方向的深度。如医学图像数据。有些系统把纹理坐标表示成四个坐标有些系统把纹理坐标表示成四个坐标有些系

11、统把纹理坐标表示成四个坐标有些系统把纹理坐标表示成四个坐标(s s,t t,r r,q q)的的的的形式,其中形式,其中形式,其中形式,其中q q为齐次坐标,可用于聚光灯效果。为齐次坐标,可用于聚光灯效果。为齐次坐标,可用于聚光灯效果。为齐次坐标,可用于聚光灯效果。每个纹理映射可以有自己的纹理坐标每个纹理映射可以有自己的纹理坐标每个纹理映射可以有自己的纹理坐标每个纹理映射可以有自己的纹理坐标 (MutiMuti-texturing)texturing)对应函数对应函数(Corresponder Function)对应函数把参数空间的值转化为纹理空间的位置。对应函数把参数空间的值转化为纹理空间的

12、位置。对应函数把参数空间的值转化为纹理空间的位置。对应函数把参数空间的值转化为纹理空间的位置。第一种对应函数第一种对应函数第一种对应函数第一种对应函数:用用用用APIAPI选择一部分纹理(子纹理)选择一部分纹理(子纹理)选择一部分纹理(子纹理)选择一部分纹理(子纹理)进行纹理映射。进行纹理映射。进行纹理映射。进行纹理映射。另一种对应函数:用矩阵变换。由于另一种对应函数:用矩阵变换。由于另一种对应函数:用矩阵变换。由于另一种对应函数:用矩阵变换。由于OpenGLOpenGL支支支支持持持持4X44X4矩阵操作,任何矩阵操作,任何矩阵操作,任何矩阵操作,任何APIAPI的应用层都可采用这类的应用层

13、都可采用这类的应用层都可采用这类的应用层都可采用这类变换,如平移、旋转、比例变换、错切等变换,如平移、旋转、比例变换、错切等变换,如平移、旋转、比例变换、错切等变换,如平移、旋转、比例变换、错切等超出超出0,1)纹理空间怎么办?纹理空间怎么办?对应函数还控制纹理空间超出对应函数还控制纹理空间超出对应函数还控制纹理空间超出对应函数还控制纹理空间超出0,1)0,1)时的处理方式时的处理方式时的处理方式时的处理方式OpenGLOpenGL中这类对应函数称为中这类对应函数称为中这类对应函数称为中这类对应函数称为“wrapping mode”wrapping mode”Direct3DDirect3D中

14、这类对应函数称为中这类对应函数称为中这类对应函数称为中这类对应函数称为“texture texture addressing mode”addressing mode”处理上述问题的常用对应函数处理上述问题的常用对应函数wrapwrap(DirecXDirecX),),repeat repeat(OpenGL),or(OpenGL),or tiletile:纹理图像在表面纹理图像在表面纹理图像在表面纹理图像在表面重复。例子:地上的大理石贴图重复。例子:地上的大理石贴图重复。例子:地上的大理石贴图重复。例子:地上的大理石贴图mirrormirror:纹理图像在表面重复纹理图像在表面重复纹理图像在

15、表面重复纹理图像在表面重复,但每隔一幅进行翻转但每隔一幅进行翻转但每隔一幅进行翻转但每隔一幅进行翻转(flipped)(flipped)。这样在纹理的边界处,纹理可以保持连续。这样在纹理的边界处,纹理可以保持连续。这样在纹理的边界处,纹理可以保持连续。这样在纹理的边界处,纹理可以保持连续。clampclamp(DirectX)or (DirectX)or clamp to edgeclamp to edge(OpenGL):(OpenGL):把把把把0,1)0,1)范围范围范围范围之外的进行截断。截断到之外的进行截断。截断到之外的进行截断。截断到之外的进行截断。截断到0,1)0,1)内的半个纹

16、素。内的半个纹素。内的半个纹素。内的半个纹素。borderborder(DirectX)or (DirectX)or clamp to borderclamp to border(OpenGL):(OpenGL):参数范围参数范围参数范围参数范围在在在在0,1)0,1)之外的用单独定义的边界颜色或把纹理的边作为边之外的用单独定义的边界颜色或把纹理的边作为边之外的用单独定义的边界颜色或把纹理的边作为边之外的用单独定义的边界颜色或把纹理的边作为边界。用于在表面上印花样,地形绘制中相邻纹理的缝合。界。用于在表面上印花样,地形绘制中相邻纹理的缝合。界。用于在表面上印花样,地形绘制中相邻纹理的缝合。界。

17、用于在表面上印花样,地形绘制中相邻纹理的缝合。截断到截断到截断到截断到0,1)0,1)外的半个纹素。外的半个纹素。外的半个纹素。外的半个纹素。例子例子 repeat mirror clamp border实时绘制中隐含的对应函数实时绘制中隐含的对应函数根据纹理图像的大小,隐含的对应函数把根据纹理图像的大小,隐含的对应函数把根据纹理图像的大小,隐含的对应函数把根据纹理图像的大小,隐含的对应函数把(u u,v v)映映映映射到纹理图像的纹素(射到纹理图像的纹素(射到纹理图像的纹素(射到纹理图像的纹素(texeltexel)位置。)位置。)位置。)位置。采用采用采用采用(u u,v v)的好处在于,

18、对于不同分辨率的纹理图的好处在于,对于不同分辨率的纹理图的好处在于,对于不同分辨率的纹理图的好处在于,对于不同分辨率的纹理图像,其存贮在顶点处的像,其存贮在顶点处的像,其存贮在顶点处的像,其存贮在顶点处的(u u,v v)值是相同的。即使改值是相同的。即使改值是相同的。即使改值是相同的。即使改变纹理图像的大小,其变纹理图像的大小,其变纹理图像的大小,其变纹理图像的大小,其(u u,v v)值不需要改变。值不需要改变。值不需要改变。值不需要改变。三维纹理三维纹理三维纹理的优点是可以避免二维纹理中可能出现三维纹理的优点是可以避免二维纹理中可能出现三维纹理的优点是可以避免二维纹理中可能出现三维纹理的

19、优点是可以避免二维纹理中可能出现的畸变和接缝问题。如木纹、大理石纹理等。的畸变和接缝问题。如木纹、大理石纹理等。的畸变和接缝问题。如木纹、大理石纹理等。的畸变和接缝问题。如木纹、大理石纹理等。三维纹理的合成方法:噪声函数。由于计算噪声三维纹理的合成方法:噪声函数。由于计算噪声三维纹理的合成方法:噪声函数。由于计算噪声三维纹理的合成方法:噪声函数。由于计算噪声函数的代价,通常预先算好空间函数的代价,通常预先算好空间函数的代价,通常预先算好空间函数的代价,通常预先算好空间LatticeLattice点的值,点的值,点的值,点的值,其它地方进行插值。其它地方进行插值。其它地方进行插值。其它地方进行插

20、值。实时三维过程纹理例子实时三维过程纹理例子Combine Function or Texture Blending Operations 大部分实时系统允许用户选择纹理和表面粘合方大部分实时系统允许用户选择纹理和表面粘合方大部分实时系统允许用户选择纹理和表面粘合方大部分实时系统允许用户选择纹理和表面粘合方式,这些方法称为式,这些方法称为式,这些方法称为式,这些方法称为Combine Function Combine Function 或或或或 Texture Texture Blending OperationsBlending Operations:ReplaceReplace:把原来表面

21、的颜色替换为纹理的颜色把原来表面的颜色替换为纹理的颜色把原来表面的颜色替换为纹理的颜色把原来表面的颜色替换为纹理的颜色Decal(Decal(印花印花印花印花):与替换类似,但是若纹理中包含:与替换类似,但是若纹理中包含:与替换类似,但是若纹理中包含:与替换类似,但是若纹理中包含AlphaAlpha值,则用它与表面的颜色进行混合。值,则用它与表面的颜色进行混合。值,则用它与表面的颜色进行混合。值,则用它与表面的颜色进行混合。Modulate(Modulate(调节调节调节调节):把表面的颜色与纹理颜色相乘:把表面的颜色与纹理颜色相乘:把表面的颜色与纹理颜色相乘:把表面的颜色与纹理颜色相乘 Im

22、age Texturing在硬件图形加速卡中,纹理图像的大小经常为在硬件图形加速卡中,纹理图像的大小经常为在硬件图形加速卡中,纹理图像的大小经常为在硬件图形加速卡中,纹理图像的大小经常为2 2m m 2 2n n(或者或者或者或者2 2m m 2 2m m)的纹素,其中的纹素,其中的纹素,其中的纹素,其中m m和和和和n n为非负整数。为非负整数。为非负整数。为非负整数。不同的图形卡有不同的纹理大小上限。不同的图形卡有不同的纹理大小上限。不同的图形卡有不同的纹理大小上限。不同的图形卡有不同的纹理大小上限。若投影得到的象素数目比原始纹理大,则需要把若投影得到的象素数目比原始纹理大,则需要把若投影

23、得到的象素数目比原始纹理大,则需要把若投影得到的象素数目比原始纹理大,则需要把纹理图像放大纹理图像放大纹理图像放大纹理图像放大(magnificationmagnification);若投影得到的象素数目比原始纹理小,则需要把若投影得到的象素数目比原始纹理小,则需要把若投影得到的象素数目比原始纹理小,则需要把若投影得到的象素数目比原始纹理小,则需要把纹理图像缩小纹理图像缩小纹理图像缩小纹理图像缩小(minificationminification);纹理放大纹理放大一幅一幅326464的纹理应的纹理应的纹理应的纹理应用到一矩形,非常近用到一矩形,非常近用到一矩形,非常近用到一矩形,非常近看。看

24、。看。看。左图采用左图采用左图采用左图采用最近领域滤最近领域滤最近领域滤最近领域滤波波波波,即对每个象素选,即对每个象素选,即对每个象素选,即对每个象素选择最近的纹素。择最近的纹素。择最近的纹素。择最近的纹素。右图采用最近四个纹右图采用最近四个纹右图采用最近四个纹右图采用最近四个纹素的素的素的素的双线性插值双线性插值双线性插值双线性插值块状效果明块状效果明显,质量差显,质量差锯齿状消失,锯齿状消失,质量好质量好双线性插值双线性插值(Bi-lnear Interpolation)纹理缩小纹理缩小当纹理图像缩小时,多个纹素可能覆盖一个象素当纹理图像缩小时,多个纹素可能覆盖一个象素当纹理图像缩小时,

25、多个纹素可能覆盖一个象素当纹理图像缩小时,多个纹素可能覆盖一个象素单元。为了得到每个象素正确的颜色,应该综合单元。为了得到每个象素正确的颜色,应该综合单元。为了得到每个象素正确的颜色,应该综合单元。为了得到每个象素正确的颜色,应该综合考虑影响该象素的那些纹素。考虑影响该象素的那些纹素。考虑影响该象素的那些纹素。考虑影响该象素的那些纹素。棋盘格纹理多边形通过一行象素,显示多个纹素可影响单个象素棋盘格纹理多边形通过一行象素,显示多个纹素可影响单个象素棋盘格纹理多边形通过一行象素,显示多个纹素可影响单个象素棋盘格纹理多边形通过一行象素,显示多个纹素可影响单个象素1.1.点采样点采样点采样点采样(Ne

26、arest neighbor)(Nearest neighbor)2.2.MipmappingMipmapping3.3.求和面积表求和面积表求和面积表求和面积表(summed area table)(summed area table)实时系统中的解决方法实时系统中的解决方法最近邻域法最近邻域法最近邻域法最近邻域法:选择在象素中心可见的纹素。但:选择在象素中心可见的纹素。但:选择在象素中心可见的纹素。但:选择在象素中心可见的纹素。但会会会会引起严重的走样现象引起严重的走样现象引起严重的走样现象引起严重的走样现象,见上图。当这类表面相对,见上图。当这类表面相对,见上图。当这类表面相对,见上图。

27、当这类表面相对视点移动时,走样现象更加明显,称为时间走样视点移动时,走样现象更加明显,称为时间走样视点移动时,走样现象更加明显,称为时间走样视点移动时,走样现象更加明显,称为时间走样 (temporal aliasing)(temporal aliasing)。双线性插值双线性插值双线性插值双线性插值:效果仅比最近邻域法稍好,:效果仅比最近邻域法稍好,:效果仅比最近邻域法稍好,:效果仅比最近邻域法稍好,也会引也会引也会引也会引起较严重的走样现象。起较严重的走样现象。起较严重的走样现象。起较严重的走样现象。纹理反走样算法的基本思想纹理反走样算法的基本思想纹理反走样算法的基本思想纹理反走样算法的基

28、本思想:对纹理进行预处理,:对纹理进行预处理,:对纹理进行预处理,:对纹理进行预处理,建立多个纹素覆盖单个象素的快速逼近计算的数建立多个纹素覆盖单个象素的快速逼近计算的数建立多个纹素覆盖单个象素的快速逼近计算的数建立多个纹素覆盖单个象素的快速逼近计算的数据结构。这样,据结构。这样,据结构。这样,据结构。这样,一个采样点可以检索出一个或多一个采样点可以检索出一个或多一个采样点可以检索出一个或多一个采样点可以检索出一个或多个纹素的效果个纹素的效果个纹素的效果个纹素的效果。在实时绘制应用中,这些算法在在实时绘制应用中,这些算法在在实时绘制应用中,这些算法在在实时绘制应用中,这些算法在执行时具有固定的

29、时间和资源。执行时具有固定的时间和资源。执行时具有固定的时间和资源。执行时具有固定的时间和资源。MipmappingMipmappingMipmapping是纹理反走样最受欢迎的方法。目是纹理反走样最受欢迎的方法。目是纹理反走样最受欢迎的方法。目是纹理反走样最受欢迎的方法。目前,很多图形加速卡支持该功能。前,很多图形加速卡支持该功能。前,很多图形加速卡支持该功能。前,很多图形加速卡支持该功能。MipMip:表示表示表示表示mmultumultum i in n p parvoarvo,拉丁语的意思是拉丁语的意思是拉丁语的意思是拉丁语的意思是“很很很很多东西在一个小的地方多东西在一个小的地方多东

30、西在一个小的地方多东西在一个小的地方”。思想:在绘制之前,把原始纹理图像进行重复滤思想:在绘制之前,把原始纹理图像进行重复滤思想:在绘制之前,把原始纹理图像进行重复滤思想:在绘制之前,把原始纹理图像进行重复滤波,生成多幅小纹理图像。波,生成多幅小纹理图像。波,生成多幅小纹理图像。波,生成多幅小纹理图像。金金字字塔塔结结构构Level 0Level 1Level 211/41/16downsample直到子纹理的任一维为一个纹素为止直到子纹理的任一维为一个纹素为止d轴轴构造高质量构造高质量Mipmap的两个重要元素的两个重要元素好的滤波好的滤波好的滤波好的滤波。常用方法为把。常用方法为把。常用方

31、法为把。常用方法为把2 222的象素的象素的象素的象素进进进进行平均得到行平均得到行平均得到行平均得到MipMip值值值值。但因采用的是。但因采用的是。但因采用的是。但因采用的是BoxBox滤滤滤滤波,可能是最差的波,可能是最差的波,可能是最差的波,可能是最差的滤滤滤滤波器,会波器,会波器,会波器,会导导导导致致致致较较较较差的差的差的差的结结结结果(走果(走果(走果(走样样样样)。)。)。)。较较较较好的好的好的好的滤滤滤滤波波波波器:器:器:器:Gaussian,Gaussian,LanczosLanczos,Kaiser,Kaiser。GammaGamma校正校正校正校正:如果忽视:如果

32、忽视:如果忽视:如果忽视GammaGamma校正,会导致得校正,会导致得校正,会导致得校正,会导致得到的到的到的到的MipmapMipmap纹理图像的亮度与原始图像不同。纹理图像的亮度与原始图像不同。纹理图像的亮度与原始图像不同。纹理图像的亮度与原始图像不同。如何检索如何检索Mipmap结构结构一个屏幕象素覆盖了纹理的一块区域。为了检索,我一个屏幕象素覆盖了纹理的一块区域。为了检索,我们需要找出大致多少纹素影响该象素。们需要找出大致多少纹素影响该象素。主要有两种方法计算主要有两种方法计算主要有两种方法计算主要有两种方法计算d d (OpenGL(OpenGL中称为中称为中称为中称为,也称也称也

33、称也称为层次细节为层次细节为层次细节为层次细节):1 1。采用由象素单元构成四边形的长边。采用由象素单元构成四边形的长边。采用由象素单元构成四边形的长边。采用由象素单元构成四边形的长边 2 2。采用四个偏导。采用四个偏导。采用四个偏导。采用四个偏导 中中中中绝对值的最大值进行度量。每个偏导表示纹理坐绝对值的最大值进行度量。每个偏导表示纹理坐绝对值的最大值进行度量。每个偏导表示纹理坐绝对值的最大值进行度量。每个偏导表示纹理坐标相对于屏幕坐标变化量的度量标相对于屏幕坐标变化量的度量标相对于屏幕坐标变化量的度量标相对于屏幕坐标变化量的度量 由于由于由于由于MipmappingMipmapping是硬

34、件支持的一个标准项,具是硬件支持的一个标准项,具是硬件支持的一个标准项,具是硬件支持的一个标准项,具体计算方法可参考相关参考书。体计算方法可参考相关参考书。体计算方法可参考相关参考书。体计算方法可参考相关参考书。计算坐标计算坐标计算坐标计算坐标d d的目的是的目的是的目的是的目的是为了决定在为了决定在为了决定在为了决定在mipmapmipmap金字塔轴金字塔轴金字塔轴金字塔轴采样的位置采样的位置采样的位置采样的位置。通过三元组。通过三元组。通过三元组。通过三元组(u u,v v,d d)来检索来检索来检索来检索mipmapmipmapd d的意义类似于纹理层。的意义类似于纹理层。的意义类似于纹

35、理层。的意义类似于纹理层。d d不是一个整数,其分数不是一个整数,其分数不是一个整数,其分数不是一个整数,其分数部分表示对应象素到纹理层部分表示对应象素到纹理层部分表示对应象素到纹理层部分表示对应象素到纹理层 的距离。我们对纹的距离。我们对纹的距离。我们对纹的距离。我们对纹理层理层理层理层 和和和和 进行采样。进行采样。进行采样。进行采样。先用先用先用先用(u u,v v)对纹理层对纹理层对纹理层对纹理层 和和和和 进行双线性插值采进行双线性插值采进行双线性插值采进行双线性插值采样,样,样,样,然后再用然后再用然后再用然后再用d d 对这两个采样值进行线性对这两个采样值进行线性对这两个采样值进

36、行线性对这两个采样值进行线性插值。插值。插值。插值。整个过程称为三线性插值整个过程称为三线性插值整个过程称为三线性插值整个过程称为三线性插值。Mipmap检索中的控制参数检索中的控制参数在在在在d d坐标上的一个控制参数为坐标上的一个控制参数为坐标上的一个控制参数为坐标上的一个控制参数为Level of Detail Bias Level of Detail Bias(LOD Bias)(LOD Bias)。该偏移量加到。该偏移量加到。该偏移量加到。该偏移量加到d d值上,值上,值上,值上,用来影响纹理用来影响纹理用来影响纹理用来影响纹理的精锐度的精锐度的精锐度的精锐度(sharpness)(

37、sharpness)。如果我们把如果我们把如果我们把如果我们把d d坐标沿着金字塔轴往上移,则纹理看坐标沿着金字塔轴往上移,则纹理看坐标沿着金字塔轴往上移,则纹理看坐标沿着金字塔轴往上移,则纹理看起来更模糊一些。根据纹理的类型和应用的需要,起来更模糊一些。根据纹理的类型和应用的需要,起来更模糊一些。根据纹理的类型和应用的需要,起来更模糊一些。根据纹理的类型和应用的需要,我们可以选择不同的偏移量。我们可以选择不同的偏移量。我们可以选择不同的偏移量。我们可以选择不同的偏移量。当图像看起来较模糊时,可选择负的偏移量;当当图像看起来较模糊时,可选择负的偏移量;当当图像看起来较模糊时,可选择负的偏移量;

38、当当图像看起来较模糊时,可选择负的偏移量;当图像走样较严重时,可选择正的偏移量。图像走样较严重时,可选择正的偏移量。图像走样较严重时,可选择正的偏移量。图像走样较严重时,可选择正的偏移量。通常,当贴通常,当贴通常,当贴通常,当贴了纹理的表面在移动时,应选择较大的偏移量以避免时间走样。了纹理的表面在移动时,应选择较大的偏移量以避免时间走样。了纹理的表面在移动时,应选择较大的偏移量以避免时间走样。了纹理的表面在移动时,应选择较大的偏移量以避免时间走样。Mipmap的缺陷的缺陷过于模糊现象过于模糊现象过于模糊现象过于模糊现象(overblurringoverblurring):):假设象素单元在假设

39、象素单元在假设象素单元在假设象素单元在v v 方向覆盖方向覆盖方向覆盖方向覆盖很多纹素,但很多纹素,但很多纹素,但很多纹素,但u u方向覆盖的纹素很少方向覆盖的纹素很少方向覆盖的纹素很少方向覆盖的纹素很少(这在我们沿着边看这在我们沿着边看这在我们沿着边看这在我们沿着边看一个贴了纹理的表面时经常发生一个贴了纹理的表面时经常发生一个贴了纹理的表面时经常发生一个贴了纹理的表面时经常发生)。甚至,应该是一个方。甚至,应该是一个方。甚至,应该是一个方。甚至,应该是一个方向放大,另一个方向缩小。但在向放大,另一个方向缩小。但在向放大,另一个方向缩小。但在向放大,另一个方向缩小。但在MipmapMipmap

40、中得到的是中得到的是中得到的是中得到的是正方正方正方正方形纹理区域形纹理区域形纹理区域形纹理区域,而,而,而,而不可能得到长方形不可能得到长方形不可能得到长方形不可能得到长方形纹理区域,而我们选纹理区域,而我们选纹理区域,而我们选纹理区域,而我们选择的是最长边,故结果看起来过于模糊。择的是最长边,故结果看起来过于模糊。择的是最长边,故结果看起来过于模糊。择的是最长边,故结果看起来过于模糊。Ripmapping克服过于模糊现象的一个方法是克服过于模糊现象的一个方法是克服过于模糊现象的一个方法是克服过于模糊现象的一个方法是Ripmapping(HPRipmapping(HP公司用的词公司用的词公司

41、用的词公司用的词)。其原理是把。其原理是把。其原理是把。其原理是把mipmapmipmap的思想推广,的思想推广,的思想推广,的思想推广,允许长方形区域允许长方形区域允许长方形区域允许长方形区域进行下采样。进行下采样。进行下采样。进行下采样。采用采用采用采用四个坐标四个坐标四个坐标四个坐标检索纹素:检索纹素:检索纹素:检索纹素:(u u,v v)用来检索子纹理,用来检索子纹理,用来检索子纹理,用来检索子纹理,其它两个用来检索其它两个用来检索其它两个用来检索其它两个用来检索RipmapRipmap数组。数组。数组。数组。需要用四个子纹理进行插值。需要用四个子纹理进行插值。需要用四个子纹理进行插值

42、。需要用四个子纹理进行插值。Ripmap结构结构从左下角从左下角到右上角到右上角的对角线的对角线子纹理构子纹理构成成mipmap子纹理子纹理求和面积表求和面积表(Summed-Area Table)首先建立一个与纹理大小相同的数组,但其包含首先建立一个与纹理大小相同的数组,但其包含首先建立一个与纹理大小相同的数组,但其包含首先建立一个与纹理大小相同的数组,但其包含的颜色的位数精度更高(例如,红、绿、篮分量的颜色的位数精度更高(例如,红、绿、篮分量的颜色的位数精度更高(例如,红、绿、篮分量的颜色的位数精度更高(例如,红、绿、篮分量的位数为的位数为的位数为的位数为16bits16bits或者更高)

43、。或者更高)。或者更高)。或者更高)。在数组的每个位置中,计算并存贮由相应纹素和在数组的每个位置中,计算并存贮由相应纹素和在数组的每个位置中,计算并存贮由相应纹素和在数组的每个位置中,计算并存贮由相应纹素和纹素纹素纹素纹素(0,0)(0,0)构成的矩形区域内的构成的矩形区域内的构成的矩形区域内的构成的矩形区域内的所有纹素的和所有纹素的和所有纹素的和所有纹素的和。在纹理贴图时,象素单元在纹理空间的投影由一在纹理贴图时,象素单元在纹理空间的投影由一在纹理贴图时,象素单元在纹理空间的投影由一在纹理贴图时,象素单元在纹理空间的投影由一矩形构成。通过读取求和面积表的数据来决定该矩形构成。通过读取求和面积

44、表的数据来决定该矩形构成。通过读取求和面积表的数据来决定该矩形构成。通过读取求和面积表的数据来决定该矩形的平均颜色,并把该颜色作为象素单元的纹矩形的平均颜色,并把该颜色作为象素单元的纹矩形的平均颜色,并把该颜色作为象素单元的纹矩形的平均颜色,并把该颜色作为象素单元的纹理颜色。理颜色。理颜色。理颜色。颜色计算颜色计算计算公式解释计算公式解释x x和和和和y y分别为矩形的纹素坐标,分别为矩形的纹素坐标,分别为矩形的纹素坐标,分别为矩形的纹素坐标,s sx x,y y 为相应纹素为相应纹素为相应纹素为相应纹素的求和面积表的值。的求和面积表的值。的求和面积表的值。的求和面积表的值。分子为包围盒内纹素

45、的和分子为包围盒内纹素的和分子为包围盒内纹素的和分子为包围盒内纹素的和,分母为包围盒面积。分母为包围盒面积。分母为包围盒面积。分母为包围盒面积。效果效果靠近地平靠近地平线的直线线的直线变的比变的比Mipmap尖锐尖锐Mipmap求和面积表求和面积表但在对角交叉线的中间仍然模糊但在对角交叉线的中间仍然模糊(同样的问题同样的问题ripmap也存也存在在),这是因为当纹理这是因为当纹理对角对角看时,产生了一个看时,产生了一个大矩形大矩形,很,很多不被象素单元覆盖的纹素也一并被计算进去。多不被象素单元覆盖的纹素也一并被计算进去。讨论讨论RipmapRipmap和求和面积表属于各向异性滤波和求和面积表属

46、于各向异性滤波和求和面积表属于各向异性滤波和求和面积表属于各向异性滤波(anisotropic(anisotropic filtering)filtering)。能够检索非正方形区域的纹素值,对接近水平能够检索非正方形区域的纹素值,对接近水平能够检索非正方形区域的纹素值,对接近水平能够检索非正方形区域的纹素值,对接近水平和垂直的方向最有效。和垂直的方向最有效。和垂直的方向最有效。和垂直的方向最有效。RipmapRipmap用于用于用于用于19901990年代年代年代年代HPHP公司的高端图形加速卡公司的高端图形加速卡公司的高端图形加速卡公司的高端图形加速卡求和面积表还未见硬件实现。求和面积表还

47、未见硬件实现。求和面积表还未见硬件实现。求和面积表还未见硬件实现。RipmapRipmap和求和面积表都和求和面积表都和求和面积表都和求和面积表都比较耗内存比较耗内存比较耗内存比较耗内存。MipmapMipmap的子纹理只的子纹理只的子纹理只的子纹理只需耗原纹理大小的需耗原纹理大小的需耗原纹理大小的需耗原纹理大小的1/31/3,而而而而RipmapRipmap为原纹理大小的为原纹理大小的为原纹理大小的为原纹理大小的3 3倍倍倍倍,求和面积表至少求和面积表至少求和面积表至少求和面积表至少1 1倍倍倍倍(精度越高,所需存贮越大精度越高,所需存贮越大精度越高,所需存贮越大精度越高,所需存贮越大)纹理

48、内存比较昂贵,不能随便浪费。纹理内存比较昂贵,不能随便浪费。纹理内存比较昂贵,不能随便浪费。纹理内存比较昂贵,不能随便浪费。无约束各向异性滤波无约束各向异性滤波(unconstrained anisotropic filtering)(unconstrained anisotropic filtering)对于当前的图形硬件,进一步改进纹理滤波的最常用方对于当前的图形硬件,进一步改进纹理滤波的最常用方对于当前的图形硬件,进一步改进纹理滤波的最常用方对于当前的图形硬件,进一步改进纹理滤波的最常用方法为法为法为法为重用已有的重用已有的重用已有的重用已有的MipmapMipmap硬件硬件硬件硬件。思

49、路:思路:思路:思路:把象素单元在纹理空间投影的四边形采样多次,把象素单元在纹理空间投影的四边形采样多次,把象素单元在纹理空间投影的四边形采样多次,把象素单元在纹理空间投影的四边形采样多次,然后把采样点加权平均然后把采样点加权平均然后把采样点加权平均然后把采样点加权平均。不用单个。不用单个。不用单个。不用单个MipmapMipmap采样去逼近采样去逼近采样去逼近采样去逼近四边形的覆盖,而是用多个正方形去覆盖四边形。四边形的覆盖,而是用多个正方形去覆盖四边形。四边形的覆盖,而是用多个正方形去覆盖四边形。四边形的覆盖,而是用多个正方形去覆盖四边形。四边形的短边用来决定四边形的短边用来决定四边形的短

50、边用来决定四边形的短边用来决定d d(Mipmap(Mipmap中用的是长边中用的是长边中用的是长边中用的是长边),),使得使得使得使得MipmapMipmap采样点中采样点中采样点中采样点中平均的面积变小平均的面积变小平均的面积变小平均的面积变小,从而变得不模糊些。从而变得不模糊些。从而变得不模糊些。从而变得不模糊些。四边形的长边用来创建一条与长边平行并且经过四边形四边形的长边用来创建一条与长边平行并且经过四边形四边形的长边用来创建一条与长边平行并且经过四边形四边形的长边用来创建一条与长边平行并且经过四边形中心的中心的中心的中心的各向异性直线各向异性直线各向异性直线各向异性直线。当各向异性比

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

当前位置:首页 > 生活休闲 > 生活常识

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com