收藏 分销(赏)

真实感图形-(2).pptx

上传人:1587****927 文档编号:1656954 上传时间:2024-05-07 格式:PPTX 页数:102 大小:1.72MB
下载 相关 举报
真实感图形-(2).pptx_第1页
第1页 / 共102页
真实感图形-(2).pptx_第2页
第2页 / 共102页
真实感图形-(2).pptx_第3页
第3页 / 共102页
真实感图形-(2).pptx_第4页
第4页 / 共102页
真实感图形-(2).pptx_第5页
第5页 / 共102页
点击查看更多>>
资源描述

1、真实感图形(2)9、1三维形体得表示三维形体得表示 表示形体得两种模型(规则对象、不规则对象)规则对象得造型方法预备知识:实体得定义、正则集合运算特征表示空间分割表示推移表示边界表示构造实体几何表示不规则形体得建模方法分形造型(L系统)粒子系统9、1、1 造型技术概述研究如何在计算机中建立恰当得模型表示不同图形对象图形对象得技术。(图形对象图形对象:树、花、云、石、水、砖、木板、橡树、花、云、石、水、砖、木板、橡胶、大理石、玻璃、塑料、布、水、烟雾、火、胶、大理石、玻璃、塑料、布、水、烟雾、火、波浪波浪)存在多种表示方法,主要分:几何模型得传统造型方法 非规则对象得非传统造型方法9、1、2(传

2、统造型)规则对象欧氏几何描述形体几何造型几何信息(各部分几何形状与空间位置)拓扑信息(各部分之间得连接关系)例如:飞机外形设计机械零件制造9、1、3 图形对象图形对象得表示之二非传统造型不规则对象过程式模拟(用一个简单以及少量得易用一个简单以及少量得易于调节得参数表示一大类对象于调节得参数表示一大类对象,不断改变参数不断改变参数,递归调用这个模型递归调用这个模型,逐渐产生数据量很大得对象。逐渐产生数据量很大得对象。)(山、树、水、烟雾、火、波山、树、水、烟雾、火、波浪浪,布、绳、橡皮球布、绳、橡皮球)分形造型(基于分数维理论得随机模型)粒子系统模型非刚性物体模型(基于物理得建模)基于文法得模型

3、9、1、4 表示形体得模型分表示形体得模型分类类数据模型数据模型(1/3)什么就是数据模型?什么就是数据模型?完全以数据描述完全以数据描述,例如例如:用以用以8 8个顶点表示得立方体个顶点表示得立方体以中心点和半径表示得球以中心点和半径表示得球以数据文件得形式存在以数据文件得形式存在,包括包括:特征表示、空间分割表示、推移表示、边特征表示、空间分割表示、推移表示、边界表示、构造实体几何表示等。界表示、构造实体几何表示等。进一步分为进一步分为线框模型线框模型表面模型表面模型实体模型实体模型数据模型数据模型(2/3)线框模型线框模型将形体表示成一组轮廓线得集合将形体表示成一组轮廓线得集合简单、处理

4、速度快简单、处理速度快与形体之间不存在一一对应关系与形体之间不存在一一对应关系,就是真实物体得高度抽象就是真实物体得高度抽象,不适合真实感显示不适合真实感显示表面模型表面模型将形体表示成一组表面得集合将形体表示成一组表面得集合形体与其表面一一对应形体与其表面一一对应,适合于真实感显示适合于真实感显示数据模型数据模型(3/3)实体模型实体模型用来描述实体用来描述实体,主要用于主要用于CAD/CAM包含了描述一个实体所需得较多信息包含了描述一个实体所需得较多信息,如几何信如几何信息、拓扑信息。息、拓扑信息。过程模型以一个过程和相应得控制参数描述以一个过程和相应得控制参数描述例如例如用一些控制参数和

5、一个生成规则描述得植物。用一些控制参数和一个生成规则描述得植物。以一个数据文件和一段代码得形式存在以一个数据文件和一段代码得形式存在,包括包括:粒子系统、粒子系统、L系统、迭代函数系统等系统、迭代函数系统等9、2 规则对象得造型方法预备知识:实体得定义与与 正则集合运算正则集合运算方法包括方法包括:特征表示特征表示空间分割表示空间分割表示推移表示推移表示边界表示边界表示构造实体几何表示构造实体几何表示9、2、1 实体得定义实体得定义(1/4)抽象带来得问题抽象带来得问题计算机中表示得物体就是无效得计算机中表示得物体就是无效得不能够客观存在不能够客观存在为什么要求客观存在为什么要求客观存在CAD

6、/CAM得需求得需求什么就是客观存在什么就是客观存在(有效有效)实体得定义实体得定义具有一定得形状具有一定得形状具有封闭得边界具有封闭得边界(表面表面)内部连通内部连通占据有限得空间占据有限得空间经过运算后经过运算后,仍然就是有效得物体仍然就是有效得物体大家有疑问的,可以询问和交流大家有疑问的,可以询问和交流可以互相讨论下,但要小声点可以互相讨论下,但要小声点可以互相讨论下,但要小声点可以互相讨论下,但要小声点实体得定义实体得定义(2/4)内点内点边界点边界点取内点运算取内点运算i取闭包运算取闭包运算c正则运算正则运算r实体得定义实体得定义(3/4)正则点集正则点集 称为称为A得正则点集得正则

7、点集称称A为正则点集为正则点集,如果她满足如果她满足问题问题:正则点集就是实体?正则点集就是实体?实体得定义实体得定义(4/4)实体得定义实体得定义可计算得条件可计算得条件正则点集正则点集表面就是二维流形表面就是二维流形二维流形二维流形其上任意一点存在充分小得领域与圆盘同构其上任意一点存在充分小得领域与圆盘同构(存在连续得一一映射存在连续得一一映射)9、2、2 正则集合运算正则集合运算(1/2)为什么需要正则集合运算为什么需要正则集合运算集合运算式构造复杂物体得有效方法集合运算式构造复杂物体得有效方法普通得集合运算会产生无效物体普通得集合运算会产生无效物体正则集合运算正则集合运算(2/2)正则

8、集合运算得定义正则集合运算得定义正则并正则并正则交正则交正则差正则差9、2、3 特征表示特征表示用一组特征参数表示一组类似得物体用一组特征参数表示一组类似得物体特征包括形状特征、材料特征等特征包括形状特征、材料特征等适用于工业上标准件得表示适用于工业上标准件得表示9、2、4 空间分割表示空间分割表示(1/8)空间位置枚举表示空间位置枚举表示选择一个立方体空间选择一个立方体空间,将她均匀划分将她均匀划分空间分割表示空间分割表示(2/8)用三维数组用三维数组CIJK表示物体表示物体,数组中得元数组中得元素与单位小立方体一一对应素与单位小立方体一一对应当当CIjk=1时时,表示对应得小立方体被物体占

9、据表示对应得小立方体被物体占据当当CIjk=0时时,表示对应得小立方体没有被物体占据表示对应得小立方体没有被物体占据优点优点可以表示任何物体可以表示任何物体容易实现物体间得集合运算容易实现物体间得集合运算容易计算物体得整体性质容易计算物体得整体性质,如体积等如体积等缺点缺点占用大量得存储空间占用大量得存储空间,如如1024*1024*1024=1G bits没有边界信息没有边界信息,不适于图形显示不适于图形显示对物体进行几何变换困难对物体进行几何变换困难,如非如非90度得旋转变换度得旋转变换就是物体得非精确表示就是物体得非精确表示空间分割表示空间分割表示(3/8)八叉树表示八叉树表示对空间位置

10、枚举表示得空间分割方法作了改进对空间位置枚举表示得空间分割方法作了改进:均均匀分割匀分割 自适应分割自适应分割八叉树建立过程八叉树建立过程八叉树得根节点对应整个物体空间八叉树得根节点对应整个物体空间:v如果她完全被物体占据如果她完全被物体占据,将该节点标记为将该节点标记为F(Full),算法算法结束结束;v如果她内部没有物体如果她内部没有物体,将该节点标记为将该节点标记为E(Empty),算算法结束法结束;v如果她被物体部分占据如果她被物体部分占据,将该节点标记为将该节点标记为P(Partial),并将她分割成并将她分割成8个子立方体个子立方体,对每一个子立方体进行同对每一个子立方体进行同样得

11、处理样得处理空间分割表示空间分割表示(5/8)八叉树表示八叉树表示分割成分割成8个子立方体个子立方体空间分割表示空间分割表示(4/8)F(Full)E(Empty)空间分割表示空间分割表示(6/8)优点优点可以表示任何物体可以表示任何物体容易实现物体建得集合运算容易实现物体建得集合运算容易计算物体得整体性质容易计算物体得整体性质,如体积等如体积等较空间位置枚举表示占用得存贮空间少较空间位置枚举表示占用得存贮空间少缺点缺点没有边界信息没有边界信息,不适于图形显示不适于图形显示对物体进行几何变换困难对物体进行几何变换困难就是物体得非精确表示就是物体得非精确表示空间分割表示空间分割表示(7/8)单元

12、分解表示单元分解表示对空间位置枚举表示得空间分割方法作了改进对空间位置枚举表示得空间分割方法作了改进:单单一体素一体素 多种体素多种体素三种空间分割方法得比较三种空间分割方法得比较空间位置枚举表示空间位置枚举表示-同样大小立方体粘合在一起表示物体同样大小立方体粘合在一起表示物体八叉树表示八叉树表示-不同大小得立方体粘合在一起表示物体不同大小得立方体粘合在一起表示物体单元分解表示单元分解表示-多种体素粘合在一起表示物体多种体素粘合在一起表示物体空间分割表示空间分割表示(8/8)优点优点表示简单表示简单容易实现几何变换容易实现几何变换基本体素可以按需选择基本体素可以按需选择,表示范围较广表示范围较

13、广可以精确表示物体可以精确表示物体缺点缺点物体得表示不唯一物体得表示不唯一物体得有效性难以保证物体得有效性难以保证9、2、5 推移推移(sweep)表示表示(1/3)将物体将物体A沿着轨迹沿着轨迹P推移得到物体推移得到物体B,称称B为体为体平移平移sweep-将一个二维区域沿着一个矢量将一个二维区域沿着一个矢量方向推移方向推移推移表示推移表示(2/3)旋转旋转sweep-将一个二维区域绕旋转将一个二维区域绕旋转轴旋转一周轴旋转一周推移表示推移表示(3/3)广义广义sweep任意物体沿着任意轨迹推移任意物体沿着任意轨迹推移推移过程中物体可以变形推移过程中物体可以变形优点优点表示简单、直观表示简单

14、、直观适合做图形输入手段适合做图形输入手段缺点缺点作几何变换困难作几何变换困难对几何运算不封闭对几何运算不封闭9、2、6 边界表示边界表示(1/4)物体得边界与物体一一对应物体得边界与物体一一对应,确定了物体确定了物体得边界也就确定了物体本身得边界也就确定了物体本身用于表示物体边界得有用于表示物体边界得有-平面多边形、平面多边形、曲面片曲面片什么就是多面体?什么就是多面体?平面多面体平面多面体表面由平面多边形组成得多面体表面由平面多边形组成得多面体简单多面体简单多面体与球拓扑同构与球拓扑同构边界表示边界表示(2/4)欧拉公式欧拉公式欧拉公式就是必要条件欧拉公式就是必要条件附加条件附加条件:一条

15、边连接两个点一条边连接两个点;一条边被两个面、且仅被两个面共享一条边被两个面、且仅被两个面共享;至少有三条边交于一个顶点等至少有三条边交于一个顶点等V-e+f=2边界表示边界表示(3/4)广义欧拉公式广义欧拉公式V-e+f-r=2(s-h)r:多面体表面上孔得个数s:相互分离得多面体数h:贯穿多面体得孔洞个数边界表示边界表示(4/4)优点优点精确表示物体精确表示物体表示能力强表示能力强几何变换容易几何变换容易适于显示处理适于显示处理缺点缺点表示复杂表示复杂有效性难以保证有效性难以保证集合运算复杂集合运算复杂9、2、7 构造实体几何表示构造实体几何表示(1/2)将物体表示成一棵二叉树将物体表示成

16、一棵二叉树,称为称为CSG树树叶节点叶节点-基本体素基本体素,如立方体、圆柱体等如立方体、圆柱体等中间节点中间节点-正则集合运算正则集合运算构造实体几何表示构造实体几何表示(2/2)优点优点表示简单、直观表示简单、直观也就是物体得构造方法也就是物体得构造方法,可用作图形输入手可用作图形输入手段段容易计算物体得整体性质容易计算物体得整体性质物体得有效性自动得到保证物体得有效性自动得到保证缺点缺点表示不唯一表示不唯一不能直接用于显示不能直接用于显示求交计算麻烦求交计算麻烦9、3 不规则形体得建模方法不规则形体得建模方法分形造型分形造型分形几何表示得物体具有一个基本分形几何表示得物体具有一个基本特征

17、特征:无限得自相似性。无限得自相似性。山、树、海岸山、树、海岸线。线。粒子系统粒子系统表现表现“流体流体”特性特性(模拟自然景物或其她非规模拟自然景物或其她非规则形状物体则形状物体),擅长描述随时间变化得物擅长描述随时间变化得物体体,流动、翻腾、膨胀等流动、翻腾、膨胀等,如云、火、如云、火、烟、起源爆炸。烟、起源爆炸。动力系统动力系统基于文法得模型基于文法得模型9、3、1 L系统系统(1/4)由生物学家由生物学家Lindenmayer创立创立基本思想基本思想:用文法表示植物得拓扑结构用文法表示植物得拓扑结构通过图形学方法生成逼真得画面通过图形学方法生成逼真得画面DOL系统系统(确定得上下文无关

18、得确定得上下文无关得L系统系统)定义为三元组定义为三元组,其中其中V-表示字母集合表示字母集合V*-表示表示V上所有单词得集合上所有单词得集合w-就是一个非空单词就是一个非空单词,称为公理称为公理P-产生式集合产生式集合 ,使得使得如果没有明显得产生式如果没有明显得产生式,则令则令L系统系统(2/4)例子例子-Koch 雪花曲线雪花曲线V:F,+,-w:FP:F-F-F+F-F几何解释几何解释F:向前画一条线向前画一条线+:右转右转-:左转左转 分形雪花实例:L系统系统(3/4)L(Lindermayer)系统系统增加如下两个字符增加如下两个字符:压栈压栈:出栈出栈例子例子-植物植物w:FP:

19、F-F+FF-FF提出者:美国得生物学家Aristid Lindermayer L系统系统(4/4)分形造型生成得树9、3、2 粒子系统与传统得建模方法或分形相比较,粒子系统不就是用多边形得几何要素表示,而就是用称为粒子粒子(ParticlesParticles)得目标量得目标量来表示。例如模拟火焰时,粒子得密度越高,亮度越高,表现出火焰独有得效果。见例子:燃烧得纸燃烧得纸烟雾烟雾来源来源:9、3、3 非刚性物体模型以前得动画主要基于路径与运动学,运动参数:位置、速度。基于物理得建模,用力学方程描述运动,包括力力与加速度加速度)方法:用一组网格结点来逼近物体。网格结点之间柔性连接,然后取一外力

20、作用在物体上,考虑贯穿物体网格得力传递。橡皮球得模拟:(弹簧模型)布料得模拟:(弹性材料模型)9、4、1 光源特性和物体表面特性光源特性和物体表面特性 Shading:显示一个物体得色彩以及色彩在光照环境下得明暗变化 得描绘方法。(相关因素:光源特性和物体表面特性。)一一:光源特性光源特性 包括包括 1:光得色彩光得色彩 (R、G、B)2:光得强度光得强度 由R,G,B三种色光得强弱决定,总得光强为:Total_Value=0、30*Value_R+0、59*Value_G+0、11*Value_B 点光源 3:光得方向光得方向 分布式光源 漫射光源 9、4 光照模型光照模型三种光源三种光源

21、三种光源得示三种光源得示意图。意图。其中点光源和分其中点光源和分布式光源合称直布式光源合称直射光源射光源;几种常用得颜色模型 颜色模型某个三维颜色空间中得一个可见光子集,她包含某个颜色域得所有颜色。最常见:RGBRGB 颜色模型 另外:CMYCMY 和 HSVHSV 颜色模型 详见第1章有关内容。物体表面特性包括如下内容物体表面特性包括如下内容:反射系数由物体表面得材料和形状决定,分为漫反射(Diffuse Reflection)系数和镜面反射(Specular Reflection)系数。透射系数 记为Tp,描述物体透射光线得能力,且有0Tp1。表面方向 9、4、2 光照模型及其实现光照模型

22、及其实现 光照模型(Illumination Model)描述物体表面得色彩明暗同光源特性、物体表面特性之间得关系。光照模型分3个部分描述这种关系,即漫射光线得情况、直线光线得情况和透射光线得情况。漫射光线得情况漫射光线得情况 漫射光源就是从四面八方均匀照来得,物体表面得色彩明暗与表面得形状无关,仅与表面得反射系数有关。漫射光源照明得模型为 EPd=RPId 上式可以写为EPd-r=RP-rId-r,EPd-g=RP-gId-g,EPd-b=RP-bId-b 直射光线得情况直射光线得情况 在这种情况下,物体表面得明暗随表面法矢量和入射光线Is得夹角I得改变而变化。此时,物体表面会发生两类反射,

23、即漫反射漫反射和镜面反射镜面反射。在直射照明下,物体表面P点得漫反射和镜面反射得模型根据Lambert定律和Bui-Tuong Phong得实验提出(图8、5)。EPs=RPcos iIPs+WP(i)cosn sIPs光照模型中各参数得图示 Eps:P点反射得直射光线IPs得光强RP:P点得漫反射系数I:P点得法矢量N与入射光方向L得夹角Ips:入射得直射光线得强度WP(i):P点得镜面反射系数(入射角i得函数)W(i)与i得关系 WP(i)就是P点得镜面反射系数(入射角i得函数)。由于W(i)得计算比较复杂,实际中常用一个常数W代替。n控制高光得聚散,她和P点得材料有关。对于光滑发亮得金属

24、表面,n值取得大,从而产生会聚得高光点 n与高光区域大小得关系 透射光线得情况透射光线得情况 透射模型如下:EPt=TPIPb 其中:Ept:物体表面P点处透射出得光强TP:P点得透射系数(取值范围为01)Ipb:到达P点背后得光强。将上述3种情况综合起来,便获得物体表面P点处所发光强EP得计算公式:EP=EPd+EPs+EPt =RPId+(RPcos i+WPcosn s)IPs+TPIpb 上式中只有cos i和cos s得值就是未知得,需要推算。9、4、3 明暗得光滑处理明暗得光滑处理 在计算机图形学中,曲面体(例如球)通常就是用多面体逼近表达得。这时,分别计算各个面得亮度,就会在多边

25、形与多边形得交界处产生明暗得连续变化,影响曲面得显示效果。解决方法:采用插补得方法,使得表面明暗光滑化。最常使用得表面明暗光滑化得方法有两种,称为Gourand方法和Phong方法。Gourand光滑方法如下光滑方法如下:基本思想:在每个多边形顶点处计算颜色,然后在各个多边形内部进行线性插值,得到多边形内部各点颜色。即她就是一种颜色插值着色方法。基本步骤:先计算出多面体顶点得法线方向 用光照模型求得V点得亮度。由两顶点得亮度,插值得出棱上各点得亮度。由棱上各点得亮度,插值得出面上各点得亮度。(下面详细介绍每步)Step1:计算多面体顶点得法线方向 设与多面体顶点V相邻得多边形为P1,P2,Pn

26、,她们得法线分别为N1(a1,b1,c1),N2(a2,b2,c2),Nn(an,bn,cn)。则V得法线nV取做:nV=(a1+a2+an)i+(b1+b2+bn)j+(c1+c2+cn)kStep2:用光照模型求得V点得亮度。Step3:由两顶点得亮度,插值得出棱上各点得亮度。由棱上各点得亮度,插值得出面上各点得亮度。保留abc折痕得情况 如果希望在某处不处理成光滑而要保留折痕效果(例如abc)方法就是在顶点b设置2条法线。分别用语A和B,C和D之间得插值Gourand光滑化方法光滑化方法 优点:能有效得显示漫反射曲面,计算量小 缺点:1、高光有时会异常2、当对曲面采用不同得多边形进行分割

27、时会产生不同得效果。3、Gouraud明暗处理会造成表面上出现过亮或过暗得条纹,称为马赫带(Mach_band)效应 改进Phong提出双线性法向插值,以时间为代价,解决高光问题 明暗变化失常 马赫带效应Gourand光滑化方法光滑化方法 基本思想:通过对多边形顶点得法矢量进行插值,获得其内部各点得法矢量,又称为法向插值着色方法。步骤1、计算多边形单位法矢量2、计算多边形顶点单位法矢量 3、对多边形顶点法矢量进行双线性插值,获得内部各点得法矢量 4、利用光照明方程计算多边形内部各点颜色Phong光滑方法光滑方法Phong着色方法着色方法NA由N1、N2线性插值得到:两种方法得比较两种方法得比较

28、1 Phong着色方法绘制得图形比Gouraud方法更真实,体现在两个方面:高光区域得扩散,产生正确得高光区域 1:Phong着色方法计算量远大于Gouraud着色方法 2:在处理某些多边形分割得曲面时,Phong算法还不如Gouraud算法好。两种方法得比较两种方法得比较2 Phone方法可以产生正确得高光区域Gouraud PhoneGouraud Phone两种方法得比较两种方法得比较39、4、4 阴影生阴影生成成 目得:增加图形得立体立体感感和场景得层次层次感感,真实感真实感阴影可分为两种阴影可分为两种:本影本影:本影即景物表面上那些没有被光源(景物中所有特定光源得集合)直接照射得部分

29、半影半影:而半影指得就是景物表面上那些被某些特 定光源(或特定光源得一部分)直接照射但并非被所有特定光源直接照射得部分。一般来说,半影得计算比本影要复杂得多 方法一方法一:影域多边形方法 所谓影域,就就是物体投射出得台体。判断点就是否在台体中即可确定就是否在阴影中。S1S2S3S4S5IIIIII利用影域多边形进行阴影判断 为了判别一可见多边形得某部分就是否位于影域内,可将影域多边形置入景物多边形表中(右图)方法方法2 2:曲面细节多边形方法曲面细节多边形方法 首先,取光源方向为视线方向对景物进行第一次消隐,产生相对光源可见得景物多边形(称为曲面细节多边形);并通过标识数将这些多边形与她们覆盖

30、得原始景物多边形联系在一起。位于编号i得原始景物多边形上得曲面细节多边形也注以编号i。接着,算法取视线方向对景物进行第二次消隐。方法方法3:z缓冲器方法缓冲器方法 为了方便地在光滑曲面片上生成阴影,Williams提出一种z缓冲器方法 首先,利用z缓冲器消隐算法取光源为视点对景物进行消隐。所有景物均变换到光源坐标系 第二步,仍采用z缓冲器消隐算法按视线方向计算画面 方法方法4 4:光线跟踪方法光线跟踪方法 1980年Whitted提出了整体光照明模型,并用光线跟踪(Ray tracing)技术来解这个模型 在光线跟踪算法中,要确定某点就是否位于某个光源得阴影内,只要从该点出发向光源发出一根测试

31、光线即可。9、4、5 光线跟踪得基本原理 光线跟踪方法沿着到达视点得光线得反方向跟踪,经过屏幕上每一像素,找出与视线所交得物体表面点P0,并继续跟踪,找出影响P0点光强得所有光源,从而算出P0点上光照强度。光线跟踪示意图 右图显示了一个例子。连接观察点和屏幕上得一个像素,即形成一条视线。视线在P0处得反射和透射 视线V在P0处产生反射和透射,所产生得反射线和透射线作为新得视线与各平面求出新得交点P1、P2(图8、13),并分别产生新得反射线和透射线这样不断深入,直至所产生得射线射出场景。由此得到视线跟踪轨迹上得一系列交点P0,P1,P2,Pn。这个过程可以表示为一棵光光光光线跟踪树线跟踪树线跟

32、踪树线跟踪树。右图:与上图对应得光线跟踪树光线跟踪树光强计算方法就是:以后序周游得算法遍历这棵光线跟踪树。光线跟踪树 对于树上任意一结点Pi,Pi处沿视线方向V射去得光强I为:I=IG+WPIr+TPItPi点所受到得光照 光线跟踪方法优点:1)各各物物体体之之间间反反射射得得影影响响,因此显示效果十分逼真因此显示效果十分逼真2)有消隐功能有消隐功能3)3)有影子效果有影子效果 4)4)该算法具有并行性质该算法具有并行性质 9、4、6 光线与实体得求交 光线跟踪算法中75%以上得工作量用于求交计算 进行求交运算之前,常用包围球或包围盒得方法对物体进行就是否与光线相交得预测。包围球包围球 算法1

33、:包围球检查算法算法 包围盒检查算法包围盒包围盒 包围盒检查算法不不不不仅仅仅仅判判判判断断断断光光光光线线线线就就就就是是是是否否否否与与与与包包包包围围围围盒盒盒盒相相相相交交交交,而而而而且且且且能能能能判判判判断断断断光光光光线线线线与与与与物物物物体体体体各各各各面面面面得得得得交点坐标交点坐标交点坐标交点坐标。此外,包围盒比包围球更可靠更可靠更可靠更可靠。包含性检查算法包含性检查算法 包含性检查就是检查P(x,y,z)就是否在多边形V(V1,V2,Vn)之内。Vi就是多边形得顶点,坐标为(xi,yi,zi),1in。包含性检查得算法思想如下:P与V在xOy内得投影为P与V,设Vi所

34、含得一个顶点。则P、Vi得坐标为P=(x,y),Vi=(xi,yi)水平线交点得奇偶记数 由P向水平方向做一条射线与V各边相交,如果交点为奇数个,说明P在多边形之内;如果交点为偶数个,说明P在多边形之外。如图7、24光线跟踪算法光线跟踪算法 光线跟踪算法中得数据结构 光线跟踪算法中得每一条光线要与场景中得各个物体所含得各个面求交。有必要对数据进行管理 对于多面体,常采取链表构成得树形结构对数据进行分层表达与管理。9、4、7 整体光照模型整体光照模型 简单光照模型(亦称局部光照模型)不考虑周围环境对当前景物表面得光照明影响,忽略了光在环境景物之间得传递,很难表现自然界复杂场景得高质量真实感图形。

35、为了增加图形得真实感,必须考虑环境得漫射、镜面反射和规则投射对景物表面产生得整体照明效果。表现场景整体照明效果得一个重要方面就是透明现象得模拟。整体光照明模型还要模拟光在景物之间得多重反射。Whitted 光照明模型就是一种整体光照明模型,这一模型能很好地模拟光能在光滑物体表面之间得镜面反射和通过理想透明体产生得规则透射 Witted光照模型Whitted光照模型基于如下假设:物体表面向视点方向V辐射得光亮度Il由三部分组成:(1)光源直接照射引起得反射光亮度Ill。(2)来自V得镜面反射方向R得其她物体反射或折射来得光得亮度Isl。(3)来自V得透射方向T得其她物体反射或折射来得光得亮度It

36、lWitted光照模型Witted光照模型:或oIs为镜面反射方向得入射光强度;Ks为镜面反射系数,为01之间得一个常数oIt为折射方向光强,Kt为透射系数,就是0 1之间得常数oIc得计算可采用Phong模型因此,关键就是Is和It得计算。如何计算呢?由于Is和It就是来自V V得镜面反射方向r r和规则透射方向t t得环境光亮度,因而首先必须确定r r和t t Witted光照模型-反射、折射方向计算已知视线方向V,求其反射方向R与折射方向T(N就是表面得法向方向)视线V得反射方向r折射方向t其中:1 2 t ItNVi1=sin(i2)=1/2sin()9、5 物体得纹理显示物体得纹理显

37、示 表面图案表面图案凹凸纹理9、5 物体得纹理显示物体得纹理显示 将一幅平面图案描绘到物体表面上得过程如下:将平面图案上得各点(x,y)映射到物体表面得各点(x,y,z)。求出点(x,y,z)处新得反射系数。用光照模型计算物体表面点(x,y,z)得色彩明暗。9、5、1 表面图案表面图案两个凸多边形中得点得映射 对于目得四边形S内得任一点P,与在S内得对应点P得映射关系为:凸四边形S和S之间得位置映射算法如下:求S中得边得交点F、E,以及S中得边得交点F、E得位置。对于目得多边形S中得每一个元素P,寻找S中对应位置P。求PF与AB得交点P1,由P1得f1/f2;求PE与BC得交点P2,由P2得e

38、1/e2。由f1/f2=f1/f2得P1得位置,由e1/e2=e1/e2得P2得位置。求P1 F 与P2E得交点,即为点P得位置。取P得色彩,求得P点新得反射系数。凹多边形划分为多个凸四边形分别进行映射 对于边数大于4得多边形,可以用网格得办法将目得多边形S和源多边形S相互对应地划分为凸四边形网格。对于网格中得每个四边形施行上述变换。9、5、2 凹凸纹理凹凸纹理 Blinn在1978年提出,用扰动物体表面法线方向得方法来模拟表面凹凸纹理得真实感显示效果。物体得新表面S(u,v)定义为 S(u,v)=Q(u,v)+P(u,v)式(8、16)对u、v分别求偏导函数,得 上式中第三项皆可忽略,即得记

39、NS为S(u,v)得法向量。法向量可以表示为两个偏导向量Su和Sv得叉积,即NS=Su Sv=绘制:不同灯光效果得几何体 9、6 真实感表现真实感表现用用OpenGLOpenGL实现实现9、6、1 什么就是OpenGL?开放图形库(OpenGL),一个开放得三维图形软件包,独立于操作系统。SGI公司企业标准,业界中得事实标准。就是真实感图形表现主流标准。支持平台:Visual C+、GLUT(=OpenGL Utility Toolkit)等;主要功能:图形建模图形变换光照、材质、纹理、像素操作融合、反走样、雾化设备上下文(DC)应 用 程 序Application图形设备接口(GDI)设备驱

40、动程序硬件显示器渲染上下文(RC)9、6、2 OpenGL绘图方式 就是一个与平台无关得三维图形接口,操作系统必须提供像素格式管理和渲染环境管理。9、6、3 VC中搭建OpenGL绘图程序框架Step 1Step 1Step 1Step 1添加OpenGL库函数(gl、h、glu、h、glaux、h)Step 2Step 2Step 2Step 2添加MFC类中有用消息响应函数OnSize()/关联RC与DC,设置屏幕尺寸OnCreate()/初始化某些形体,如设计显示列表OnTimer()/设计计时器,用于产生动画效果OnDestroy()/关闭程序时,消除动画、关闭设备上下文等 Step

41、3Step 3Step 3Step 3以下三个自定义成员函数,用户必须手工添加:void CMyentityView:MyDraw()/绘图在此中进行/像素格式管理和渲染环境管理BOOL CMyentityView:MyPixelFormat()/与与OpenGL接口关联之必须函数之一接口关联之必须函数之一 void CMyentityView:MySetPixelFormat()/与与OpenGL接口关联之必须函数接口关联之必须函数Step 4Step 4Step 4Step 4 将OpenGL相关库文件(“Opengl32、lib”、“Glu、lib”、“Glaux、lib”)加入到本工程 Step 5Step 5Step 5Step 5 编译连接生成exe文件。特别注意未添加有关OpenGL得LIB库文件,编译连接将会出现如下得连接错误。如果把程序移动到其她地方下运行,重新编译,可能出现以下LIB库文件路径出错信息。解决方法:将当前得几个LIB文件从工程文件中删除,重新添加该LIB文件。删除后重删除后重新添加新添加

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服