鲍虎军 浙江大学CAD&CG国家重点实验室 纹理映射技术 鲍虎军 浙江大学CAD&CG国家重点实验室 19 / 8 / 2001 昆明
内 容 一、研究背景 二、基本原理 三、纹理映射的构造 四、纹理反走样(unaliasing)技术 五、过程纹理合成 六、优化纹理映射技术 内 容 一、研究背景 二、基本原理 三、纹理映射的构造 四、纹理反走样(unaliasing)技术 五、过程纹理合成 六、优化纹理映射技术 19 / 8 / 2001 昆明
一、研究背景 19 / 8 / 2001 昆明
存在问题: 解决这一问题的途径是纹理映射技术 传统光照明模型仅考虑表面法向的变化,且假设表面反射率为一常数,因而只能生成颜色单一的的光滑景物表面。 景物表面存在丰富的纹理细节, 难以直接构造。人们正是依据这些纹理细节来区别各种具有相同形状的景物。 解决这一问题的途径是纹理映射技术 19 / 8 / 2001 昆明
基本思想: 关键问题: 实际纹理非常复杂,难以解析描述。采用图象来描述表面纹理细节。 IBMR (Image-based Modeling and Rendering) 关键问题: 如何在光照明模型中融入纹理的描述? 如何将纹理绘制在景物表面上? 19 / 8 / 2001 昆明
二、纹理映射的基本原理 表面属性:与光照明模型及表面几何有关的各种 参数,如表面法向、漫/镜面反射率等。 纹理生成过程实质上是将所定义的纹理映射为反映某种三维景物表面的属性,并参与后续的光照明计算。 表面属性:与光照明模型及表面几何有关的各种 参数,如表面法向、漫/镜面反射率等。 19 / 8 / 2001 昆明
Ilocal= kaIa + kd (N•L) +ks (N •H)n 纹理映射的实现: (1) 交互确定纹理属性 Ilocal= kaIa + kd (N•L) +ks (N •H)n I= Ilocal + s Is + t It 参数不再是常数,逐点变化 19 / 8 / 2001 昆明
(2) 建立纹理空间与景物空间及景物空间与屏幕空间之间的映射关系: M: ObjectSpace → TextureSpace T: ScreenSpace → ObjectSpace 19 / 8 / 2001 昆明
景物表面的纹理属性主要有以下几种: (1)表面颜色,即表面的漫反射率; (2)镜面反射分量,即表面的镜面反射率; (3)透明度; (4)表面法向,即挠动表面法向来产生表面 的凹凸纹理; (5)环境的漫反射和镜面反射效果; (6)光源强度和色彩分布。 19 / 8 / 2001 昆明
纹理的分类: 根据纹理定义域的不同,纹理可分为二维 基于纹理的表现形式, 纹理又可分为颜色纹 纹理和三维纹理; 理、几何纹理和过程纹理三大类。 19 / 8 / 2001 昆明
呈现在物体表面上的各种花纹、图案和文字等,如大理石墙面、墙上贴的字画、器皿上的图案等。 颜色纹理 呈现在物体表面上的各种花纹、图案和文字等,如大理石墙面、墙上贴的字画、器皿上的图案等。 几何纹理 基于景物表面微观几何形状的表面纹理,如桔子、树干、岩石等表面呈现的凸凹不平的纹理细节。 过程纹理 表现了各种规则或不规则的动态变化的自然景象,如水波、云、火、烟雾等。 19 / 8 / 2001 昆明
关键问题: 建立映射 减少形变、走样 合成纹理 剔除纹理图象中的光照效果 19 / 8 / 2001 昆明
三、映射的构造 从数学的观点来看,映射M可用下式来描述: (u, v)= F(x, y, z) (u, v)TextureSpace (x, y, z) = F-1(u, v) 典型的参数曲面表示 19 / 8 / 2001 昆明
一般难以解析表达! 若将参数空间和纹理空间等同(两者之间关系由一仿射变换确定),参数曲面的纹理映射函数可简单地定义为其定义表达式的逆。 19 / 8 / 2001 昆明
例子: 高为 h,半径为 r 的圆柱面可用下面的参数形式来表达: x=r cosθ y=r sinθ z=hψ 其中0≤θ≤2π,0≤ψ≤1。 若通过下述线性变换将纹理空间[0,1]×[0,1]与参数空间[0,2π]×[0,1]等同起来: u =θ/ 2π υ=ψ 则由该圆柱面的参数表达式,容易得到从景物空间到纹理空间的纹理映射表达式。 19 / 8 / 2001 昆明
19 / 8 / 2001 昆明
经典算法: Catmull算法(正向映射法) 采用同时递归分割参数曲面和纹理空间的方法。当子曲面片在屏幕上的投影区域与象素尺寸匹配时, 按双线性插值确定象素中心处可见子曲面片上相应点的参数值, 并取对应点处的纹理颜色值作为该象素中心采样点处表面的纹理属性,然后用光照明模型来计算该点处的光亮度值。 19 / 8 / 2001 昆明
特殊情况: 19 / 8 / 2001 昆明
屏幕象素到纹理空间对应区域(近似为四边形)的映射近似表示为一个放射变换。象素中心的纹理坐标即可由四角点坐标得到。 Blinn算法:逆向映射法 屏幕象素到纹理空间对应区域(近似为四边形)的映射近似表示为一个放射变换。象素中心的纹理坐标即可由四角点坐标得到。 19 / 8 / 2001 昆明
两步法纹理映射技术: 解决无参数化曲面的纹理映射技术 基本思想: 多边形网格模型 隐函数曲面模型 将纹理空间到景物空间的映射分解为两个简单映射的复合,从而避免了对景物表面的重新参数化。 19 / 8 / 2001 昆明
(1) 将二维纹理空间映射为一个简单的三维物体表面,如球面、圆柱面等,即建立如下的映射: 引进一个包围景物的中介三维曲面作为中间映射媒介,其基本过程可用下面二个步骤来完成: (1) 将二维纹理空间映射为一个简单的三维物体表面,如球面、圆柱面等,即建立如下的映射: T(u, v)→T′(x′, y′, z′) 这一映射称之为 S 映射。 19 / 8 / 2001 昆明
该映射称之为 O 映射。 (2)将上述三维中介物体表面上的纹理映射到目标景物表面,它可表示为: T′(x′, y′, z′)→O(x, y, z) 该映射称之为 O 映射。 纹理空间到景物空间的纹理映射为 O 映射和 S 映射的复合。 19 / 8 / 2001 昆明
关键问题: 确定恰当的三维中介表面; 建立由该中介表面到景物表面的映射 关系。 任一方向的平面 圆柱面 立方体表面 球面 近似参数曲面 19 / 8 / 2001 昆明
(1)取视线在景物表面可见点(x,y,z)处的反射光线与中介表面的交点(x′,y′,z′)作为(x,y,z)的映射点。 (2)取景物表面在(x,y,z)处的法线与中介表面的交点作为(x,y,z)的映射点。 (3)取景物中心向(x,y,z)发出的射线与中介表面的交点作为(x,y,z)的映射点。 (4)取中介表面在(x′,y′,z′)处的法线与目标景物表面的交点(x,y,z)作为(x′,y′,z′)的映射点。显然,从(x,y,z)到(x′,y′,z′)的方向即中介表面在(x′,y′,z′)点的外法向。 19 / 8 / 2001 昆明
19 / 8 / 2001 昆明
“Shrinkwarp”映射过程 19 / 8 / 2001 昆明
这一技术的雏形是为近似模拟光线跟踪的效果而又不必去跟踪反射光线而设计的。 环境映射技术 这一技术的雏形是为近似模拟光线跟踪的效果而又不必去跟踪反射光线而设计的。 19 / 8 / 2001 昆明
当前象素内可见景物区域的平均纹理属性 19 / 8 / 2001 昆明
立方体环境映照 19 / 8 / 2001 昆明
参数曲面投影技术 19 / 8 / 2001 昆明
参数曲面 柱面 球面 19 / 8 / 2001 昆明
19 / 8 / 2001 昆明
四、纹理的反走样技术 简单的点采样将产生严重的纹理走样 现象。 原因是每个象素均映射为纹理空间上 的一个区域。 取该区域的平均纹理值作为该象素的 对应纹理值。 19 / 8 / 2001 昆明
象素对应区域非常复杂,与纹理映射有关。 关键问题 如何高效计算纹理区域的平均纹理值? 19 / 8 / 2001 昆明
解决方案: 近似区域逼近法: 圆、椭圆、正方形、长方形 优点: 可采用查找表快速计算区域面积 缺点: 有时误差较大 19 / 8 / 2001 昆明
椭圆加权平均滤波算法( P. Heckbert ) P’ = PM PPT=1 P’QP’T=1 采用高斯滤波器 f (r),半径r取为Q的平方根 19 / 8 / 2001 昆明
建立f (r)的查找表,快速计算椭圆内的平均纹理颜色 19 / 8 / 2001 昆明
MipMap算法 或 19 / 8 / 2001 昆明
19 / 8 / 2001 昆明
求和面积表技术 19 / 8 / 2001 昆明
几何纹理映射技术 存在二种方法: 几何扰动法(改变表面几何) 法向扰动法 通过对景物表面各采样点的位置作微小扰动来改变表面的微观几何形状,从而引起景物表面法向的变化。由此导致表面光亮度的突变,产生表面凹凸不平的真实感效果。 存在二种方法: 几何扰动法(改变表面几何) 法向扰动法 19 / 8 / 2001 昆明
在景物表面每一采样点处沿其法向附加一微小增量,从而生成一张新的表面,它可表示为: 设景物表面由下述参数方程来定义: Q=Q(u,v) 在景物表面每一采样点处沿其法向附加一微小增量,从而生成一张新的表面,它可表示为: Q′(u,v)=Q(u,v)+P(u,v) N 其中P(u,v)为用户定义的扰动函数。 19 / 8 / 2001 昆明
扰动后的法向量为: N′=N+D=N+ PuA-PvB 19 / 8 / 2001 昆明
19 / 8 / 2001 昆明
二维纹理映射技术的缺陷 (1)在一般情况下,由纹理平面至景物表面的映射是一种非线性映射,在曲面上曲率变化较大的区域可能发生纹理的非均匀变形,导致不真实的视觉效果。 (2)对具有非平凡拓扑(由多个曲面拼接而成)的景物表面进行二维纹理映射时,很难保证相邻曲面片间纹理的连续性。 19 / 8 / 2001 昆明
解决方案: 三维纹理映射技术 优化纹理映射技术 19 / 8 / 2001 昆明
过程纹理合成 (Procedural Texture Synthesis) 三维纹理映射技术 纹理直接定义于三维空间中 映射变成是一个简单的嵌入映射 关键问题: 如何生成三维纹理? 解决方案: 过程纹理合成 (Procedural Texture Synthesis) 19 / 8 / 2001 昆明
五、过程纹理合成 采用解析过程迭代函数来生成复杂 的纹理 适合于木材、大理石、云彩、火焰、 石块等不规则自然纹理 19 / 8 / 2001 昆明
采用一组共轴圆柱面来定义三维纹理函数, 木纹纹理合成 采用一组共轴圆柱面来定义三维纹理函数, 即把位于相邻圆柱面之间点的纹理函数值交 替地取为“明”和“暗”。 纹理空间内任一点的纹理函数值可根据它到 圆柱轴线所经过的圆柱面个数的奇偶性而 取为“明”或“暗”。 19 / 8 / 2001 昆明
引进了以下三个简单的操作来增加随机性: 扰动:对共轴的圆柱面半径进行扰动,扰动 量可以为正弦函数或其它能描述木纹 与正规圆柱面偏离量的任何函数。 扭曲:在圆柱轴方向加上一小扭曲量。 倾斜:将上述圆柱的轴沿木块的较长方向 倾斜。 19 / 8 / 2001 昆明
19 / 8 / 2001 昆明
采用“分维布朗运动”(fBm)模拟随机 自相似纹理。 分形纹理模型 采用“分维布朗运动”(fBm)模拟随机 自相似纹理。 简化的一维分形迭代函数 fmid = ( f1 + f2 )/2 +roughness×Rand( ) 直接作用于二维网格的每条边上, 即可实现二维分形模型 19 / 8 / 2001 昆明
19 / 8 / 2001 昆明
三维噪声函数 噪声函数应满足以下三个性质: (1)旋转统计不变性。 (2)平移统计不变性。 (3)其频率域上带宽很窄。 在实际应用中,主要用噪声函数来生成其他自然纹理,而不是直接用来绘制噪声纹理。 19 / 8 / 2001 昆明
19 / 8 / 2001 昆明
湍流 (turbulence) 函数 不是流体力学中的精确物理模型,而是一种近似描述湍流现象的经验模型。 由一系列三维噪声函数迭加而成,其一般表达式为: 19 / 8 / 2001 昆明
任取和式的相邻两项,后一项噪声函数的变化 湍流函数的特点: 任取和式的相邻两项,后一项噪声函数的变化 频率总是为前一项变化频率的两倍,其变化幅度 则为前一项的一半,它对湍流函数的贡献亦缩小 了一半。 上述构造方法保证了湍流函数具有一定的自相似 性质。其功率谱服从1/f规律。 湍流函数不能直接用来模拟自然纹理,但它的随 机性和自相似性可较好地描述各种自然纹理的不 规则细节。 19 / 8 / 2001 昆明
采用湍流函数来模拟自然纹理的过程分为两步: (1)选取简单的函数来描述自然纹理的基本结构特征。一般来说,这些函数是连续的,且具有变化较大的一阶导数。 (2)用湍流函数扰动基本函数中的某些参数,从而产生复杂的纹理细节。 19 / 8 / 2001 昆明
Marble(P)=marble-color( sin( x + turbulence( P ) ) ) 例子: 考虑到大理石纹理的周期性形态,可取某一方向的正弦波作彩色滤波,即 Marble( P )=marble-color( sin( x ) ) 其中P表示空间点(x, y, z),marble-color是一彩色滤波函数,它将[-1,1]区间中任一实数值映射为红、绿、蓝颜色空间的颜色值。一般地,它可表达为三条独立的样条曲线。上述函数的基本参数经湍流函数扰动后,得: Marble(P)=marble-color( sin( x + turbulence( P ) ) ) 19 / 8 / 2001 昆明
湍流函数亦可用来表达各种表面颜色属性的不规则性,如凹凸纹理、透明度等。可用来模拟树木、云彩、水波等效果。 19 / 8 / 2001 昆明
b -b h y x 火焰效果模拟 19 / 8 / 2001 昆明
Fourier纹理合成技术 通过将一系列不同频率、相位的正弦(或 采用平面和椭球面簇来描述层状云彩和团 余弦)波迭加起来产生所需的纹理模式。一 般来说,既可以在空间域中合成所需纹理, 亦可在频率域中合成纹理。 采用平面和椭球面簇来描述层状云彩和团 状云彩的基本形状。利用下述纹理函数来定 义云彩的光亮度和透明度变化 19 / 8 / 2001 昆明
19 / 8 / 2001 昆明
与湍流函数的构造相似,其后一项纹理的频率是前一项的2倍,而其振幅则减少了30%。其变化的相位则有效地防止了所生成纹理的单一性,增加了它的随机性。当n=6时,即可生成丰富的纹理细节。 光亮度计算 19 / 8 / 2001 昆明
透明度计算 其中g(x,y,z)为一标量函数,它于椭球在图象平面的投影中心处取值为1,在其投影边界处取值为0,V1、V2分别为投影中心和边界处的透明度。 19 / 8 / 2001 昆明
19 / 8 / 2001 昆明
小振幅水波纹理 19 / 8 / 2001 昆明
结合L系统的过程式树木生长模型 250帧 300帧 350帧 400帧 450帧 500帧 19 / 8 / 2001 昆明
六、优化纹理映射技术 减少纹理变形、扭曲 实现纹理的无缝拼接 剔除纹理图象中的光照信息 19 / 8 / 2001 昆明
多边形网格的参数化 19 / 8 / 2001 昆明
基于保角映射 z = za的参数化: 19 / 8 / 2001 昆明
近似调和映射技术 记D为一开网格,P为平面上的一个多边形, 若已知同胚映射 ,则存在唯一的 调和映射 i k1 k2 j 19 / 8 / 2001 昆明
19 / 8 / 2001 昆明
离散光滑插值参数化技术 19 / 8 / 2001 昆明
19 / 8 / 2001 昆明
Condition 2 can be written as 19 / 8 / 2001 昆明
19 / 8 / 2001 昆明
19 / 8 / 2001 昆明
梯度约束 19 / 8 / 2001 昆明
等参线约束 19 / 8 / 2001 昆明
Trim约束 19 / 8 / 2001 昆明
约束优化纹理映射技术 19 / 8 / 2001 昆明
给定系列约束点,构造离散分片插值函数 f : 非线性优化求解技术 19 / 8 / 2001 昆明
变分插值技术 19 / 8 / 2001 昆明
19 / 8 / 2001 昆明
梯度约束 19 / 8 / 2001 昆明
19 / 8 / 2001 昆明
基于图样的二维纹理合成 过程纹理合成技术虽然可以获得良好的效果,但对每一种新的纹理,都需要调整参数反复测试,非常不便。 自然界中存在大量的纹理,这些纹理往往具有自相似性,即一小块纹理就能反映整体纹理的特点。这就促使人们着手研究基于样本的纹理合成方法:给定一小块纹理,生成大块相似的纹理。 19 / 8 / 2001 昆明
19 / 8 / 2001 昆明
逐点采样合成法 19 / 8 / 2001 昆明
19 / 8 / 2001 昆明
用随机噪声初始化输出图象,对输出图象的每一个 按照扫描线顺序,逐点进行采样合成。过程如下: 用随机噪声初始化输出图象,对输出图象的每一个 点,按照扫描线顺序查找。在输出图象中,取出 当前点L形状的邻域,L-邻域的大小人工给定。 在输入的样图中找出一点,使该点的L-邻域与输出 图象中L-邻域的误差最小。 把该点拷贝放入输出图象中。重复上述过程,得到 最后合成图象。 在计算L-邻域间误差时,采用距离作为衡量尺度。 19 / 8 / 2001 昆明
为加速匹配过程,采用图象锥结构 19 / 8 / 2001 昆明
逐块拼接合成 在输入样图中任取一块B1,在B1的邻近取B2,B1与B2在输入样图中有一定的重叠,且两者之间的误差控制在一定的约束范围内,在B1 B2的重叠区域找出的一条误差最小的路径作为B2的边缘,把B2贴入合成图中。 19 / 8 / 2001 昆明
误差最小路径的计算: 设B1、B2沿垂直边重叠,重叠区域为 和 ,误差曲面定义为 。通过下述公式获得重叠区最后一行的各点误差。 取误差最小的一点,反向跟踪获得最佳分割路径。对于水平方向的重叠,可以采用类似的方法获得。当水平与垂直方向都有重叠时,两条路径会在中间相遇,选取误差最小的路径作为分割边界。 19 / 8 / 2001 昆明
二维流形表面的纹理合成 关键问题: 如何设定纹理方向; 如何建立曲面与纹理样图的映射关系; 如何查找获得匹配点。 基本思想: 采用层次模型建立覆盖表面的非矩形点集。 19 / 8 / 2001 昆明
建立纹理和网格的层次模型 首先用n个点建立网格,初始的n个点在表面上随机放入,然后用排斥法使之均匀地分布在几何表面。这n个点构成最低分辨率网格的顶点。这n个点位置固定后,把3n的点加入,这些新的点互相推开,均匀地分布在几何表面。这些点构成网格的顶点。如此,得到最细的网格。通过把邻近点投影到切平面并进行Delaunay三角化,从而连接各点建立层次网格。 与此相对应, 采用Gaussian pyramid进行分解,建立纹理样图的层次模型。 19 / 8 / 2001 昆明
网格顶点颜色基本操作: 插值: 为P点半径为r的范围内的网格顶点 为给各分辨率层的网格顶点赋上颜色,采用了以下四种操作:插值,低通滤波,下采样,上采样。 插值: 为P点半径为r的范围内的网格顶点 19 / 8 / 2001 昆明
对网格顶点的颜色进行低通滤波,借用了网格 对网格顶点的颜色进行低通滤波,借用了网格 平滑技术,新点的颜色受到与之相连的n个顶点 的制约。 下采样,上采样分别采用模糊和插值的方法 计算顶点的颜色,从而获得低分辨率层和高 分辨率层的颜色值。 19 / 8 / 2001 昆明
建立矢量场: 许多自然和人工纹理都有方向性,在曲面贴纹理时需要指定方向。采用以下方法建立矢量场:在某几个地方用户指定方向,曲面的其它地方通过插值实现。 19 / 8 / 2001 昆明
首先创建各层矢量场。其中除用户已指定方向的点外都赋为0矢量,进行下采样至最低分辨率层,这时,仍有许多为0,需要进行插值。固定非0矢量,采用颜色模糊的方法计算各点矢量,每次计算时把矢量投影在曲面的切平面上。所有的点矢量为非0后,进行上采样,得到各层的矢量。每次上采样后都要单位化。最后得到最高分辨率层的矢量场。 19 / 8 / 2001 昆明
s(v),它表示顶点v沿向量场离A的距离 根据s(v),决定顶点扫描的优先级顺序 依次逐点处理 扫描曲面 确定起点A 对曲面上的每个顶点分配一个标量值 s(v),它表示顶点v沿向量场离A的距离 根据s(v),决定顶点扫描的优先级顺序 依次逐点处理 迭代处理 19 / 8 / 2001 昆明
由v处向量场O(v)及其切平面上的垂直 向量P(v)构成一个局部坐标系,将它与 纹理图象匹配。 1单位(象素)映射为曲面距离单位r 顶点邻域匹配 由v处向量场O(v)及其切平面上的垂直 向量P(v)构成一个局部坐标系,将它与 纹理图象匹配。 1单位(象素)映射为曲面距离单位r 利用插值技术采样得到邻域颜色N(v)。 匹配类似于二维情形。 19 / 8 / 2001 昆明
纹理合成 19 / 8 / 2001 昆明
19 / 8 / 2001 昆明
发展趋势: 光照独立的纹理映射机制; 更有效的纹理控制机制; 双向反射函数重建机制。 19 / 8 / 2001 昆明
谢谢! 19 / 8 / 2001 昆明