纹理映射技术
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
19 / 8 / 2001 昆明
视点
(x,y,z)
(x,y,z) N(x,y,z)
(x,y,z)
(x,y,z) N(x,y,z)
(x,y,z) (x,y,z) (x,y,z) (x,y,z)
(a)
(b)
(c)
(d)
(a)反射光线; (b)景物表面法向; (c)景物中心; (d)中介表面法向
表面属性:与光照明模型及表面几何有关的各种 参数,如表面法向、漫/镜面反射率等。
19 / 8 / 2001
昆明
纹理映射的实现:
(1) 交互确定纹理属性
Ilocal= kaIa + kd (N•L) +ks (N •H)n
I= Ilocal + s Is + t It 参数不再是常数,逐点变化
(2) 建立纹理空间与景物空间及景物空间与 屏幕空间之间的映射关系: M: ObjectSpace → TextureSpace T: ScreenSpace → ObjectSpace
(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′)点的外 法向。
存在问题:
传统光照明模型仅考虑表面法向的变化,且假
设表面反射率为一常数,因而只能生成颜色单一 的的光滑景物表面。
景物表面存在丰富的纹理细节, 难以直接构造。
人们正是依据这些纹理细节来区别各种具有相同 形状的景物。
解决这一问题的途径是纹理映射技术
基本思想:
实际纹理非常复杂,难以解析描述。 采用图象来描述表面纹理细节。
的视觉效果。 (2)对具有非平凡拓扑(由多个曲面拼接而成) 的景物表面进行二维纹理映射时,很难保证相邻
曲面片间纹理的连续性。
19 / 8 / 2001 昆明
解决方案:
三维纹理映射技术
优化纹理映射技术
19 / 8 / 2001
昆明
三维纹理映射技术 纹理直接定义于三维空间中 映射变成是一个简单的嵌入映 射 关键问题: 如何生成三维纹理? 解决方案: 过程纹理合成 (Procedural Texture Synthesis)
19 / 8 / 2001
昆明
景物表面的纹理属性主要有以下几种:
(1)表面颜色,即表面的漫反射率; (2)镜面反射分量,即表面的镜面反射率;
(3)透明度;
(4)表面法向,即挠动表面法向来产生表面
的凹凸纹理;
(5)环境的漫反射和镜面反射效果; (6)光源强度和色彩分布。
19 / 8 / 2001 昆明
IBMR (Image-based Modeling and Rendering)
关键问题:
如何在光照明模型中融入纹理的描述? 如何将纹理绘制在景物表面上?
19 / 8 / 2001 昆明
二、纹理映射的基本原理
纹理生成过程实质上是将所定义的纹理 映射为反映某种三维景物表面的属性,并 参与后续的光照明计算。
昆明
MipMap算法
y (x,y+Δ y) (x+Δ x,y+Δ y) (x,y) (x+Δ x,y) x
d S ABCD
D
C A B
u
u v AB x x x
2
2
u v AD x y y
圆柱轴线所经过的圆柱面个数的奇偶性而
取为“明”或“暗”。
19 / 8 / 2001
昆明
引进了以下三个简单的操作来增加随机性:
扰动:对共轴的圆柱面半径进行扰动,扰动 量可以为正弦函数或其它能描述木纹 与正规圆柱面偏离量的任何函数。
椭圆加权平均滤波算法( P. Heckbert )
y
x
u
PPT=1
P’ = PM
P’QP’T=1
采用高斯滤波器 f (r),半径r取为Q的平方 根
19 / 8 / 2001 昆明
建立f (r)的查找表,快速计算椭圆 内的平均纹理颜色
包 含 等 值 线
Q=F 的包围盒
u Q=F
19 / 8 / 2001
这一映射称之为
19 / 8 / 2001
S 映射。
昆明
(2)将上述三维中介物体表面上的纹理映 射到目标景物表面,它可表示为: T′(x′, y′, z′)→O(x, y, z)
该映射称之为 O 映射。
纹理空间到景物空间的纹理映射为 O 映射和 S 映射的复合。
19 / 8 / 2001
N′=N+D=N+ PuA-PvB
N N N Q Q Qu B A Pu D A N
N
P B
19 / 8 / 2001
昆明
19 / 8 / 2001
昆明
二维纹理映射技术的缺陷
(1)在一般情况下 , 由纹理平面至景物表面的 映射是一种非线性映射,在曲面上曲率变化较大
的区域可能发生纹理的非均匀变形,导致不真实
视点
N V O
Vr
C
19 / 8 / 2001
昆明
当前象素内可见景物区域的平均纹理属性
象素 反射光束 曲面
象素内可见表面区域
19 / 8 / 2001 昆明
立方体环境映照
反射光束
19 / 8 / 2001
昆明
参数曲面投影技术
B-spline surface
Polygonal mesh
B-spline surface
19 / 8 / 2001 昆明
象素对应区域非常复杂,与纹理映射有关。
dA
纹理空间
屏幕象素
关键问题
如何高效计算纹理区域的平均纹理值?
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
昆明
扰动后的法向量为:
19 / 8 / 2001 昆明
五、过程纹理合成
采用解析过程迭代函数来生成复杂
的纹理
适合于木材、大理石、云彩、火焰、
石块等不规则自然纹理
19 / 8 / 2001
昆明
木纹纹理合成
采用一组共轴圆柱面来定义三维纹理函数,
即把位于相邻圆柱面之间点的纹理函数值交
替地取为“明”和“暗”。
纹理空间内任一点的纹理函数值可根据它到
Polygonal mesh
V D P(u,v)
19 / 8 / 2001 昆明
V rays N P(u,v) rays
参数曲面
19 / 8 / 2001 昆明
柱面
球面
19 / 8 / 2001
昆明
四、纹理的反走样技术
简单的点采样将产生严重的纹理走样 现象。 原因是每个象素均映射为纹理空间上 的一个区域。 取该区域的平均纹理值作为该象素的 对应纹理值。
19 / 8 / 2001 昆明
(x, y, z) = F-1(u, v) 典型的参数曲面表示
若将参数空间和纹理空间等同(两者
之间关系由一仿射变换确定),参数曲面
的纹理映射函数可简单地定义为其定义表
达式的逆。
一般难以解析表达!
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 昆明
(1)取视线在景物表面可见点 (x,y,z)处的反 射光线与中介表面的交点(x′,y′,z′)作为(x, y,z)的映射点。 (2)取景物表面在(x,y,z)处的法线与中介表面 的交点作为(x,y,z)的映射点。
19 / 8 / 2001 昆明
关键问题:
建立映射
减少形变、走样
合成纹理
剔除纹理图象中的光照效果
19 / 8 / 2001
昆明
三、映射的构造
从数学的观点来看,映射M可用下式 来描述: (u, v)= F(x, y, z) (u, v)TextureSpace 若 F 可逆,则有
(b)
T(ul, t) T(ul, b)
t b
t b
ul (c)
19 / 8 / 2001 昆明
ur
ul (d)
ur
几何纹理映射技术
通过对景物表面各采样点的位置作微小扰动 来改变表面的微观几何形状,从而引起景物表面 法向的变化。由此导致表面光亮度的突变,产 生表面凹凸不平的真实感效果。
存在二种方法: 几何扰动法(改变表面几何) 法向扰动法
纹理映射技术
内
一、研究背景 二、基本原理
容
三、纹理映射的构造
四、纹理反走样(unaliasing)技术
五、过程纹理合成
六、优化纹理映射技术
19 / 8 / 2001 昆明
一、研究背景
三维几何数据
变换、裁剪、取景
绘制渲染
图像显 示输出
动画
纹理映射
图 1.1 三维计算机图形处理的核心部分流程图。主要包括几何数据输入、动画、坐标变 换、视域裁剪、取景变换、绘制渲染、直到最后输出合成图像。
2
2
d max( AB , AD )
19 / 8 / 2001 昆明
或
d S ABCD
B
B G B G R R
G R
u u u u d u
u
19 / 8 / 2001
昆明
求和面积表技术
T(u, ) ( u r, t ) (u, ) (ul, b)
(a) T(ur, t) T(ur, b)
19 / 8 / 2001 昆明
z
h
r 1 y
0 x
2
u
仿射变换 + Tiling
19 / 8 / 2001
昆明
经典算法:
Catmull算法(正向映射法)
采用同时递归分割参数曲面和纹理空间的方法。当子 曲面片在屏幕上的投影区域与象素尺寸匹配时, 按双线性插 值确定象素中心处可见子曲面片上相应点的参数值, 并取对 应点处的纹理颜色值作为该象素中心采样点处表面的纹理 属性,然后用光照明模型来计算该点处的光亮度值。
dS
dA
象素 e
19 / 8 / 2001 昆明
两步法纹理映射技术:
解决无参数化曲面的纹理映射技术
多边形网格模型
隐函数曲面模型
基本思想: 将纹理空间到景物空间的映射分解为 两个简单映射的复合,从而避免了对景 物表面的重新参数化。
19 / 8 / 2001 昆明
引进一个包围景物的中介三维曲面作为 中间映射媒介,其基本过程可用下面二个步 骤来完成: (1) 将二维纹理空间映射为一个简单的三 维物体表面,如球面、圆柱面等,即建立如 下的映射: T(u, v)→T′(x′, y′, z′)
纹理的分类: 根据纹理定义域的不同,纹理可分为二维
纹理和三维纹理;
基于纹理的表现形式, 纹理又可分为颜色纹
理、几何纹理和过程纹理三大类。
19 / 8 / 2001
昆明
颜色纹理
呈现在物体表面上的各种花纹、图案和文字等, 如大理石墙面、墙上贴的字画、器皿上的图案等。 几何纹理 基于景物表面微观几何形状的表面纹理,如桔 子、树干、岩石等表面呈现的凸凹不平的纹理细节。 过程纹理 表现了各种规则或不规则的动态变化的自然景 象,如水波、云、火、烟雾等。
19 / 8 / 2001 昆明
(xw,yw,zw)
(xw,yw,zw) (, ) h N(xw,yw,zw) o
屏幕空间
景物空间
纹理空间
“Shrinkwarp”映射过程
19 / 8 / 2001
昆明
环境映射技术
这一技术的雏形是为近似模拟光线跟 踪的效果而又不必去跟踪反射光线而设 计的。 E E
dS
象素 e
dA
屏幕空间
19 / 8 / 2001 昆明
Fra Baidu bibliotek参数曲面
纹理空间
特殊情况:
S1 r1 S3 r3 r2 r4
S2
象素 e
S4
19 / 8 / 2001
昆明
Blinn算法:逆向映射法
屏幕象素到纹理空间对应区域(近似为
四边形)的映射近似表示为一个放射变换。
象素中心的纹理坐标即可由四角点坐标得到。
视点
(x,y,z)
(x,y,z) N(x,y,z)
(x,y,z)
(x,y,z) N(x,y,z)
(x,y,z) (x,y,z) (x,y,z) (x,y,z)
(a)
(b)
(c)
(d)
(a)反射光线; (b)景物表面法向; (c)景物中心; (d)中介表面法向
表面属性:与光照明模型及表面几何有关的各种 参数,如表面法向、漫/镜面反射率等。
19 / 8 / 2001
昆明
纹理映射的实现:
(1) 交互确定纹理属性
Ilocal= kaIa + kd (N•L) +ks (N •H)n
I= Ilocal + s Is + t It 参数不再是常数,逐点变化
(2) 建立纹理空间与景物空间及景物空间与 屏幕空间之间的映射关系: M: ObjectSpace → TextureSpace T: ScreenSpace → ObjectSpace
(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′)点的外 法向。
存在问题:
传统光照明模型仅考虑表面法向的变化,且假
设表面反射率为一常数,因而只能生成颜色单一 的的光滑景物表面。
景物表面存在丰富的纹理细节, 难以直接构造。
人们正是依据这些纹理细节来区别各种具有相同 形状的景物。
解决这一问题的途径是纹理映射技术
基本思想:
实际纹理非常复杂,难以解析描述。 采用图象来描述表面纹理细节。
的视觉效果。 (2)对具有非平凡拓扑(由多个曲面拼接而成) 的景物表面进行二维纹理映射时,很难保证相邻
曲面片间纹理的连续性。
19 / 8 / 2001 昆明
解决方案:
三维纹理映射技术
优化纹理映射技术
19 / 8 / 2001
昆明
三维纹理映射技术 纹理直接定义于三维空间中 映射变成是一个简单的嵌入映 射 关键问题: 如何生成三维纹理? 解决方案: 过程纹理合成 (Procedural Texture Synthesis)
19 / 8 / 2001
昆明
景物表面的纹理属性主要有以下几种:
(1)表面颜色,即表面的漫反射率; (2)镜面反射分量,即表面的镜面反射率;
(3)透明度;
(4)表面法向,即挠动表面法向来产生表面
的凹凸纹理;
(5)环境的漫反射和镜面反射效果; (6)光源强度和色彩分布。
19 / 8 / 2001 昆明
IBMR (Image-based Modeling and Rendering)
关键问题:
如何在光照明模型中融入纹理的描述? 如何将纹理绘制在景物表面上?
19 / 8 / 2001 昆明
二、纹理映射的基本原理
纹理生成过程实质上是将所定义的纹理 映射为反映某种三维景物表面的属性,并 参与后续的光照明计算。
昆明
MipMap算法
y (x,y+Δ y) (x+Δ x,y+Δ y) (x,y) (x+Δ x,y) x
d S ABCD
D
C A B
u
u v AB x x x
2
2
u v AD x y y
圆柱轴线所经过的圆柱面个数的奇偶性而
取为“明”或“暗”。
19 / 8 / 2001
昆明
引进了以下三个简单的操作来增加随机性:
扰动:对共轴的圆柱面半径进行扰动,扰动 量可以为正弦函数或其它能描述木纹 与正规圆柱面偏离量的任何函数。
椭圆加权平均滤波算法( P. Heckbert )
y
x
u
PPT=1
P’ = PM
P’QP’T=1
采用高斯滤波器 f (r),半径r取为Q的平方 根
19 / 8 / 2001 昆明
建立f (r)的查找表,快速计算椭圆 内的平均纹理颜色
包 含 等 值 线
Q=F 的包围盒
u Q=F
19 / 8 / 2001
这一映射称之为
19 / 8 / 2001
S 映射。
昆明
(2)将上述三维中介物体表面上的纹理映 射到目标景物表面,它可表示为: T′(x′, y′, z′)→O(x, y, z)
该映射称之为 O 映射。
纹理空间到景物空间的纹理映射为 O 映射和 S 映射的复合。
19 / 8 / 2001
N′=N+D=N+ PuA-PvB
N N N Q Q Qu B A Pu D A N
N
P B
19 / 8 / 2001
昆明
19 / 8 / 2001
昆明
二维纹理映射技术的缺陷
(1)在一般情况下 , 由纹理平面至景物表面的 映射是一种非线性映射,在曲面上曲率变化较大
的区域可能发生纹理的非均匀变形,导致不真实
视点
N V O
Vr
C
19 / 8 / 2001
昆明
当前象素内可见景物区域的平均纹理属性
象素 反射光束 曲面
象素内可见表面区域
19 / 8 / 2001 昆明
立方体环境映照
反射光束
19 / 8 / 2001
昆明
参数曲面投影技术
B-spline surface
Polygonal mesh
B-spline surface
19 / 8 / 2001 昆明
象素对应区域非常复杂,与纹理映射有关。
dA
纹理空间
屏幕象素
关键问题
如何高效计算纹理区域的平均纹理值?
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
昆明
扰动后的法向量为:
19 / 8 / 2001 昆明
五、过程纹理合成
采用解析过程迭代函数来生成复杂
的纹理
适合于木材、大理石、云彩、火焰、
石块等不规则自然纹理
19 / 8 / 2001
昆明
木纹纹理合成
采用一组共轴圆柱面来定义三维纹理函数,
即把位于相邻圆柱面之间点的纹理函数值交
替地取为“明”和“暗”。
纹理空间内任一点的纹理函数值可根据它到
Polygonal mesh
V D P(u,v)
19 / 8 / 2001 昆明
V rays N P(u,v) rays
参数曲面
19 / 8 / 2001 昆明
柱面
球面
19 / 8 / 2001
昆明
四、纹理的反走样技术
简单的点采样将产生严重的纹理走样 现象。 原因是每个象素均映射为纹理空间上 的一个区域。 取该区域的平均纹理值作为该象素的 对应纹理值。
19 / 8 / 2001 昆明
(x, y, z) = F-1(u, v) 典型的参数曲面表示
若将参数空间和纹理空间等同(两者
之间关系由一仿射变换确定),参数曲面
的纹理映射函数可简单地定义为其定义表
达式的逆。
一般难以解析表达!
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 昆明
(1)取视线在景物表面可见点 (x,y,z)处的反 射光线与中介表面的交点(x′,y′,z′)作为(x, y,z)的映射点。 (2)取景物表面在(x,y,z)处的法线与中介表面 的交点作为(x,y,z)的映射点。
19 / 8 / 2001 昆明
关键问题:
建立映射
减少形变、走样
合成纹理
剔除纹理图象中的光照效果
19 / 8 / 2001
昆明
三、映射的构造
从数学的观点来看,映射M可用下式 来描述: (u, v)= F(x, y, z) (u, v)TextureSpace 若 F 可逆,则有
(b)
T(ul, t) T(ul, b)
t b
t b
ul (c)
19 / 8 / 2001 昆明
ur
ul (d)
ur
几何纹理映射技术
通过对景物表面各采样点的位置作微小扰动 来改变表面的微观几何形状,从而引起景物表面 法向的变化。由此导致表面光亮度的突变,产 生表面凹凸不平的真实感效果。
存在二种方法: 几何扰动法(改变表面几何) 法向扰动法
纹理映射技术
内
一、研究背景 二、基本原理
容
三、纹理映射的构造
四、纹理反走样(unaliasing)技术
五、过程纹理合成
六、优化纹理映射技术
19 / 8 / 2001 昆明
一、研究背景
三维几何数据
变换、裁剪、取景
绘制渲染
图像显 示输出
动画
纹理映射
图 1.1 三维计算机图形处理的核心部分流程图。主要包括几何数据输入、动画、坐标变 换、视域裁剪、取景变换、绘制渲染、直到最后输出合成图像。
2
2
d max( AB , AD )
19 / 8 / 2001 昆明
或
d S ABCD
B
B G B G R R
G R
u u u u d u
u
19 / 8 / 2001
昆明
求和面积表技术
T(u, ) ( u r, t ) (u, ) (ul, b)
(a) T(ur, t) T(ur, b)
19 / 8 / 2001 昆明
z
h
r 1 y
0 x
2
u
仿射变换 + Tiling
19 / 8 / 2001
昆明
经典算法:
Catmull算法(正向映射法)
采用同时递归分割参数曲面和纹理空间的方法。当子 曲面片在屏幕上的投影区域与象素尺寸匹配时, 按双线性插 值确定象素中心处可见子曲面片上相应点的参数值, 并取对 应点处的纹理颜色值作为该象素中心采样点处表面的纹理 属性,然后用光照明模型来计算该点处的光亮度值。
dS
dA
象素 e
19 / 8 / 2001 昆明
两步法纹理映射技术:
解决无参数化曲面的纹理映射技术
多边形网格模型
隐函数曲面模型
基本思想: 将纹理空间到景物空间的映射分解为 两个简单映射的复合,从而避免了对景 物表面的重新参数化。
19 / 8 / 2001 昆明
引进一个包围景物的中介三维曲面作为 中间映射媒介,其基本过程可用下面二个步 骤来完成: (1) 将二维纹理空间映射为一个简单的三 维物体表面,如球面、圆柱面等,即建立如 下的映射: T(u, v)→T′(x′, y′, z′)
纹理的分类: 根据纹理定义域的不同,纹理可分为二维
纹理和三维纹理;
基于纹理的表现形式, 纹理又可分为颜色纹
理、几何纹理和过程纹理三大类。
19 / 8 / 2001
昆明
颜色纹理
呈现在物体表面上的各种花纹、图案和文字等, 如大理石墙面、墙上贴的字画、器皿上的图案等。 几何纹理 基于景物表面微观几何形状的表面纹理,如桔 子、树干、岩石等表面呈现的凸凹不平的纹理细节。 过程纹理 表现了各种规则或不规则的动态变化的自然景 象,如水波、云、火、烟雾等。
19 / 8 / 2001 昆明
(xw,yw,zw)
(xw,yw,zw) (, ) h N(xw,yw,zw) o
屏幕空间
景物空间
纹理空间
“Shrinkwarp”映射过程
19 / 8 / 2001
昆明
环境映射技术
这一技术的雏形是为近似模拟光线跟 踪的效果而又不必去跟踪反射光线而设 计的。 E E
dS
象素 e
dA
屏幕空间
19 / 8 / 2001 昆明
Fra Baidu bibliotek参数曲面
纹理空间
特殊情况:
S1 r1 S3 r3 r2 r4
S2
象素 e
S4
19 / 8 / 2001
昆明
Blinn算法:逆向映射法
屏幕象素到纹理空间对应区域(近似为
四边形)的映射近似表示为一个放射变换。
象素中心的纹理坐标即可由四角点坐标得到。