计算机图形学真实感图形生成
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
三色学说
三色学说:某一种波长的光可以通过三种不同 波长的光混合而复现出来,且红(R)、绿(G)、 蓝(B)三种单色光可以作为基本的颜色-原色, 把这三种光按照不同的比例混合就能准确的复 现其它任何波长的光,而它们等量混合就可以 产生白光。 三色学说是我们真实感图形学的生理视觉基础, 我们根据三色学说用RGB来定义我们的颜色,三 色学说是我们颜色视觉中最基础、最根本的理 论。
光线投射算法
考查由视点出发穿过观察平面上一像 素而射入场景的一条射线,则可以确定出 场景中与该射线相交的物体。在计算出光 线与物体表面的交点之后,离像素最近的 交点所在的表面即为可见面。这种可见性 判别模式应用了光线投射算法。
光线投射(ray casting)建立 于几何光学的基础之上,它沿光线的 路径追踪可见面,是一种有效的可见 性判别手段。由于场景中有无限多条 光线,而我们仅对穿过像素的光线感 兴趣,因此可考虑从像素出发,逆向 跟踪射入场景的光线路径。光线投射 算法对于包含曲面,特别是球面的场 景有很高的效率 。
确定景物中的所以可见面 , 将视域之外或其它景物遮挡 的不可见面消除
4.
绘制真实感图形
根据一定的光照模型和光强度计算,将其转换为适合图 形设备的颜色值,生成投影画面上每个像素的光强度,让 观察者产生身临其境的感觉
基本概念—颜色
颜色
要产生具有高度真实感的图形,颜色是最重要 的部分。在我们的光照明模型中,通常只要分别 计算R、G、B 三个分量的光强值,就可以得到某 个象素点上的颜色值,给人以某种颜色的感觉。 我们从人体视觉的角度出发,介绍计算机图 形学中颜色和视觉的一些相关知识。
Lambert定律指出,漫反射的效果与 表面相对于光源的取向有关,即: Id=Ip · κd · COSθ 其中Id是漫反射引起的可见表面上 一点的亮度。Ip是点光源发出的入射光 线引起的亮度。κd是漫反射系数,它 的取值在0到1之间,随物体材料不同而 不同。 θ是可见表面法向N和点光源方 向L之间的夹角,即入射角,它应该在 0°到90°之间。
为了简化公式中余弦值的实际计算, 可以假定向量N和L都已经正规化,即已 经是长度为 1 的单位向量,这样就可以 使用向量的数量积或内积。 L N,于是得: 因为这时 cosθ Id=Ip · Id · (L · N) 将环境光线和漫反射的效果结合起 来,计算亮度的公式应该写成:
I=Ia· κa + Ip · Id · (L N )
区域分割算法
区域分割算法将投影平面分割成区域,考 察区域内的图象。如果容易决定在这个区域内 某些多边形是可见的,那么就可以显示那些可 见的多边形,完成对这一区域的显示任务。否 则,就将区域再分割成小的区域,对小的区域 递归地进行判断。由于区域逐渐变小,在每个 区域内的多边形逐渐变少,最终总可以判定哪 些多边形是可见的。这个算法利用的区域的相 关性,这种相关性是指位于适当大小的区域内 的所有象素,表示的其实是同一个表面。
计算机图形学高级话题--
真实感图形生成
讲授主要内容:
引言 消隐 真实感图形的绘制 实时真实感图形学技术 总结
引言
对于场景中的物体、要得到它的真实感图形, 就要对它进行透视投影,并消除隐藏面, 然后计算可见面的光照明暗效果,最后在 计算机中绘制出让观察者有身临其境感觉 的图形.
漫反射及具体光源的照明
1.环境光 在多数实际环境中,存在由于许 多物体表面多次反射而产生的均匀的 照明光线,这就是环境光线。环境光 线的存在使物体得到漫射照明. 亮度计算如下:
I=Ia· κa
其中I是可见表面的亮度,Ia是环 境光线的总亮度,κa是物体表面对环 境光线的反射系数,它在0到1之间. 2.漫反射 具体光源在物体表面可以引起漫反 射和镜面反射。漫反射是指来自具体光 源的能量到达表面上的某一点后,就均 匀地向各个方向散射出去,使得观察者 从不同角度观察时,这一点呈现的亮度 是相同的。 通常不光滑的粗糙表面总是呈现出 漫反射的效果
简单的光照模型与复杂光照模型的比较
消隐
消隐的概念 消隐算法分类 消隐算法 深度缓存器算法 区间扫描线算法 深度排序算法 区域细分算法 光线投射算法 BSP树算法 多边形区域排序算法
消隐的概念
用计算机生成三维物体的真实图形, 在用显示 设备描述物体的图形时,必须把三维信息经过 某种投影变换,在二维的显示表面上绘制出来。 由于投影变换失去了深度信息,往往导致图形 的二义性。要消除二义性,就必须在绘制时消 除被遮挡的不可见的线或面,习惯上称作消除 隐藏线和隐藏面,或简称为消隐。 消隐实例
I=Ia· κa + Ip · Id · ( N ) /(r+k) L
其中r是光源到表面的距离,k是根 据经验选取的一个常数。
基本概念
光照模型(Illumination Model):
又称明暗模型,描述物体表面的色彩明暗与 光源特性和物体表面特性的关系。主要用于物 体表面某点处的光强度计算.
像素 一条由象素点射入场景的视线
光线投射算法可以看做是深度缓冲器算法 的一种变形。在深度缓冲器算法,每次处理一 个表面并对表面上的每个投影点计算深度值。 计算出来的值与以前保存的深度进行比较,从 而确定每个像素所对应的可见表面。在光线投 射算法中,每次处理一个像素,并沿光线的投 射路径计算出该像素所对应的所有表面的深度 值。 光线跟踪技术通过追踪多条光线在场景中的 路径,以得到多个物体表面所产生的反射和折 射效果。而在光线投射中,跟踪的光线仅从每 个像素到最近的物体为止。
深度缓存器算法
深度缓存器算法最早由Catmull提出的,是 一种典型的,最简单的图象空间面消隐算法.
该算法也称为Z-buffer算法 算法的原理
算法的实现步骤
算法的特点
深度缓存器算法原理
先将待处理的景物表面上的采样点变换到图象 空间(屏幕坐标系),计算其深度值。 根据采样点在屏幕上的投影位置,将其深度与 已存储在Z缓存器中的相应像素处的原可见点 的深度值进行比较。
通常认为具体光源对可见表面产 生的照明作用,是随着光源与表面之 间距离的增加而下降的。设R是光线从 光源发出到达表面再返回的距离,则
I=Ia· κa + Ip · Id · ( L N ) /R2
表面
对于平行投影,光源在无穷远处, 故距离R成为无穷大。对于透视投影, 1/R2也常常有很大的数值范围而使效 果不好。一种比较逼真的效果,可通 过用r+k代替R2来获得:
光照模型的分类
简单光照模型 复杂光照模型
光照模型的分类
简单的光照模型:仅考虑光源照射在物体表面产生的
反射光,并且常假设物体表面是光滑的,所以生成的 图形可以模拟出不透明物体表面的明暗过渡,具有一 定的真实感.
复杂的光照模型:除了考虑反射光外,还要考虑周围
环境的光对物体表面影响、透明度、光源的位置和 个数等,这种光照模型被称为整体光照模型,它能模 拟出镜面影像、透明等光照效果,可以绘制更接近自 然景物的图形.
如果所有这五步检查都为假,就假定P是 遮挡了Q,交换P和Q在排序表中的位置。 如果仍做交换,算法会永远循环下去而没 有结果。 为了避免循环,可以做一个限制。当做过 首次五步检查后,发生某个多边形被移到排序 表的末尾时,就立即加上一个标记,以后就不 能再做移动。出现再次应该移动时,用一个多 边形所在的平面,把另一个多边形剪裁分为两 个。
扫描线算法
扫描线算法是图象空间算法, 它建立图象是通过每次处理一条 扫描线来完成的。这个算法是第 四章讨论的多边形填充的扫描线 算法的推广。在多边形填充的扫 描线算法中,只是对一个多边形 做扫描转换,而这里是同时对多 个多边形做扫描转换。
P
Q
画家算法 画家算法又称深度优先级表法, 它是深度排序算法的一种具体实 现。 先画远景,再画中景,最后 画近景。
平面P1将空间分割为两部分,一组物体位于P1 的后面(相对于视点),而另一组则在P1之前,而 B和D在P1之后。平面P2对空间进行了二次分割,并 生成如图(b)所示的二叉树表示。在这棵树上, 物体用叶节点表示,分割平面前方的物体组作为左 分支,而后方的物体组为右分支。
对于由多边形面组成的物体,可以选择与 多边形面重合的分割平面,利用平面方程来区 分“内”、“外”多边形顶点。随着将每个多 边形面作为分割平面,可生成一棵树,与分割 平面相交的每个多边形将被分割为两部分。一 旦BSP树创建完毕,即可选择树上的面并由后往 前显示,即前面物体覆盖后面的物体。目前已 有许多系统借助硬件来完成BSP树创建和处理的 快速实现。
真实感图形的绘制
消隐能反映景物间的相互遮挡关系,能够增 强图形的深度感和层次感. 如何利用计算机进行真实感图形的绘制呢?
真实感图形的绘制步骤
1. 场景造型 采用数学方法建立三维场景的几何描述并输入到计算机
2. 3.
取景变换、透视投影
将三维几何描述转换为二维透视图的内容
视域裁剪、消除隐藏面
颜色的三特性
颜色有如下三个特性:色调(Hue)、饱和度 (Saturation)和亮度(Lightness)。色调,是一种颜色 区别于其它颜色的因素,也就是我们平常所说的红、 绿、蓝、紫等;饱和度是指颜色的纯度,鲜红色饱和 度高,而粉红色的饱和度低。 与之相对应,从光学物理学的角度出发,颜色的三个 特性分别为:主波长(Dominant Wavelength)、纯度 (Purity)和明度(Luminance)。主波长是产生颜色光的 波长,对应于视觉感知的色调;光的纯度对应于饱和 度,而明度就是光的亮度。
BSP树算法
BSP ( binary space-partitioning )树算 法将表面由后往前地在屏幕上绘出,该算法特 别适用于场景中物体位置固定不变、仅视点移 动的情况。 利用BSP树来判别表面的可见性,其主要操 作是在每次分割空间时,判别该表面相对于视 点与分割平面的位置关系,即位于其内侧还是 外侧。
如果新的采样点的深度值大于原可见点的深度, 表明新的采样点遮住了原可见点,则采用该采 样点处的颜色更新帧缓存器中相应像素的颜色, 同时用其深度值更新Z缓存器中的深度值。 否则,不作修改。
Z-Buffer算法的特点
优点:
形体在屏幕上的出现顺序是无关紧要的,算法简 单; 便于硬件实现。
缺点:
占用空间大 不利于实现反走样、透明和半透明等处理
深度排序算法
深度排序算法的主要步骤:
1. 把所有的多边形按顶点最大z坐标值进行 排序。 2. 解决当多边形z范围发生交迭时出现的不 明确问题。 3. 按最大z坐标值逐渐减小的次序,对每个 多边形进行扫描转换。
算法的基本思想是按多边形离开观察位 置的距离进行排序,然后按照距离减少的 次序,把每个多边形内部点应有的象素值 送入帧缓存存贮器中。 算法考查多边形的深度次序是在客体 空间中进行,图形显示时覆盖步骤是在图 象空间中实现,所以可以说是一个客体空 间和图象空间的混合算法。
不明确问题检验方法
所有多边形按顶点最大z坐标 值排序后得到一个排序表,设P 是排在表中最后的那个多边形。 设Q是排在P前面并且z坐标范 围与其发生交迭的一个多边形, 对Q与P的次序关系进行检查。
检查可以按下面列出的五个步 骤进行,每个步骤判断一种情况。
1 .多边形的 x坐标范围不相交迭,所 以多边形不相交迭。 2 .多边形的 y坐标范围不相交迭,所 以多边形不相交迭。 3. P整个在Q远离观察点的一侧。 4. Q整个在P的靠近观察点的一侧。 5. 多边形在 z=0 平面上的投影本身不 相交迭。
消隐实例
物体的线框图
经消隐处理后来自百度文库图形
消隐算法分类
按其实现方式分为:
图象空间消隐算法 图象空间(屏幕坐标系)消隐算法以屏幕像素为 采样单位,确定投影于每一个像素的可见景物 表面区域,并将其颜色作为该像素的显示颜色 景物空间消隐算法 直接在景物(观察坐标系)中确定视点不可见的 表面区域,并将它们表达成同原表面一致的数 据结构