【XJTUSE计算机图形学】第四章 真实感图形学(3)——纹理及纹理映射

【XJTUSE计算机图形学】第四章 真实感图形学(3)——纹理及纹理映射

本节了解即可

简单光照明模型的缺陷

只能模拟光滑景物表面:

只考虑表面法向的变化;

假设表面反射系数为常数。

如何解决计算机生成真实感图象缺乏现实物体表面细节的问题

引入纹理,增强各种光照明模型生成图像的真实感。

纹理:物体表面的细小结构。

纹理:

最早的工作:Catmull 74年的博士论文,是曲面分割方法中的副产品[Cat74];

可以较好地表达模型表面的细节,而无需考虑其它(几何和材质)细节,使景物更真实。

常见的纹理:

木材表面的木纹;

建筑物墙壁上的装饰图案;

桔子皮表面的皱纹。

纹理概述

使用纹理需要考虑的三个问题:

怎样才能产生纹理效果;

如何定义纹理;

如何进行映射。

1️⃣ 怎样才能产生纹理效果?

image-20220215220218538

改变反射系数来改变物体的颜色;

改变物体表面的法向量。

2️⃣ 纹理定义:

图像纹理:将纹理图案映射到三维物体表面,绘制物体表面上一点时,采用相应纹理图案中相应的颜色。

函数纹理:用数学函数定义简单的纹理图案;

用数学函数定义随机高度场,生成表面粗糙纹理。

3️⃣ 映射:把纹理图象值映射到三维物体表面的技术

图像纹理:建立二维纹理坐标与三维物体坐标之间的对应关系;

几何纹理:如何扰动法向量。

三个空间

纹理空间:纹理通常定义在二维空间(u,v)中的一个矩形区域;

景物空间:物体表面是在三维空间(x,y,z)中的一个曲面,或参数空间 (s∈[0,1],t∈[0,1]),为二维空间的一个矩形区域;

图象空间,图象空间依赖于显示器的分辨率,例如,Nx∈[0,1024],Ny∈[0,768],也是二维空间的一个矩形区域。

二维纹理映射

颜色纹理:实际上是二维数组,元素是一些颜色值(纹理元素或纹理像素)image-20220215220605696

每个纹理像素在纹理空间中都有一个唯一的地址;

该地址可被认为是一个列和行的值,分别由u和v来表示。

定义方法

1️⃣ 连续法——函数纹理

用数学函数解析地表达,函数的定义域就是纹理空间。

2️⃣ 离散法——图像纹理

用各种数字化图像来离散定义;

纹理空间坐标系中表示光亮度值的矩形数组:

程序生成;

扫描输入;

通过交互式系统绘制得到。

合成纹理

根据给定一个图像示例,合成一种新的纹理;

由于计算机视觉和图形学领域的许多学者均关注于合成纹理方法的研究,因此出现了许多实用的算法。

在计算机图形学中,纹理合成方法可分为两类:

基于像素点的纹理合成方法;

主体思想:逐像素点合成新的纹理图像,其中每个像素点由其周围的像素决定(例如33,55),根据这些周围像素点从原始图像中以最相似的原则从给定的图像示例搜索获得的像素点作为所需的像素点

image-20220215220829824

基于图像块的纹理合成方法。

基于像素点的纹理合成方法计算代价大,通过图像块代替单个像素点的方式,改进纹理合成方法;

Graph-Cut[Kwatra03]是其中一种最重要的方法,它具有非常优越的性能;

选择图像块的原则类似与选择像素点的原则,即仍然基于最相似原则。

image-20220215220856736image-20220215220914228

映射

纹理映射的实质是建立两个映射关系

从纹理空间到景物空间的映射;

再到屏幕空间的映射。

image-20220215221021049

映射方法

建立物体空间坐标(x,y,z)和纹理空间坐标(u,v)之间的对应关系;

对物体表面进行参数化,反求出物体表面的参数后,根据(u,v)得到该处的纹理值,并用此值取代光照明模型中的相应项,实现纹理映射;

圆柱面映射球面映射是两个经常使用的映射方法。

圆柱面映射

圆柱面的参数方程

image-20220215221059231

圆柱面上一点(x,y,z)的参数即纹理坐标:

image-20220215221107022

image-20220215221120296
球面映射

球面参数方程

image-20220215221134999

球面上一点(x,y,z)的参数即纹理坐标

image-20220215221141089

image-20220215221150306

滤波

多个纹理元素只覆盖一个像素单元

最简单的解决方法是点取样,使用最邻近纹理元素:把当前象素单元的最中心所对应的纹理空间的点的值,作为象素的纹理值;这种方式会导致严重的走样

image-20220215221253171

对纹理进行放大,由于采样区域的局限性,所获取的纹理样本通常为小块纹理,将导致映射后表面纹理模糊不清;

若采用重复映射技术,则可能出现表面纹理接缝走样等问题。

image-20220215221317992

为了得到比较合理的像素颜色值

线性滤波器;

Mipmapping(各向同性滤波);

Ripmapping(各向异性滤波)

几何纹理

桔子的模型:

借用图像纹理的思路,将真实桔子的照片贴到球面上模拟桔子;

如果移动了光源或旋转了对象,看到的是桔子的模型的图像,而不是真实桔子的图像;

真实桔子的特征是在表面上有很多小形状变化。

图像纹理不能模拟形状的变化

几何纹理

1978年,Blinn提出产生几何纹理,模拟凸凹不平的物体表面的方法(凹凸映射,Bump mapping)

基本思想:生成图像时,对曲面的法向量进行扰动。

对景物表面各采样点位置作微小的扰动,改变表面的微观几何形状,引起景物表面法向量的扰动。

景物表面光亮度是法向量的函数:法向量的扰动导致表面光亮度的突变,产生表面凹凸不平的真实效果。

设物体表面上任意一点P(u,v)沿该点处的法向量方向位移F(u,v)个单位长度(N附加一微小增量),从而生成一张新的表面

image-20220215221515065

新法向量的计算:

通过对两个偏导数求叉积得到:

image-20220215221542900

F相对很小, FuFv忽略不计,有:

image-20220215221547725

几何纹理的实现

扰动后的法向量单位化,用于计算曲面的明暗度,产生凹凸不平的几何纹理;

几何纹理函数:用二维数组记录各象素的值,图案中较暗颜色对应较小F值,较亮颜色对应较大F值;

F的偏导数的计算,可以用中心差分实现。

image-20220215221617292

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
第1章绪论 1.1计算机图形学及其相关概念 1.2计算机图形学的发展 1.2.1计算机图形学科的发展 1.2.2图形硬件设备的发展 1.2.3图形软件的发展 1.3计算机图形学的应用 1.3.1计算机辅助设计与制造 1.3.2计算机辅助绘图 1.3.3计算机辅助教 1.3.4办公自动化和电子出版技术 1.3.5计算机艺术 1.3.6在工业控制及交通方面的应用 1.3.7在医疗卫生方面的应用 1.3.8图形用户界面 1.4计算机图形学研究动态 1.4.1计算机动画 1.4.2地理信息系统 1.4.3人机交互 1.4.4真实感图形显示 1.4.5虚拟现实 1.4.6科计算可视化 1.4.7并行图形处理 第2章计算机图形系统及图形硬件 2.1计算机图形系统概述 2.1.1计算机图形系统的功能 2.1.2计算机图形系统的结构 2.2图形输入设备 2.2.1键盘 2.2.2鼠标器 2.2.3光笔 2.2.4触摸屏 2.2.5操纵杆 2.2.6跟踪球和空间球 2.2.7数据手套 2.2.8数字化仪 2.2.9图像扫描仪 2.2.10声频输入系统 2.2.11视频输入系统 2.3图形显示设备 2.3.1阴极射线管 2.3.2CRT图形显示器 2.3.3平板显示器 2.3.4三维观察设备 2.4图形显示子系统 2.4.1光栅扫描图形显示子系统的结构 2.4.2绘制流水线 2.4.3相关概念 2.5图形硬拷贝设备 2.5.1打印机 2.5.2绘图仪 2.6OpenGL图形软件包 2.6.1OpenGL的主要功能 2.6.2OpenGL的绘制流程 2.6.3OpenGL的基本语法 2.6.4一个完整的OpenGL程序 第3章用户接口与交互式技术 3.1用户接口设计 3.1.1用户模型 3.1.2显示屏幕的有效利用 3.1.3反馈 3.1.4一致性原则 3.1.5减少记忆量 3.1.6回退和出错处理 3.1.7联机帮助 3.1.8视觉效果设计 3.1.9适应不同的用户 3.2逻辑输入设备与输入处理 3.2.1逻辑输入设备 3.2.2输入模式 3.3交互式绘图技术 3.3.1基本交互式绘图技术 3.3.2三维交互技术 3.4OpenGL中橡皮筋技术的实现 3.4.1基于鼠标的实现 3.4.2基于键盘的实现 3.5OpenGL中拾取操作的实现 3.6OpenGL的菜单功能 第4章图形的表示与数据结构 4.1基本概念 4.1.1基本图形元素 4.1.2几何信息与拓扑信息 4.1.3坐标系 4.1.4实体的定义 4.1.5正则集合运算 4.1.6平面多面体与欧拉公式 4.2三维形体的表示 4.2.1多边形表面模型 4.2.2扫描表示 4.2.3构造实体几何法 4.2.4空间位置枚举表示 4.2.5八叉树 4.2.6BSP树 4.2.7OpenGL中的实体模型函数 4.3非规则对象的表示 4.3.1分形几何 4.3.2形状语法 4.3.3粒子系统 4.3.4基于物理的建模 4.3.5数据场的可视化 4.4层次建模 4.4.1段与层次建模 4.4.2层次模型的实现 4.4.3OpenGL中层次模型的实现 第5章基本图形生成算法 5.1直线的扫描转换 5.1.1数值微分法 5.1.2中点Bresenham算法 5.1.3Bresenham算法 5.2圆的扫描转换 5.2.1八分法画圆 5.2.2中点Bresenham画圆算法 5.3椭圆的扫描转换 5.3.1椭圆的特征 5.3.2椭圆的中点Bresenham算法 5.4多边形的扫描转换与区域填充 5.4.1多边形的扫描转换 5.4.2边缘填充算法 5.4.3区域填充 5.4.4其他相关概念 5.5字符处理 5.5.1点阵字符 5.5.2矢量字符 5.6属性处理 5.6.1线型和线宽 5.6.2字符的属性 5.6.3区域填充的属性 5.7反走样 5.7.1过取样 5.7.2简单的区域取样 5.7.3加权区域取样 5.8在OpenGL中绘制图形 5.8.1点的绘制 5.8.2直线的绘制 5.8.3多边形面的绘制 5.8.4OpenGL中的字符函数 5.8.5OpenGL中的反走样 第6章二维变换及二维观察 6.1基本概念 6.2基本几何变换 6.2.1平移变换 6.2.2比例变换 6.2.3旋转变换 6.2.4对称变换 6.2.5错切变换 6.2.6二维图形几何变换的计算 6.3复合变换 6.3.1二维复合平移变换和比例变换 6.3.2二维复合旋转变换 6.3.4其他二维复合变换 6.3.5相对任一参考点的二维几何变换 6.3.6相对于任意方向的二维几何变换 6.3.7坐标系之间的变换 6.3.8光栅变换 6.3.9变换的性质 6.4二维观察 6.4.1基本概念 6.4.2?用户坐标系到观察坐标系的变换 6.4.3?窗口到视区的变换 6.5?裁剪 6.5.1?点的裁剪 6.5.2直线段的裁剪 6.5.3多边形的裁剪 6.5.4其他裁剪 6.6OpenGL中的二维观察变换 第7章三维变换及三维观察 7.1三维变换的基本概念 7.1.1几何变换 7.1.2三维齐次坐标变换矩阵 7.1.3平面几何投影 7.2三维几何变换 7.2.1三维基本几何变换 7.2.2三维复合变换 7.3三维投影变换 7.3.1正投影 7.3.2斜投影 7.4透视投影 7.4.1一点透视 7.4.2二点透视 7.4.3三点透视 7.5观察坐标系及观察空间 7.5.1观察坐标系 7.5.2观察空间 7.6三维观察流程 7.6.1用户坐标系到观察坐标系的变换 7.6.2平行投影的规范化投影变换 7.6.3透视投影的规范化投影变换 7.7三维裁剪 7.7.1关于规范化观察空间的裁剪 7.7.2齐次坐标空间的裁剪 7.8OpenGL中的变换 7.8.1矩阵堆栈 7.8.2模型视图变换 7.8.3投影变换 7.8.4实例 第8章曲线与曲面 8.1基本概念 8.1.1曲线/曲面数描述的发展 8.1.2曲线/曲面的表示要求 8.1.3曲线/曲面的表示 8.1.4插值与逼近 8.1.5连续性条件 8.1.6样条描述 8.2三次样条 8.2.1自然三次样条 8.2.2Hermite插值样条 8.3Bezier曲线/曲面 8.3.1Bezier曲线的定义 8.3.2Bezier曲线的性质 8.3.3Bezier曲线的生成 8.3.4Bezier曲面 8.4B样条曲线/曲面 8.4.1B样条曲线 8.4.2B样条曲线的性质 8.4.3B样条曲面 8.5有理样条曲线/曲面 8.5.1NURBS曲线/曲面的定义 8.5.2有理基函数的性质 8.5.3NURBS曲线/曲面的特点 8.6曲线/曲面的转换和计算 8.6.1样条曲线/曲面的转换 8.6.2样条曲线/曲面的离散生成 8.7OpenGL生成曲线/曲面 8.7.1Bezier曲线/曲面函数 8.7.2GLU中的B样条曲线/曲面函数 第9章消隐 9.1深度缓存器算法 9.2区间扫描线算法 9.3深度排序算法 9.4区域细分算法 9.5光线投射算法 9.6BSP树 9.7多边形区域排序算法 9.8OpenGL中的消隐处理 第10章真实感图形绘制 10.1简单光照模型 10.1.1环境光 10.1.2漫反射光 10.1.3镜面反射光 10.1.4光强衰减 10.1.5颜色 10.2基于简单光照模型的多边形绘制 10.2.1恒定光强的多边形绘制 10.2.2Gouraud明暗处理 10.2.3Phong明暗处理 10.3透明处理 10.4产生阴影 10.5模拟景物表面细节 10.5.1用多边形模拟表面细节 10.5.2纹理的定义和映射 10.5.3凹凸映射 10.6整体光照模型与光线追踪 10.6.1整体光照模型 10.6.2Whitted光照模型 10.6.3光线跟踪算法 10.6.4光线跟踪反走样 10.7 OpenGL中的光照与表面绘制函数 10.7.1 OpenGL点光源 10.7.2 OpenGL全局光照 10.7.3 OpenGL表面材质 10.7.4 OpenGL透明处理 10.7.5 OpenGL表面绘制 10.7.6 实例 10.8 OpenGL中的纹理映射
计算机图形学pdf 内容可copy 适合要习开发3d游戏的朋友们习 希望对大家有所帮助 目录: 第1章基本图形的生成 1.1 直线 1.1.1 生成直线的DDA 算法 1.1.2 生成直线的中点算法 1.1.2 生成直线的Bresenham算法 1.1.3 程序设计案例 1.2 圆 1.2.1 DDA 算法 1.2.2 Bresenham算法 1.2.3 程序设计案例 1.3 椭圆 1.4 区域填充 1.4.1 扫描线填充 1.4.2 种子填充 1.4.3 程序设计案例 1.5 字符的生成 1.6 图形裁剪 1.6.1 线裁剪 1.6.2 多边形裁剪 1.6.3 字符裁剪 1.6.4 裁剪程序设计案例 1.7 Visual C++中基本绘图函数 1.8 课后练习 第 2 章二维图形 2.1 用户坐标到屏幕坐标的变换 2.1.1 窗口到视口的变换内容 2.1.2 窗口区到视图区的坐标变换 2.2 几何变换 2.1.1 基本变换 2.1.2 复合变换 2.1.3 几何变换程序设计案例 2.4 平面曲线图 2.4.1 正叶线 2.4.2 正叶线蝴蝶结 2.5 平面曲线程序设计案例 2.6 课后练习 第 3 章图形交互技术 3.1 用户接口设计 3.2 逻辑输入设备与输入处理 3.2.1 逻辑输入设备 业搜---www.yeaso.com CAD教育网制作www.cadedu.com 《计算机图形学原理及算法教程》(Visual C++版)和青芳清华大出版社出版 3.2.2 输入模式 3.3 交互式绘图技术 3.4 交互技术程序设计案例 3.5 课后练习 第 4 章简单 CAD 绘图系统开发实例 4.1 计算机图形学绘图基础 4.1.1 Visual C++开发系统基本绘图知识 4.1.2 计算机图形学会图系统设计基本原则 4.1.3 图形程序设计步骤 4.1.4 在Visual C++集成开发环境下程序的调试 4.1.5 计算机程序结构设计基础 4.1.6 绘图程序设计基本方法 4.1.6.1 图形层次结构和程序模块结构 4.1.6.2 面向对象程序设计 4.1.6.3 绘图子程序和主程序 4.1.6.4 编程绘图方法 4.2 图形的数据结构 4.2.1 图形信息的分类 4.2.2 图形数据结构 4.2.3 计算机对数据的管理—数据文件 4.2.4 图形数据的存储状态 4.2.5 动态文件数据结构的组织原则 4.2.6 简单CAD 绘图系统编程实例中的数据结构 4.2.6.1 图形元素基类的组织 4.2.6.2 组织图形类系统文档 4.2.6.3 增加图形元素 4.2.6.4 实现各类图形的绘制 4.2.6.5 保存图形数据到文档 4.3 简单CAD 绘图系统功能简介 4.3.1 简单CAD 绘图系统运行界面 4.3.2 简单CAD 绘图系统功能 第5章三维图形 5.1 三维图形几何变换矩阵 5.2 三维图形基本变换 5.2.1 平移变换矩阵 5.2.2 比例变换矩阵 5.2.3 旋转变换矩阵 5.2.4 对称变换 5.2.5 错切变换 5.3 图形的投影变换 5.3.1 投影变换分类 5.3.2 平行投影 5.3.2.1 正平行投影(三视图) 5.3.2.2 斜平行投影 业搜---www.yeaso.com CAD教育网制作www.cadedu.com 《计算机图形学原理及算法教程》(Visual C++版)和青芳清华大出版社出版 5.3.2.3 透视投影 5.4 三维变换程序设计案例 5.5 课后练习 第 6 章曲线与曲面 6.1 曲线曲面参数表示的基础知识 6.1.1 非参数表示和参数表示 6.1.2 参数表示的基本特征 6.1.3 曲线段之间的连续性 6.1.4 曲线曲面设计中的几个概念 6.2 常用参数曲线 6.2.1 一般规则空间曲线 6.2.2 Bezier 曲线 6.2.3 B 样条曲线 6.3 参数曲面 6.3.1 函数式曲面 6.3.2 旋转曲面 6.4 常用曲面 6.4.1 双曲线曲面 6.4.2 Bezier 曲面 6.4.3 B 样条曲面 6.5 曲面与曲线程序设计案例 6.6 课后练习 第 7 章几何造型 7.1 实体的表示模型 7.1.1 形体的边界表示模型 7.1.2 构造表示 7.1.3.边界表示 7.1.3.1 欧拉操作 7.1.3.2 集合运算 7.2 求交分类 7.2.1 求交分类 7.2.2 基本的求交算法 7.2.2.1 线与线的求交计算 7.2.2.2 线与面的求交计算 7.2.2.3 曲面与曲面的求交 7.3 图形相交-相切程序设计案例 7.4 非传统造型技术 7.4.1 基本概念 7.4.2 分形造型对模型的基本要求 7.4.3 分形造型的常用模型 7.4.4 分数维图形应用 7.5 分形造型程序设计案例 7.6 课后练习 业搜---www.yeaso.com CAD教育网制作www.cadedu.com 《计算机图形学原理及算法教程》(Visual C++版)和青芳清华大出版社出版 第 8 章消隐技术 8.1 线消隐 8.2 面消隐 8.2.1 区域排序算法 8.2.2 深度缓存(Z-buffer)算法 8.2.3 扫描线算法 8.3 消隐 8.4 消隐技术程序设计案例 8.5 课后练习 第 9 章真实感图形绘制 9.1 颜色模型 9.1.1 CIE 色度图 9.1.2 常用的颜色模型 9.2 简单光照明模型 9.2.1 Phong 光照明模型 9.3 局部光照明模型 9.3.1 局部光照明模型 9.4 光透射模型 9.4.1 透明效果的简单模型 9.4.2 Whitted 光透射模型 4.4.3 Hall 光透射模型 9.4.4 简单光反射透射模型 9.5 纹理纹理映射 9.5.1 纹理的概述 9.6 整体光照明模型 9.6.1 光线跟踪算法 9.6.2 辐射度方法 9.7 真实感图形程序设计案例 9.8 课后练习 第 10 章计算机动画 10.1计算机动画概述 10.2计算机动画的应用领域 10.3 计算机动画的分类和原理 10.4 目前计算机动画面临的问题 10.5 计算机动画程序设计案例 10.5.1 帧动画 10.5.1 实时动画 10.6 练习题

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

雨落俊泉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值