- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
bumpmapping广义纹理贴图-浙江大学
Chapter 5. Texturing纹理贴图 金小刚 Email: jin@ /home/jin 浙江大学CADCG国家重点实验室 “All it takes is for the rendered image to look right” —— Jim Blinn 纹理贴图是一个用图像、函数或其它数据源来改变表面在每一处的外观的过程。 例如,我们不必用精确的几何去表现一块砖墙,而只需把一幅砖墙的图像贴到一个多边形上。 除非观察者非常靠近墙,否则我们并不会觉得缺少几何细节(例如发现砖头和泥浆在同一表面上)。 既节省了大量的造型工作量,也节省了内存空间,加快了绘制速度。 并非由于缺少几何细节的缺陷…… 但是,贴了纹理的砖墙还会出现并非由于缺少几何细节而出现的不真实的缺陷。 但是:砖是发亮的(shiny),但是泥浆不是。但我们会发现砖和泥浆同样发亮。为了生成更真实的效果,我们还需要一张镜面高光纹理贴图。 但是:砖不是平的,其表面通常是粗糙的。我们还需要凹凸纹理(Bump mapping) 广义纹理贴图(Generalized Texturing) 纹理贴图可看成是一种有效的改变物体表面属性的一种方法。颜色、高光、凹凸、反射、透明度等等都可采用纹理贴图。 从贴图图像中取出相应的值代入光亮度计算方程。 砖墙纹理贴图的流水线 投影函数(Projection function) 投影函数把三维空间点转化为纹理坐标。 常用的投影函数:Spherical, Cylindrical, Planar Projections, 参数曲面的(u,v)映射 其它:如根据表面法向来确定6个平面投影方向 不同的纹理投影 不同的纹理投影可以应用于一个物体 即时(on the fly)投影 在实时绘制中,投影函数常常在造型阶段应用,然后把纹理坐标记录在顶点上。 也可即使计算:如OpenGL的glTexGen函数可提供不同的投影函数,然后让图形加速卡即时计算投影。 On the fly投影的优点:纹理坐标不需要送到图形卡,节约传输带宽。 纹理坐标的形式 纹理坐标有时表示成三个坐标(u, v, w)的形式,其中w为投影方向的深度。如医学图像数据。 有些系统把纹理坐标表示成四个坐标(s, t, r , q)的形式,其中q为齐次坐标,可用于聚光灯效果。 每个纹理映射可以有自己的纹理坐标 (Muti-texturing) 对应函数(Corresponder Function) 对应函数把参数空间的值转化为纹理空间的位置。 第一种对应函数: 用API选择一部分纹理(子纹理)进行纹理映射。 另一种对应函数:用矩阵变换。由于OpenGL支持4X4矩阵操作,任何API的应用层都可采用这类变换,如平移、旋转、比例变换、错切等 超出[0,1)纹理空间怎么办? 对应函数还控制纹理空间超出[0,1)时的处理方式 OpenGL中这类对应函数称为“wrapping mode” Direct3D中这类对应函数称为“texture addressing mode” 处理上述问题的常用对应函数 wrap (DirecX), repeat (OpenGL), or tile: 纹理图像在表面重复。例子:地上的大理石贴图 mirror: 纹理图像在表面重复, 但每隔一幅进行翻转(flipped)。这样在纹理的边界处,纹理可以保持连续。 clamp (DirectX) or clamp to edge (OpenGL): 把[0,1)范围之外的进行截断。截断到[0,1)内的半个纹素。 border (DirectX) or clamp to border (OpenGL):参数范围在[0,1) 之外的用单独定义的边界颜色或把纹理的边作为边界。用于在表面上印花样,地形绘制中相邻纹理的缝合。截断到[0,1)外的半个纹素。 例子 实时绘制中隐含的对应函数 根据纹理图像的大小,隐含的对应函数把(u, v)映射到纹理图像的纹素(texel)位置。 采用(u, v)的好处在于,对于不同分辨率的纹理图像,其存贮在顶点处的(u, v)值是相同的。即使改变纹理图像的大小,其(u, v)值不需要改变。 三维纹理 三维纹理的优点是可以避免二维纹理中可能出现的畸变和接缝问题。如木纹、大理石纹理等。 三维纹理的合成方法:噪声函数。由于计算噪声函数的代价,通常预先算好空间Lattice点的值,其它地方进行插值。 Combine Function or Texture Blending Operations 大部分实时系统允许用户选择纹理和表面粘合方式,这些方法称为Combine Function 或 Texture Blending Operatio
文档评论(0)