高级计算机图形学-中国科学技术大学
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
20
8.2 纹理映射
映射的确定 考虑由参数方程定义的曲面 p(u,v)=(x(u,v),y(u,v),z(u,v))。 通常采用如下形式从纹理元素对应到曲面上的 点 u = as + bt + c, v = ds + et + f, 只要ae ≠bd, 上述映射是可逆的。
21
8.2 纹理映射
11
8.2 纹理映射
把图像映射到曲面上是一个非常复杂的 任务。
12
8.2 纹理映射
涉及到的坐标系 参数坐标系可以用来建立曲线、曲面。 纹理坐标系用来识别要被映射的图像上的点。 世界坐标系从概念上说,就是映射发生的地方。 .2 纹理映射
16
8.2 纹理映射
实际困难
假设要计算中心在(xs, ys)的一个矩形像素的颜色。 中心点对应于对象上的点(x,y,z) 。 如果对象是弯曲的,那么矩形像素的原像是一个曲 边四边形。 这个曲边四边形在纹理上的原像才是对当前矩形像 素的颜色有贡献的纹理元素。
17
8.2 纹理映射
1
第八章 离散技术
离散数据最重要的用途之一就是表 面绘制。 8.1 8.2 8.3 8.4 映射方法 纹理映射 OpenGL中的纹理映射 纹理生成
2
8.1 映射方法
图形显示卡可以每秒钟显示多达一千万个 多边形,但这个速度仍不能满足模拟许多 自然现象和天然物质的要求: 云 草 地貌 树皮 毛发 水波与火焰 越来越复杂的模型不是唯一的解决方法!
6
8.1 映射方法
纹理映射
环境映射
凹凸映射
7
8.1 映射方法
三种映射的共同点 作为片元处理的一部分。 改变单个片元的明暗值。 都与存储为一维、二维或三维数字图像的贴图有关。 保持低的几何复杂性,但能产生复杂几何的视觉效果。 都可能产生走样误差。
8
8.1 映射方法
映射技术是在绘制流水线的最后阶段实现的, 非常有效,这样可以减少了许多不必要的映 射。
类似于地图绘制中的映射肯定有变形。 常用在环境映射中。
27
8.2 纹理映射
立方体映射适合应用于正交投影中,也用 在环境映射中。
28
第八章 离散技术
8.1 8.2 8.3 8.4 映射方法 纹理映射 OpenGL中的纹理映射 纹理生成
29
8.3 OpenGL中的纹理映射
高级计算机图形学
讲 授:董兰芳 研究方向:科学计算可视化 图形、图像处理 模式识别 Telephone:0551-3603484 Email:lfdong@ Homepage: /~lfdong 中国科学技术大学 视觉计算与可视化实验室
30
8.3 OpenGL中的纹理映射
纹理映射框架
14
8.2 纹理映射
映射函数 考虑从纹理坐标到曲面上一点的映射。 直观地看,需要如下函数 x=x(s,t) y=y(s,t) z=z(s,t) w=w(s,t) 实际采用的是间接方法。
15
8.2 纹理映射
逆映射 给定对象上的一个点,我们想知道它对应 于纹理中的哪个点。 此时需要如下形式的映射 s = s(x,y,z,w) t = t(x,y,z,w) 这样的函数一般是很难求出来的。
9
第八章 离散技术
8.1 8.2 8.3 8.4 映射方法 纹理映射 OpenGL中的纹理映射 纹理生成
10
8.2 纹理映射
以数组形式存储在处理器内存里的二维图像称为纹理, 此时数组元素称为纹素(texel),可以由应用程序生成, 也可以将照片扫描输入。 把离散数组看成一个连续的二维矩形区域纹理图案 T(s,t),独立变量s和t是纹理坐标一般把纹理坐标缩放到 [0,1]区间。
3
8.1 映射方法
例:橙子的建模 用橙色的球表示橙子太简单。 用更复杂形状代替球没有表示出表面的特性。 为了模拟所有的微凹,需要相当多的多边形。 可以将真实橙子的照片“粘贴”到简单的几何模型上。 以上过程就是纹理映射,结果可能仍然不令人满意, 因为所得曲面是光滑的,需要改变局部形状,可以采用 凹凸映射。
4
8.1 映射方法
三种映射方法 纹理映射利用图像填充多边形。 环境映射(反射映射)利用环境的图像进行纹理映射。 可以模拟高度镜面曲面。 凹凸映射在生成显示结果的过程中可以改变法向量。
5
8.1 映射方法
纹理映射的图案 具有固定样式的图案。 经常用于填充多边形的规则图案。 通过过程纹理生成的图案。 通过数字化处理后得到的图像。
映射函数:
s = u t = v
从纹理坐标到圆柱面上没有变形。 适合于构造与无底的圆柱面拓朴同构 的曲面上的纹理。
24
8.2 纹理映射
25
8.2 纹理映射
26
8.2 纹理映射
球面映射 半径为r的球的参数方程
x = r cos(2πu) y = r sin(2πu)cos(2πv), 0 ≤ u,v≤ 1 z = r sin(2πu)sin(2πv)
没有考虑曲面的弯曲为了填充曲面,纹理在 不同方向进行了不同拉伸。
22
8.2 纹理映射
两步映射 首先把纹理映射到一个简单的中间曲面上 例如:映射到圆柱上 然后从中间对象到实际对象的映射。
23
8.2 纹理映射
圆柱映射 高为h,半径为r圆柱的参数方程是
x = r cos(2πu) y = r sin(2πu) , 0 ≤ u,v≤ 1 z = v/h
纹理坐标到屏幕坐标的映射 xs=xs(s,t) ys=ys(s,t) (xs,ys)表示颜色缓存中的某个位置。
18
8.2 纹理映射
走样现象
19
8.2 纹理映射
用在纹理原像上对应区域的明暗效果的平均值赋给 当前像素很难实现,也不是完美的。 右图经上述处理后也得不到所需要的结果,但这个 问题来自于低分辨率的局限。 对于规则纹理,这种效果非常明显。