真实感图形 授课教师: 单位:.

Slides:



Advertisements
Similar presentations
2.6 隐函数微分法 第二章 第二章 二、高阶导数 一、隐式定义的函数 三、可微函数的有理幂. 一、隐函数的导数 若由方程 可确定 y 是 x 的函数, 由 表示的函数, 称为显函数. 例如, 可确定显函数 可确定 y 是 x 的函数, 但此隐函数不能显化. 函数为隐函数. 则称此 隐函数求导方法.
Advertisements

精品课程《解析几何》 第三章 平面与空间直线.
§3.4 空间直线的方程.
一、曲面及其方程 二、母线平行于坐标轴的柱面方程 三、以坐标轴为旋转轴的旋转曲面 四、小结
第八章 空间解析几何与向量代数 第一部分 向量代数 第二部分 空间解析几何 在三维空间中: 空间形式 — 点, 线, 面 数量关系 —
第六章 空间解析几何.
《解析几何》 -Chapter 3 §7 空间两直线的相关位置.
第六节 曲面与空间曲线 一、曲面及其方程 二、 柱 面 三、 旋转曲面 四、 二次曲面 五、 空间曲线的方程.
第八章 向量代数 空间解析几何 第五节 空间直线及其方程 一、空间直线的点向式方程 和参数方程 二、空间直线的一般方程 三、空间两直线的夹角.
第九章 空间解析几何 一、主要内容 二、典型例题.
3.4 空间直线的方程.
第七章 空间解析几何 §5 空间直线及其方程 一、空间直线的一般方程 二、空间直线的对称式方程与参数方程 三、两空间直线的夹角
代数方程总复习 五十四中学 苗 伟.
《解析几何》 乐山师范学院 0 引言 §1 二次曲线与直线的相关位置.
直线与双曲线的位置关系.
圆复习.
6.9二元一次方程组的解法(2) 加减消元法 上虹中学 陶家骏.
七(7)中队读书节 韩茜、蒋霁制作.
2、以对象空间为序的体绘制算法—单元投影法
计算机图形学 多媒体课件 洛阳理工学院计算机与信息工程系 Your Site Here.
第三节 格林公式及其应用(2) 一、曲线积分与路径无关的定义 二、曲线积分与路径无关的条件 三、二元函数的全微分的求积 四、小结.
初中数学 九年级(下册) 5.3 用待定系数法确定二次函数表达式.
七 年 级 数 学 第二学期 (苏 科 版) 复习 三角形.
探索三角形相似的条件(2).
初中数学八年级下册 (苏科版) 10.4 探索三角形 相似的条件(2).
第十章 真实感图形绘制 基本概念 简单光照模型 基于简单光照模型的多边形绘制.
北师大版(必修2) 课题:§2.3 直线与圆的位置关系 授课教师:韩伟 年级:高中一年级 单位:阜师院附中.
物体识别 3D建图 semantic mapping
走进编程 程序的顺序结构(二).
用函数观点看方程(组)与不等式 14.3 第 1 课时 一次函数与一元一次方程.
一、平面的点位式方程 1 平面的方位向量 过空间中一点M与两个不共线的向量 ,可以唯一确定一个平面 ,则 向量 称为平面 的方位向量
28.1 锐角三角函数(2) ——余弦、正切.
2.1.2 空间中直线与直线 之间的位置关系.
工业机器人技术基础及应用 主讲人:顾老师
第八章 真实感图形生成技术 用计算机生成三维形体的真实感图形,是计算机图形学研究的重要内容之一。真实感图形生成技术在仿真模拟、几何造型、计算机动画制作、影视广告、科学计算可视化、自然景物模拟、医学、气象学、地质学等领域都有广泛应用。近几年来随着多色彩高分辨率光栅图形设备的普及,真实感图形生成技术发展迅速。
专题二: 利用向量解决 平行与垂直问题.
第二十二章 曲面积分 §1 第一型曲面积分 §2 第二型曲面积分 §3 高斯公式与斯托克斯公式.
第三单元 第3课 实验 多元函数的积分 实验目的:掌握matlab计算二重积分与三重积分的方法,提高应用重积分解决有关应用问题的能力。
2.3.4 平面与平面垂直的性质.
3.3 垂径定理 第2课时 垂径定理的逆定理.
§1体积求法 一、旋转体的体积 二、平行截面面积为已知的立体的体积 三、小结.
第五节 对坐标的曲面积分 一、 对坐标的曲面积分的概念与性质 二、对坐标的曲面积分的计算法 三、两类曲面积分的联系.
第三章 空间向量与立体几何 3.1 空间向量及其运算 3.1.5空间向量运算的 坐标表示.
复习: 若A(x1,y1,z1) , B(x2,y2,z2), 则 AB = OB - OA=(x2-x1 , y2-y1 , z2-z1)
第四章 第四节 函数图形的描绘 一、渐近线 二、图形描绘的步骤 三 、作图举例.
3.1.2 空间向量的数量积运算 1.了解空间向量夹角的概念及表示方法. 2.掌握空间向量数量积的计算方法及应用.
北师大版《数学》五年级上册 组合图形面积.
北师大版《数学》五年级上册 组合图形面积.
相似三角形存在性探究 嘉兴市秀洲区王江泾镇实验学校 杨国华
相关与回归 非确定关系 在宏观上存在关系,但并未精确到可以用函数关系来表达。青少年身高与年龄,体重与体表面积 非确定关系:
《工程制图基础》 第四讲 几何元素间的相对位置.
直线和圆的位置关系 ·.
O x y i j O x y i j a A(x, y) y x 5.4 平面向量的坐标运算 5.4 平面向量的坐标运算 5.4 平面向量的坐标运算 5.4 平面向量的坐标运算 5.4 平面向量的坐标运算 5.4 平面向量的坐标运算 5.4 平面向量的坐标运算.
真实感图形 授课教师: 单位:.
空间平面与平面的 位置关系.
一元二次不等式解法(1).
《工程制图基础》 第五讲 投影变换.
静定结构位移计算 ——应用 主讲教师:戴萍.
第三章 空间向量与立体几何 3.1 空间向量及其运算 3.1.2空间向量的数乘运算.
高中数学必修 平面向量的基本定理.
§2-2 点的投影 一、点在一个投影面上的投影 二、点在三投影面体系中的投影 三、空间二点的相对位置 四、重影点 五、例题 例1 例2 例3
直线的倾斜角与斜率.
9.5空间向量及其运算 2.共线向量与共面向量 淮北矿业集团公司中学 纪迎春.
第四节 向量的乘积 一、两向量的数量积 二、两向量的向量积.
3.2 立体几何中的向量方法 3.2 . 1 直线的方向向量与平面的法向量 1.了解如何用向量把空间的点、直线、平面表示来出.
用向量法推断 线面位置关系.
3.2 平面向量基本定理.
1.2轴对称的性质 八 年 级 数 学 备 课 组.
制作者:王翠艳 李晓荣 o.
最小生成树 最优二叉树.
Presentation transcript:

真实感图形 授课教师: 单位:

主要内容 引言 光照明模型 多边形物体的明暗处理 光线跟踪算法 纹理映射 辐射度方法 实时绘制技术 非真实感图形绘制技术

光线跟踪(Ray Tracing)算法 图例

光线跟踪算法 迄今为止最为成功的生成真实感图形算法之一 其前身是光线投射(Ray Casting)算法 算法简单 生成的图形真实感强 计算量大 其前身是光线投射(Ray Casting)算法

光线投射算法原理 对屏幕上每一像素,执行下述3步操作: 当所有屏幕像素都处理完毕 时,即得到一幅真实感图形 Step1:从视点出发通过该像素中心向场景发出一条光线,并求出该条光线与场景中物体的全部交点 Step2:将各交点沿光线方向排序,获得离视点最近交点 Step3:依据局部光照明模型计算该交点处的光亮度,并将所得光亮度值赋给该像素 当所有屏幕像素都处理完毕 时,即得到一幅真实感图形

光线投射算法原理 Step1 从视点出发通过屏幕上一像素中心向场景发出一条光线,并求出该条光线与场景中物体的全部交点

光线投射算法原理 Step2 将各交点沿光线方向排序,获得离视点最近交点

光线投射算法 光线投射效果示例http://alice.loria.fr/publications/papers/2007/ISVC_torus//photo/torus01.png

Whitted模型:回顾 Whitted整体光照明模型 Ic:由光源直接照射在表面上引起的反射光亮度 Is:沿V的镜面反射方向r入射到表面上的环境光在表面上产生的 镜面反射光 It:沿V的规则透射方向t入射到表面上的环境光通过透射在表面 上产生的规则透射光 ks:表面的镜面反射率 kt:表面的透射率

Whitted模型:回顾 Whitted模型的求解 光线跟踪!

光线跟踪算法原理 对屏幕上每一像素,执行下述4个步骤: 当所有屏幕像素都处理完毕时,即得到一幅真实感图形 Step1:从视点出发通过该像素中心向场景发出一条光线R,并求出R与场景中物体的全部交点;获得离视点最近交点P;并依据局部光照明模型计算P处颜色值Ic (光线投射) Step2:在P处沿着R镜面反射方向和透射方向各衍生一条光线 若点P所在表面非镜面或不透明体,则无需衍生出相应光线 Step3:分别对衍生出的光线递归地执行前面步骤,计算来自镜面反射方向和透射方向上周围环境对点P光亮度的贡献Is和It Step4:依据Whitted光照明模型即可计算出点P处的光亮度,并将计算出的光亮度赋给该像素 当所有屏幕像素都处理完毕时,即得到一幅真实感图形

光线跟踪算法原理 逆向跟踪从光源发出的光经由物体之间的多次反射和折射后投射到物体表面,最终进入人眼的过程

光线树

光线跟踪递归过程终止条件 条件1 条件2 条件3 光线与环境中任何物体均不相交,或交于纯漫射面 被跟踪光线返回的光亮度值对像素颜色的贡献很小 已递归到给定深度

光线跟踪算法的伪语言描述 main ( ) //主函数 { for(需要计算颜色的每一像素pixel) { 确定通过视点V和像素pixel的光线R; depth = 0; // 递归深度 ratio = 1.0; //当前光线的衰减系数,1.0表示无衰减 // color是经计算后返回的颜色值 RayTrace(R, ratio, depth, color); 置当前像素pixel的颜色为color; } } // 主函数main( )结束

光线跟踪算法的伪语言描述 RayTrace(R, ratio, depth, color) //说明:光线跟踪子函数 { if(ratio < THRESHOLD) { //终止条件2 置color为黑色; return; } if(depth > MAXDEPTH) { //终止条件3 // to be continued

光线跟踪算法的伪语言描述 光线R与场景中的所有物体求交。若存在交点,找出离R起始点最近的交点P; if(交点不存在) { //终止条件1 置color为黑色; return; } 用局部光照明模型计算交点P处的颜色值,并将其存入local_color; // to be continued

光线跟踪算法的伪语言描述 if(交点P所在的表面为光滑镜面) { 计算反射光线Rr; //递归调用! RayTrace(Rr, ks*ratio, depth+1, reflected_color); } if(交点P所在的表面为透明表面) { 计算透射光线Rt; RayTrace(Rt, kt*ratio, depth+1,transmitted_color); // to be continued

光线跟踪算法的伪语言描述 依照Whitted模型合成最终的颜色值,即: color = local_color + ks*reflected_color + kt*transmitted_color; return; } // 光线跟踪子函数RayTrace( )结束

关键问题之一:光线的表示 R(t ) = P+t D 一般采用直线的参数方程来表示: P: 起始点 D: 方向,不妨设D为单位矢量 一般在世界坐标系中进行计算 t =0表示为光线起点,即点P t >0表示在光线的正方向 t <0表示在光线的负方向,此时交点为无效交点

关键问题之二:光线与物体的求交 光线方程:R(t ) = P+t D 物体表示: 交点计算 隐函数表示: f (X) = 0 参数表示: X=g(u, v ) 交点计算 将光线方程待入曲面方程,求根 隐函数表示:f (P+t D)=0 1个方程1个未知数—单变量求根 参数表示:P+t D - g(u,v )=0 3个方程3个未知数(t, u, v ) —多变量求根 多数时候需要采用数值求解 计算量大、误差有累积、甚至不收敛等问题

光线与物体求交示例:光线与球求交 球面(位于原点)方程:x 2+y 2+z 2-r 2=0 光线方程代入球面方程,得到关于t 的二次方程: (Px+t Dx)2+(Py+t Dy)2+(Pz+t Dz)2 – r 2=0 整理后,得到: At 2 + Bt + C=0 A=Dx2+Dy2+Dz2=1 (假设光线方向为单位向量) B=2(PxDx+PyDy+PzDz) C=Px2+Py2+Pz2 – r 2 利用一元二次方程求根公式,得到: t1=(-B+sqrt(B2-4C)/2; t2=(-B-sqrt(B2-4C)/2 分别对应光线与球的两个交点,舍弃负根

光线与物体求交示例:光线与三角形求交 思路 Step1:光线与三角形所在平面求交 Step2:若交点存在,判别交点是否位于三角形内部

光线与物体求交示例:光线与三角形求交 Step1 平面方程:(x-q) · n=0 平面方程重写为:x·n+D=0 等价于平面方程Ax+By+Cz+D=0,其中(A,B,C)=n, D=-q·n 光线方程代入平面方程求解后得到:t = - (P·n+D)/(D·n) 若D·n=0,则光线与平面平行--无交点 若t <0,则交点位于光线原点之后--无效交点,舍弃 将t 代入平面方程,计算得到光线与平面的交点X

光线与物体求交示例:光线与三角形求交 Step2 将三维空间中点在三角形内的判别问题转化到二维平面上 投影方法 最理想的投影平面:xy, yz, zx. 投影方法 设平面方程为Ax+By+Cz+D=0,依据|A|,|B|,|C|大小决定投影平面 若|A|=max(|A|,|B|,|C|),取yz为投影平面 若|B|=max(|A|,|B|,|C|),取zx为投影平面 若|C|=max(|A|,|B|,|C|),取xy为投影平面 一旦确定投影平面,即可在该平面内进行点在三角形内部的判别 Example:设平面方程为z=3 (A,B,C,D)=(0,0,1,-3),此时|C|最大,取xy为投影平面 可仅利用x,y坐标进行计算

关键问题之三:镜面反射方向计算 P为入射光线L和物体的交点;N为点P处的物体表面法向;Rr为镜面反射光线的方向 θi为L与N的夹角;θr为Rr与N的夹角 由光线反射定律知道,θi=θr 假设L,N均为单位矢量 Rr = L - 2(L · N )N

关键问题之四:透射方向计算 P为入射光线L和物体的交点;N为点P处的物体表面法向 Rt为透射光线的方向 Snell定律 位于折射率为η1的介质1中、与表面法向N的夹角为θ1的入射光线L,在进入折射率为η2的介质2后,将产生折射,其折射方向Rt与N的夹角为θ2,且有η1sinθ1=η2sinθ2

阴影计算 从P出发向光源L发射一条阴影测试光线R 若R在到达L的途中与场景中的物体不相交,则点P受光源L直接照射 若遮挡物为不透 明体,则点P位 于光源阴影之中

阴影计算 包含阴影计算的Phong模型

光线跟踪阴影效果

小结:光线跟踪中的四类光线

小结:光线跟踪中的四类光线 Eye rays Shadow rays Reflected rays Refracted rays 从视点发出 从物体表面上的点向 光源发出 Reflected rays 从物体表面上的点沿 镜面反射方向发出 Refracted rays 从物体表面上的点沿透射方向发出

反走样 引起走样的原因 光线跟踪算法本质上是对画面的点采样 示例

反走样 反走样处理方法 超采样 自适应超采样

反走样 反走样效果示例

加速技术 为什么要进行加速? 常用加速技术 包围盒技术 空间分割技术

包围盒技术 原理 将场景中的所有表面按其空间位置关系分层次组织成树状结构 每一结点中的表面或表面片集合都用一形状简单的包围盒包裹起来 根结点:整个场景 中间结点:空间位置较为接近的一组表面 叶结点:单个景物表面 每一结点中的表面或表面片集合都用一形状简单的包围盒包裹起来 当光线与包围盒有交时,才进行光线与其中所含的景物面片求交运算 光线与包围盒不相交,必定不与其中所含的景物面片相交

包围盒技术 层次包围盒示例

包围盒技术 常用包围盒 包围盒 包围球 包围圆柱 平行2n面体

空间分割技术 原理 将景物空间分割成一个个小的空间单元 被跟踪的光线仅与它所穿过空间单元中所含物体表面进行求交测试 利用相邻空间单元的空间连贯性,使光线快速跨越空单元,迅速到达非空单元,求得光线与景物的第一个交点

空间分割技术 典型方法 均匀网格 Kd树 BSP树 四叉树(二维)/八叉树(三维)

实例程序之一 开源光线跟踪软件POV-Ray简介 http://www.povray.org 演示光盘中的实例程序

实例程序之二 Berger-Perrin T. The sphere flake, in 100 lines of c code. http://ompf.org/ray/sphereflake/