1 / 89

高级纹理映射

高级纹理映射. 本次课程的主要内容. 高级纹理映射 OGRE 中的材质和纹理映射. 纹理映射( texture mapping ). 纹理映射的基本原理 凹凸纹理映射 (bump mapping) 位移映射 (displacement mapping) 环境纹理映射 (environment mapping) 基于光照映射的快速绘制 (light mapping) 高级纹理映射技术总结. 纹理映射. 将一个一维、二维、三维的图像映射到几何物体上的过程 纹理映射的用途 仿真自然界的材质 减少几何复杂度 图像 warping 反射效果模拟 。。。.

Download Presentation

高级纹理映射

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 高级纹理映射

  2. 本次课程的主要内容 • 高级纹理映射 • OGRE中的材质和纹理映射

  3. 纹理映射(texture mapping) • 纹理映射的基本原理 • 凹凸纹理映射(bump mapping) • 位移映射(displacement mapping) • 环境纹理映射(environment mapping) • 基于光照映射的快速绘制(light mapping) • 高级纹理映射技术总结

  4. 纹理映射 • 将一个一维、二维、三维的图像映射到几何物体上的过程 • 纹理映射的用途 • 仿真自然界的材质 • 减少几何复杂度 • 图像warping • 反射效果模拟 • 。。。

  5. 纹理映射 • 基于参数化的纹理坐标 • glTexCoord*()指定每个顶点处的纹理 纹理空间 物体空间 t 1, 1 (s, t) = (0.2, 0.8) 0, 1 A a c (0.4, 0.2) b B C (0.8, 0.4) s 0, 0 1, 0

  6. 高级纹理映射 • 标准纹理映射:物体本身的颜色 • 凹凸纹理映射 • 法向扰动:Bump mapping • 法向图:Normal mapping • 任意细节扰动:Detail mapping • 曲面的反射属性:Reflectance map • 位移映射 • 标准位移映射:Displacement mapping • 视差位移映射:Parallax mapping • 深度校正的位移映射:Z-corrected displacement mapping • 环境映射:environment mapping • 光亮图:Light mapping 表面微结构 环境影响

  7. 凹凸纹理映射(Bump mapping) • 凹凸纹理映射(Bump Mapping)技术用来模拟粗糙物体表面凹凸不平的细节,如橘子,草莓,树皮等. • 并不改变物体几何,只是通过扰动法向达到效果

  8. 凹凸纹理映射 • 方法1:记录有符号数(bu,bv),用于偏移法向 • 方法2:记录高度场,用于差分计算法向。

  9. 浮雕型凹凸纹理映射(emboss bump mapping) • 最简单 • 直接计算漫射光亮度 • 不进行光照明计算 • 步骤 • 绘制半亮度图 • 绘制反色半亮度图 • 将结果和顶点光照明计算结果与纹理映射做乘积型融合操作

  10. 浮雕型凹凸纹理映射(emboss bump mapping) 原始高度图 光源在上左方向 光源在上右方向

  11. 法向映射(Normal mapping or dot3 bump mapping) • 输入法向图,记录扰动后的曲面法向 • 数据来源是高度图

  12. 法向映射(Normal mapping or dot3 bump mapping) • 给出一个模型和一个法向图 • 对每个多边形,光源向量变换到每个顶点处的局部切向空间坐标; • 对每个像素,对插值后的光源向量进行归一化; • 将光源向量与法向图中记录的法向点击,获得漫射分量; • 插值半角向量,计算高光分量; • 融合本身的纹理颜色,获得最后的效果

  13. 法向纹理映射+简化几何

  14. OGRE Demo

  15. 辐射度法向纹理

  16. 辐射度法向纹理

  17. 细节映射 • 法向纹理的来源除高度图外,也可以是物体表面的属性,如法向,颜色,材质等.这类纹理称为细节纹理(Detail texture)

  18. 创建细节纹理过程 • 将高分辨率网格简化为的分辨率网格 • 参数化低分辨率网格,建立网格和细节纹理的一一对应 • 根据高分辨率网格的表面细节填充细节纹理

  19. 反射率映射(Reflectance mapping)

  20. 环境凹凸纹理映射 • 基本原理是利用凹凸纹理扰动环境映射的纹理坐标 • 一个凹凸纹理,一个环境纹理

  21. 位移映射 • 位移映射(Displacement mapping)使用高度图来模拟曲面的扰动. • 真正改变了物体的表面几何属性,而凹凸映射仅修正了曲面的法向量.

  22. 视差映射(Parallax mapping) 绘制C时,利用视差纹理中的位移从A移到B。

  23. 视差映射

  24. 深度校正位移映射(Z-correct displacement mapping ) • 输入高度图,将象素的Z值沿相机方向位移 • 并不改变物体表面几何 • 缺点是在像素层次上修改深度值会关闭图形硬件的早期深度测试优化功能,极大地影响绘制效率。

  25. 环境纹理映射(environment mapping) • 环境映射有效模拟场景的反射现象的加速技术 • 以景物的中心为固定的视点来观察整个场景 • 将周围场景的二维图像记录在以该点为中心的简单几何物体(如球面,立方体和柱面)上,以全景图像的方式提供了其中心视点处的场景描述. 环境纹理 观察者 反射光线 物体

  26. 环境纹理映射 • 注意:并不在物体的每个点记录一个单独的纹理,而是为整个物体建立一个纹理图。 • 在反射方向存在扭曲变形现象,但是观察者并不注意。而且,对于一个大房间中的小物体,这种扭曲相当小。 • 物体不能反射自身。

  27. 环境纹理映射 • 三种重要的形式: • 立方体映射 • 球面映射 • 柱面映射 • 描述了环境纹理映射所寄存的纹理 • 决定纹理的生成方式和索引方式

  28. 实例

  29. 立方体映射 • 纹理保存在物体的立方体包围盒上。该立方体与世界坐标轴平行。 • 生成方式: • 对于立方体的每一个面,以该面为成像平面,从物体的中心绘制整个世界。 • 或者,在真实世界中以相机拍摄六副图像; • 对于物体可能处的位置,都生成一个立方体映射; • 对于新的物体所处的位置,通过插值或扭曲生成新的立方体映射。

  30. 立方体环境映射(Cube mapping) • 立方体纹理由6张不同纹理组成,每张纹理对应立方体一个面 • 立方体环境映射并不限于模拟精确的反射,也可以模拟镜面高光、漫反射和Phong光照明模型。 • 如果使用低分辨率的纹理,可以模拟粗糙的物体表面 • 局限性:当光源或场景物体的遮挡关系改变后必须重新生成

  31. 立方体映射 D3D Demo

  32. 球面映射 • 早期的球面映射版本称为Lat/Long映射(1976),它在物体中心放置一个球面。 • 改进方法: • 对每个纹理坐标(s,t), 沿-Z轴投射一根光线到球面,记录下它的反射方向的光亮度 • 等价于用一个平行投影的相机(长焦距、长距离)对一个反射球面进行成像 • 在获得球面环境纹理的同时,也获得了每个顶点的纹理坐标,从而建立物体表面顶点与球面环境纹理的对应关系(即表面参数化)。

  33. 球面环境映射(Sphere mapping)

  34. 球面映射 • 绘制时,根据顶点的纹理坐标,底层API会自动插值生成物体表面每个点的纹理坐标。 • 由于这种参数化不是保面积变换,球面环境映射将产生某些变形。 • 球面环境映射的理想状况是相机和环境物体位于无穷远处。 • 不适合于自身反射性质(它不是凸物体) • 相机与其他物体不在无穷远处时不正确 • 视点依赖性,即只适用于一个方向和一个相机

  35. 球面环境映射 • 具体使用步骤是: • (1)设置球面环境纹理; • (2)设置和打开球面环境纹理坐标的生成方式; • (3)正确设置物体表面的法向,绘制物体。

  36. 球面映射实例

  37. 柱面映射(Panaroma) • 全景图效果 • 难点:拼接 Demo

  38. 光照映射(Light mapping) • 预计算光亮度,做为光照图(Lightmap),直接记录在场景顶点上。 • 光照图只调节基纹理图的亮度

  39. 光照映射 • 通过预先计算光照并保存为纹理,从而加速光照计算: • 允许复杂的光照明计算(如阴影、辐射度) • 如何决定映射方式? • 如何生成纹理? • 如何进行实时绘制? • 原则:最小的纹理尺寸,最大化纹理重用

  40. 光照映射 • 通常需要对场景光场分别进行预计算(如光能辐射度算法),生成全局的光照信息、高光和阴影等,然后将场景中物体每个面上计算的光亮度作为纹理保存为光照图。 • 由于光照图本质上保留的是场景中光照的低频分量,因此无需逐个像素保存光亮度,光照图的分辨率可以相对较低。

  41. 局部光照计算

  42. 选择映射方式 • 难点:在预处理阶段,多边形的任意一个点必须与纹理上的某个点对应. 因此,多边形数目不能太多。 • 方法: • 将一组将近平面的多边形聚合成一个平面 • 这些多边形对应的纹理可拼成一个大的纹理 • 将纹理坐标保存在多边形的顶点上

  43. 光照纹理 光照映射造成的场景光亮度分布 最终合成场景 无光照场景

  44. 光照映射 • 艺术家或者美工人员手工简单地绘制出光照分布,主要用于模拟艺术手法的绘制效果.

More Related