纹理映射技术
纹理

V
(0,1)
映射方法
•建立物体空间坐标(x,y,z)和纹理空 间坐标(u,v)之间的对应关系 •对物体表面进行参数化,反求出物体 表面的参数后,根据(u,v)得到该处的 纹理值,并用此值取代光照明模型中的 相应项,实现纹理映射
(0,0)
(1,0) U
圆柱映射
• 采用相似的方法可获得平行于X 轴或Y轴的圆柱映射:
(2) 如果曲面区域由两个三角形F1和F2近似表示,则曲面片的参
数化公式可进一步简化。如图中,F1内任意一点可表示为
(u u1 ) (v v1 ) B(u, v) ( B2 B1 ) ( B2 B1 ) B1 (u2 u1 ) (v2 v1 )
纹理映射例子
• 地板与墙都是经过二维图象纹理映射后的平面
球形映射
• 这种映射仍然在极点产生纹理的聚集,但聚集方式与圆柱 映射不同 .
映射方式(例子)
参数表面的映射
• 已经用(s, t)对参数表面进行了参数化 • 将 (s,t) 参数直接作为 (u,v) 纹理参数使用
Utah 茶壶
• 32 个参数曲面片的茶壶
非参数表面
• 如果在范围(0,1) 为顶点赋值,即可以使用相同的方法进
原始模型
二维纹理
几何纹理
综合
纹理映射的形状
• 平面映射
– 只要简单地消除物体的一个坐标 (投影到坐标系平面 )
平面映射
• 保持纹理在一个方向上不变会产生不期望的副作用
– 例如 沿着 Z轴投影
平面投影
• 分别沿着 X 和 Y轴投影
包围盒映射
• 较单个平面映射而言,采用一组平面映射可以对物体取得 较好的覆盖 :
小矩形的顶点进行双线性插值,以获得它的纹理值。
texture的缩写

texture的缩写
摘要:
1.Texture 的含义
2.Texture 的缩写
3.Texture 的应用领域
4.纹理映射的定义和作用
5.纹理映射的类型
6.纹理映射的优点
7.纹理映射的局限性
正文:
Texture 的缩写是“纹理”,它是指物体表面的触感或外观。
在计算机图形学和游戏开发领域,纹理被广泛应用于为物体表面增加细节,提高视觉效果。
纹理映射是一种将纹理贴图应用到物体表面的技术,它可以为物体表面增加纹理细节,使得物体看起来更加真实。
纹理映射的定义是,将纹理贴图通过映射技术应用到物体表面的过程。
纹理映射在计算机图形学和游戏开发中被广泛应用,它可以为物体表面增加细节,提高视觉效果。
纹理映射的作用是,通过将纹理贴图应用到物体表面,使得物体表面具有更加真实的触感和外观。
纹理映射的类型包括多种,例如环境光遮蔽、法线贴图、高光贴图等。
这些纹理映射类型各不相同,但是它们都可以为物体表面增加纹理细节,提高视觉效果。
纹理映射的优点是,它可以为物体表面增加细节,提高视觉效果。
纹理映射可以使物体表面看起来更加真实,增加用户的沉浸感。
此外,纹理映射还可以提高物体表面的光影效果,使得物体表面更加立体。
然而,纹理映射也存在一些局限性。
首先,纹理映射需要大量的计算资源,可能会导致计算机性能下降。
其次,纹理映射需要大量的纹理贴图,这会增加存储空间的需求。
基于OpenGL的纹理映射技术绘制地质栅状图剖面

面上的钻孔联系起来, 在空问上整体地反映钻孔分布区域内油 气藏的分布状况。 在进行地层对比和综合解释方面有其独特的 作用。而在绘制地质栅状图剖面时, 要求利用岩性图例自动填 充剖面区域。 本文介绍利用 O eG 的纹理映射技术实现岩性 pn L
v i g e P rme r} ] L n r tre.L n m p a . od l x a T a t { [ ( e un agt e u nme e Iv G f G
维普资讯
・ 7・ l
Co ue r . 0 6 mp trE a No 4 2 0
基于0 eG 的纹理映射技术绘制地质栅状图剖面 pn L
汪生珠 ,杨麦 顺 ’ 庆兵 ,何
( 西安 交通大学电子与信息工程学院,陕西 西安 704 ; 1 . 109 2 中国石油长庆油田分公 司勘探开发研 究院1 .
同样基于 O eG pn L能够 开发 出效果很好的三维地质栅状图。 地
v i g e la e DGLn m,re.L tl e.L t o l x g 2 ( e u t gt i v 1 i d T m a G n e G n
c mp n nsGL ie wdhgs e eg t itb  ̄e. o o e t, sz i it,li ih ih, n o r z GL
一
台的开放式图形编程接 口{ 3 1 。
纹理坐标可以超出(,) , O1 范围 并且在纹理 映射 过程 中可 以 从程序开发人员的角度来看, pn L是一组绘图命令的 重复映射或缩限映射。 O eG 在重复映射的情况下, 纹理可以在 st , 方 A I 合。利用这些 A I 够方便地 描述二 维和三维 几何形 向上重复。 P集 P能
02-配合视频讲解纹理的基本概念和纹理映射的基本方法。

让人头疼的纹理(上):颜色纹理华中科技大学软件学院万琳提纲1纹理的概念2纹理的定义和映射3基于OpenGL的颜色纹理1纹理的概念用简单光照明模型生成真实感图象,由于表面过于光滑单调,反而显得不真实。
现实物体表面有各种表面细节,这些细节就叫纹理。
1纹理的概念用简单光照明模型生成真实感图象,由于表面过于光滑单调,反而显得不真实。
现实物体表面有各种表面细节,这些细节就叫纹理。
1纹理的概念用简单光照明模型生成真实感图象,由于表面过于光滑单调,反而显得不真实。
现实物体表面有各种表面细节,这些细节就叫纹理。
1纹理的概念纹理实例:纹理的概念1纹理:体现物体表面的细节纹理类型:◆颜色纹理物体表面(平面或者曲面)花纹、图案◆几何纹理基于物体表面的微观几何形状二维纹理几何纹理2纹理的定义和映射◆生成纹理的一般方法,是预先定义纹理模式,然后建立物体表面的点与纹理模式的点之间的对应。
◆当物体表面的可见点确定之后,以纹理模式的对应点参与光照模型进行计算,就可把纹理模式附到物体表面上。
这种方法称为纹理映射(Texture Mapping)。
像素区物体表面纹理模式2纹理的定义和映射纹理模式定义:•图象纹理:将二维纹理图案映射到三维物体表面,绘制物体表面上一点时,采用相应的纹理图案中相应点的颜色值。
•函数纹理:用数学函数定义简单的二维纹理图案,如方格地毯。
或用数学函数定义随机高度场,生成表面粗糙纹理即几何纹理。
函数纹理定义的方格地毯图像纹理2纹理的定义和映射纹理映射:•建立纹理与三维物体之间的对应关系•扰动法向量图像纹理映射到我们课程原创的动画人物帽子上纹理的定义和映射2◆纹理模式定义方法:纹理空间纹理定义在纹理空间上的函数,纹理空间通常是一个单位正方形区域0≤u ≤ 1,0≤ v ≤1之上。
纹理映射中最常见的纹理•一个二维纹理的函数表示•纹理图象V(0,1)(0,0)(1,0) U⎣⎦⎣⎦⎣⎦⎣⎦⎩⎨⎧⨯+⨯⨯+⨯=evenv u odd v u v u g 881880),(纹理的定义和映射2◆纹理映射方法:建立物体空间表面和纹理空间之间的对应关系根据物体空间的表面坐标(x,y,z)计算其纹理空间坐标(u,v)值:对物体表面坐标(x,y,z)用u 、v 进行参数化(第一步),然后反求出参数u 、v 用物体表面坐标(x,y,z)的表达(第二步);根据纹理空间定义的纹理(u,v)得到该处的纹理值,并用此值取代光照明模型中的相应项,实现纹理映射(第三步)。
mipmap lod偏移量

mipmap lod偏移量Mipmap LOD偏移量在计算机图形学中,Mipmap是一种用于纹理映射的技术。
LOD (Level of Detail)则是用于控制渲染过程中物体的细节程度的参数。
而Mipmap LOD偏移量则是指在Mipmap级别之间进行切换时所采用的偏移量的大小。
本文将详细介绍Mipmap LOD偏移量的作用和影响。
一、Mipmap和LOD简介Mipmap是一种将纹理图像按照不同尺寸进行预处理的技术。
它通过在原始纹理图像的基础上生成一系列缩小的图像,这些图像被存储在不同的Mipmap级别中。
这样,在渲染过程中,系统可以根据物体与相机的距离,自动选择合适的Mipmap级别,从而实现更加真实和高效的纹理映射效果。
而LOD则是用于控制渲染过程中物体细节程度的参数。
它通常是一个浮点数,用于表示物体在不同距离下的细节层次。
较小的LOD值表示更高的细节层次,而较大的LOD值则表示更低的细节层次。
通过调整LOD值,可以在保证渲染效果的同时,提高渲染性能。
二、Mipmap LOD偏移量的作用在纹理映射过程中,Mipmap LOD偏移量用于控制相邻Mipmap级别之间的切换。
当物体与相机的距离发生变化时,系统会根据当前物体与相机的距离,计算出合适的LOD值。
然后,根据LOD值和Mipmap LOD偏移量,选择合适的Mipmap级别进行纹理映射。
Mipmap LOD偏移量的大小会影响到物体的渲染效果和性能。
如果Mipmap LOD偏移量过小,系统可能频繁地切换Mipmap级别,导致纹理映射效果不稳定,出现纹理闪烁或失真的情况。
而如果Mipmap LOD偏移量过大,系统可能会选择较低分辨率的Mipmap级别进行渲染,导致物体细节不够清晰,影响渲染质量。
三、Mipmap LOD偏移量的调整方法在实际应用中,可以通过调整Mipmap LOD偏移量来优化纹理映射效果和性能。
一种常用的方法是根据物体与相机的距离,动态地调整Mipmap LOD偏移量的大小。
动画制作知识:动画中的模型渲染技术

动画制作知识:动画中的模型渲染技术一、了解模型渲染技术的基本概念动画制作中的模型渲染技术是指将三维模型表面上的材质、纹理和光照效果等属性转化为最终输出图像或动画的过程。
模型渲染技术是通过一系列的算法和技术来实现,包括光照计算、阴影处理、纹理映射等内容。
通过模型渲染技术的应用,可以让三维模型在动画中呈现出逼真的外观和细节。
二、理解模型渲染技术的原理1.光照计算:光照是模型渲染中的重要部分,它包括环境光、定向光、点光源等不同类型的光源效果。
通过光照计算,可以确定模型表面上不同部分的亮度和色彩。
光照计算的原理涉及到光线追踪、阴影计算、反射和折射等物理光学现象的模拟。
2.纹理映射:纹理映射是指将二维图像或纹理映射到三维模型表面上的过程。
通过纹理映射,可以使模型的表面呈现出各种细节和图案,从而增强模型的真实感和视觉效果。
常见的纹理映射技术包括UV 映射、投影纹理、混合纹理等。
3.阴影处理:阴影处理是模型渲染中的另一个重要部分,它包括平面阴影、透明阴影、软阴影等不同类型的阴影效果。
通过阴影处理,可以使模型在不同光照条件下呈现出逼真的阴影效果,增强模型的立体感和真实感。
三、掌握模型渲染技术的应用方法1.渲染软件的选择:在动画制作中,常用的渲染软件有3ds Max、Maya、Blender等。
这些软件提供了丰富的渲染功能和效果,可以满足不同类型动画制作的需求。
2.材质和纹理的制作:在模型渲染过程中,需要为模型赋予合适的材质和纹理,以达到预期的视觉效果。
制作材质和纹理可以使用专门的纹理制作软件,如Photoshop、Substance Painter等。
3.光照和阴影的设置:通过调整光源的类型、方向和光照参数,可以为模型添加合适的光照效果。
同时,通过设置阴影参数,可以实现不同类型的阴影效果,使模型呈现出更真实的立体感。
4.渲染参数的优化:在模型渲染过程中,需要合理调整渲染参数,以达到较高的渲染质量和较短的渲染时间。
基于OpenGL的2D纹理映射技术研究
( eate tfC m ue,hax nvrt eh o g , nhn ,hn 7 3 0 ) D p r n o o p t San i i s yfTc nl yHazo g C i m r U ei o o a 2 0 3
Absr c : i e t r p i g c n b id a u a t a ii s e s i e GL r g a . rty, h wi g t e t a t Usng t xu e ma p n a u l b nd n nd vv d c ne n Op n p o r msFisl s o n h r q e to t n a d sz ftx u e i g a d g vn n ee n ay sr tr nd d sg de ft e p o r m ,h n e u s fsa d r ie o e t r ma e, n ii g a l me tr tu u e a e in i a o h r g a t e
Mo ue ” 项 中的 开 始处 ( kre 3 .b前 ) 加 O e G 2 i,L 21 d ls选 在 en l 21 i 增 p n L3 .bG u3 .b和 G ax1 1 i L u .b后 单 击 O i K按 钮 , 就可 以开始 写 O e G p n L程序 了.
21 0 1年 2月
F b2 1 e .0 1
基 于 Op n e GL的 2 D纹 理 映射 技 术 研 究
杨 刚
( 陕西 理 2 学 院计 算 机 科 学 与技 术 系 , 中 1 2 汉 730 ) 2 03
摘 要 : pn L程 序 中使 用纹 理 映 射 可 以方便 地 构 建 复 杂 、 实 的场 景. 先 提 出纹 理 图像 的标 准尺 寸 要 求 , 时给 出 O eG 真 首 同
纹理映射技术在织物场景仿真系统中的应用
l i g o rp i r — r c s i g, n i l sn ,c l r y t e i o ie o n e h o o y,t esmu a in i a iu c n sw sr a — i n f a h cp o p o e sn a t a i i g o o n h ss f x l i t c n l g z g — a s p p t h i lt n v r s s e e a e l o o
维普资讯
第2 5卷第 3期
20 0 8年 3月
机
电
工
程
V0 . 5 No 3 12 .
M a .20 r 08
M ECHANI CAL & ELECTRI CAL ENGI NEERI NG AGAZI M NE
纹理映 射技术在织物 场景仿真 系统中的应用
点颜 色合 成 等 与产 生逼 真仿 真 效果 相 关 的技 术 , 出 了详 细 的 实现 方 法 或 算 法 。在 D lh 给 e i p 7集成 环 境
下进 行 了编 程 。仿真 研 究表 明 , 用本 方法 建立 的 场景仿 真 系统 , 以使 织物设 计 者 在设 计之初 检 查织 使 可
( o e e fE etc l n ier g Z e a g U i r t , a g h u3 0 2 , hn ) C l g l r a E gn e n , h in nv s y H n zo 0 7 C ia l o ci i j ei 1
Abs r c :The txur pp n n c mpu e r p i s we e dic s e ta t e t e ma i g i o tr g a h c r s u s d. Co i e t e tl c ne sm ua in s se ,a txu e mb n d wih tx ie s e i lto y tm e tr ma i lo ih wa r s ntd whc sefcin nd ef cie、The ra iig p o e so e t r a pi r ie ppng ag rt m sp e e e ih i fi e ta fe t v e lzn r c s ftx u em p ngwee gv n,a d b t— n yui
凹凸纹理映射
凹凸纹理映射关于凹凸映射的原理请参阅凹凸映射(Bump Map)实现原理。
凹凸纹理映射是一种纹理混合方法,它可以创建三维物体复杂的纹理外观表面。
普通的纹理映射只能模拟比较平滑的三维物体表面,难以显示表面高低起伏、凹凸不平的效果。
凹凸纹理映射能够通过一张表示物体表面凹凸程度的高度图(称为凹凸纹理),对另一张表示物体表面环境映射的纹理图的纹理坐标进行相应的干扰,经过干扰的纹理坐标将应用于环境映射,从而产生凹凸不平的显示效果。
凹凸纹理映射通常由三张纹理映射图组成,第一张纹理图表示物体表面原始纹理颜色,第二张凹凸纹理图表示物体表面凹凸的高度起伏值,用来对下一张环境纹理图坐标进行干扰,第三张纹理图表示周围镜面反射或漫反射光照的环境光照映射图。
凹凸纹理映射的纹理映射流程如下图所示:检查硬件设备在使用凹凸纹理映射之前,应查询当前的Direct3D设备是否支持D3DTEXOPCAPS_BUMPEN VMAP或D3DTEXOPCAPS_BUMPENVMAPLUMINANCE多层纹理混合,以及当前设备是否支持3层纹理映射。
BOOL SupportsBumpMapping(){通常情况下,可以载入一张表示物体表面图像高度的纹理图,通过计算高度图水平相邻和垂直相邻元素的高度差来生成凹凸纹理,也可以通过程序生成凹凸纹理,这里根据纹理图来生成凹凸纹理,代码如下://--------------------------------------------------------------------------------------// Create bump texture from height map texture.//--------------------------------------------------------------------------------------HRESULT CreateBumpTexture(IDirect3DDevice9* device){HRESULT hr;D3DSURFACE_DESC surface_desc;g_height_map_texture->GetLevelDesc(0, &surface_desc);V_RETURN(device->CreateTexture(surface_desc.Width, surface_desc.Height, 1, 0, D3DFMT_X8L8V8U8, D3DPOOL_MANAGED,&g_bum p_map_texture, NULL));D3DLOCKED_RECT locked_rect;g_height_map_texture->LockRect(0, &locked_rect, NULL, 0);DWORD src_pitch = (DWORD) locked_rect.Pitch;BYTE* src_row_top = (BYTE*) locked_rect.pBits;BYTE* src_row_cur = src_row_top;BYTE* src_row_bot = src_row_top + src_pitch * (surface_desc.Height - 1);g_bump_map_texture->LockRect(0, &locked_rect, NULL, 0);DWORD dest_pitch = (DWORD) locked_rect.Pitch;BYTE* dest_row_top = (BYTE*) locked_rect.pBits;BYTE* dest_row_cur = dest_row_top;// iterate through all linesfor(DWORD y = 0; y < surface_desc.Height; y++){BYTE* src_pixel_cur;BYTE* src_pixel_up;BYTE* src_pixel_below;BYTE* dest_pixel;src_pixel_cur = src_row_cur;if(y == 0)src_pixel_up = src_row_bot;elsesrc_pixel_up = src_row_cur - src_pitch;if(y == surface_desc.Height - 1)src_pixel_below = src_row_top;elsesrc_pixel_below = src_row_cur + src_pitch;dest_pixel = dest_row_cur;// iterate through all columns in current linefor(DWORD x = 0; x < surface_desc.Width; x++){BYTE src_pixel_left, src_pixel_right;if(x == 0)src_pixel_left = *(src_row_cur + (surface_de sc.Width - 4));elsesrc_pixel_left = *(src_pixel_cur - 4);if(x == surface_desc.Width - 1)src_pixel_right = *src_row_cur;elsesrc_pixel_right = *(src_pixel_cur + 4);BYTE du = BYTE(src_pixel_left - src_pixel_right);BYTE dv = BYTE(src_pixel_up - src_pixel_below);// the luminance bump valueBYTE u_lumi = (*src_pixel_cur > 1) ? 63 : 127;*dest_pixel++ = du;*dest_pixel++ = dv;*dest_pixel++ = u_lumi;*dest_pixel++ = 0;// move one pixel to the rightsrc_pixel_cur += 4;src_pixel_up += 4;src_pixel_below += 4;}// move to the next linesrc_row_cur += src_pitch;dest_row_cur += dest_pitch;}g_bump_map_texture->UnlockRect(0);g_height_map_texture->UnlockRect(0);return S_OK;}凹凸纹理设置凹凸纹理映射通常使用3层纹理:物体原始纹理、由原始纹理高度图生成的凹凸纹理、环境纹理,对应于多层纹理混合的0、1、2层。
OpenGL教程009_纹理映射
纹理映射(Texture Mapping,/wiki/Texture_mapping)是⼀一种中等难度的渲染⽅方法。
其基本思路是将⼀一张或者⼏几张图⽚片作为纹理,将其贴在模型表⾯面。
纹理映射的算法实在是⾮非常简单。
⽤用OpenGL实现纹理映射,最⼤大的难度不在于OpenGL,⽽而在于如何加载图⽚片!⽤用C++读取图⽚片有很多库可以选择,例如CImg、ImageStone和OpenCV之类的。
这些库都是跨平台的,但使⽤用起来过于复杂。
于是我找了⼀一个简单的库EasyBMP(/projects/easybmp/?source=directory),只能读取BMP 数据,够⽤用也跨平台。
所需要的就是将纹理图全部转换为BMP格式,⽤用图像处理软件很容易做到这⼀一点。
我们引⼊入⼀一个新的函数来加载纹理://加载纹理GLuint const char//使⽤用EasyBMP加载纹理图⽚片//使⽤用什么库没有关系,最终纹理需要⽣生成⼀一个数组,数组的格式如下://{r1,g1,b1,r2,g2,b2,...,rn,gn,bn},其中ri,gi,bi表⽰示i位置的//像素点的rgb值。
如果图像由alpha值,数组的格式如下://{r1,g1,b1,a1,r2,g2,b2,a2,...,rn,gn,bn,an}BMPReadFromFileint TellWidthint TellHeightunsigned char new unsignedchar3int0for int0for int0row col Redrow col Greenrow col Blue//创建纹理,并将纹理数据传递给OpenGLGLuint1glGenTextures1glBindTexture GL_TEXTURE_2D0//设置纹理参数glTexParameteri GL_TEXTURE_2D GL_TEXTURE_WRAP_S GL_REPEATglTexParameteri GL_TEXTURE_2D GL_TEXTURE_WRAP_T GL_REPEATglTexParameteri GL_TEXTURE_2D GL_TEXTURE_MAG_FILTERGL_LINEARglTexParameteri GL_TEXTURE_2D GL_TEXTURE_MIN_FILTERGL_LINEAR//传输数据glTexImage2D GL_TEXTURE_2D0GL_RGB0GL_RGB GL_UNSIGNED_BYTE deletereturn0加载纹理通常分为以下⼏几个步骤:(1)⽤用图像处理库(这⾥里是EasyBMP)读取纹理⽂文件。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
19 / 8 / 2001
昆明
景物表面的纹理属性主要有以下几种:
(1)表面颜色,即表面的漫反射率; (2)镜面反射分量,即表面的镜面反射率;
(3)透明度;
(4)表面法向,即挠动表面法向来产生表面
的凹凸纹理;
(5)环境的漫反射和镜面反射效果; (6)光源强度和色彩分布。
19 / 8 / 2001 昆明
19 / 8 / 2001 昆明
象素对应区域非常复杂,与纹理映射有关。
dA
纹理空间
屏幕象素
关键问题
如何高效计算纹理区域的平均纹理值?
19 / 8 / 2001 昆明
解决方案:
近似区域逼近法:
圆、椭圆、正方形、长方形 优点: 可采用查找表快速计算区域面积 缺点: 有时误差较大
19 / 8 / 2001 昆明
dS
象素 e
dA
屏幕空间
19 / 8 / 2001 昆明
参数曲面
纹理空间
特殊情况:
S1 r1 S3 r3 r2 r4
S2
象素 e
S4
19 / 8 / 2001
昆明
Blinn算法:逆向映射法
屏幕象素到纹理空间对应区域(近似为
四边形)的映射近似表示为一个放射变换。
象素中心的纹理坐标即可由四角点坐标得到。
圆柱轴线所经过的圆柱面个数的奇偶性而
取为“明”或“暗”。
19 / 8 / 2001
昆明
引进了以下三个简单的操作来增加随机性:
扰动:对共轴的圆柱面半径进行扰动,扰动 量可以为正弦函数或其它能描述木纹 与正规圆柱面偏离量的任何函数。
纹理映射技术
内
一、研究背景 二、基本原理
容
三、纹理映射的构造
四、纹理反走样(unaliasing)技术
五、过程纹理合成
六、优化纹理映射技术
19 / 8 / 2001 昆明
一、研究背景
三维几何数据
变换、裁剪、取景
绘制渲染
图像显 示输出
动画
纹理映射
图 1.1 三维计算机图形处理的核心部分流程图。主要包括几何数据输入、动画、坐标变 换、视域裁剪、取景变换、绘制渲染、直到最后输出合成图像。
19 / 8 / 2001 昆明
z
h
r 1 y
0 x
2
u
仿射变换 + Tiling
19 / 8 / 2001
昆明
经典算法:
Catmull算法(正向映射法)
采用同时递归分割参数曲面和纹理空间的方法。当子 曲面片在屏幕上的投影区域与象素尺寸匹配时, 按双线性插 值确定象素中心处可见子曲面片上相应点的参数值, 并取对 应点处的纹理颜色值作为该象素中心采样点处表面的纹理 属性,然后用光照明模型来计算该点处的光亮度值。
Polygonal mesh
V D P(u,v)
19 / 8 / 2001 昆明
V rays N P(u,v) rays
参数曲面
19 / 8 / 2001 昆明
柱面
球面
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)在一般情况下 , 由纹理平面至景物表面的 映射是一种非线性映射,在曲面上曲率变化较大
的区域可能发生纹理的非均匀变形,导致不真实
昆明
关键问题:
确定恰当的三维中介表面; 建立由该中介表面到景物表面的映射 关系。
任一方向的平面 圆柱面 立方体表面 球面 近似参数曲面
19 / 8 / 2001 昆明
(1)取视线在景物表面可见点 (x,y,z)处的反 射光线与中介表面的交点(x′,y′,z′)作为(x, y,z)的映射点。 (2)取景物表面在(x,y,z)处的法线与中介表面 的交点作为(x,y,z)的映射点。
存在问题:
传统光照明模型仅考虑表面法向的变化,且假
设表面反射率为一常数,因而只能生成颜色单一 的的光滑景物表面。
景物表面存在丰富的纹理细节, 难以直接构造。
人们正是依据这些纹理细节来区别各种具有相同 形状的景物。
解决这一问题的途径是纹理映射技术
基本思想:
实际纹理非常复杂,难以解析描述。 采用图象来描述表面纹理细节。
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 昆明
视点
(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 昆明
五、过程纹理合成
采用解析过程迭代函数来生成复杂
的纹理
适合于木材、大理石、云彩、火焰、
石块等不规则自然纹理
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 V O
Vr
C
19 / 8 / 2001
昆明
当前象素内可见景物区域的平均纹理属性
象素 反射光束 曲面
象素内可见表面区域
19 / 8 / 2001 昆明
立方体环境映照
反射光束
19 / 8 / 2001
昆明
参数曲面投影技术
B-spline surface
Polygonal mesh
B-spline surface
表面属性:与光照明模型及表面几何有关的各种 参数,如表面法向、漫/镜面反射率等。
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
纹理的分类: 根据纹理定义域的不同,纹理可分为二维
纹理和三维纹理;
基于纹理的表现形式, 纹理又可分为颜色纹
理、几何纹理和过程纹理三大类。
19 / 8 / 2001
昆明
颜色纹理
呈现在物体表面上的各种花纹、图案和文字等, 如大理石墙面、墙上贴的字画、器皿上的图案等。 几何纹理 基于景物表面微观几何形状的表面纹理,如桔 子、树干、岩石等表面呈现的凸凹不平的纹理细节。 过程纹理 表现了各种规则或不规则的动态变化的自然景 象,如水波、云、火、烟雾等。
(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)
(b)
T(ul, t) T(ul, b)
t b
t b
ul (c)
19 / 8 / 2001 昆明
ur
ul (d)
ur
几何纹理映射技术
通过对景物表面各采样点的位置作微小扰动 来改变表面的微观几何形状,从而引起景物表面 法向的变化。由此导致表面光亮度的突变,产 生表面凹凸不平的真实感效果。
存在二种方法: 几何扰动法(改变表面几何) 法向扰动法
19 / 8 / 2001 昆明
(xw,yw,zw)
(xw,yw,zw) (, ) h N(xw,yw,zw) o