第六节光线跟踪 光线跟踪技术是从光线投射(ray casting) 技术发展而来的。光线投射的基本原理很简单, 假设从视点V通过屏幕象素e向场景投射一光线交 场院景中的景物于P1,P2,…,Pm点,那么离视点 最近的P点就是画面在象素e处的可见点,象素e 的光亮度应由P1点向PV方向辐射的光亮度决定。 如果通过V点向屏幕上的每一象素都投射光线以 求得每一投射光线与场景的第一个交点(可见 点),并置相应象素的光亮度为交点处的光亮度, 那第我们就得到一幅完整的真实感图形
第六节 光线跟踪 光线跟踪技术是从光线投射(ray casting) 技术发展而来的。光线投射的基本原理很简单, 假设从视点V通过屏幕象素e向场景投射一光线交 场院景中的景物于P1,P2,…,Pm点,那么离视点 最近的P1点就是画面在象素e处的可见点,象素e 的光亮度应由P1点向P1 V方向辐射的光亮度决定。 如果通过V点向屏幕上的每一象素都投射光线以 求得每一投射光线与场景的第一个交点(可见 点),并置相应象素的光亮度为交点处的光亮度, 那第我们就得到一幅完整的真实感图形
m 屏幕
光线投射算法只能实现局部光照明效果。这 种方法的突出优点是不必再单独消隐,算法 简单
光线投射算法只能实现局部光照明效果。这 种方法的突出优点是不必再单独消隐,算法 简单
虽然光线在景物间的反射和折射可以无限进 行下去,但在计算机中不可能做无休无止的光线 跟踪,需要给出光线跟踪的结束条件。当被跟踪 的光线射出画面或跟踪深度达到给定层次时,应 停止跟踪过程。考虑到被跟踪光线经多次反射和 透射后会衰减(由于k和k的作用),也可通过判 别跟踪光线对显示象素光亮度引的贡献是否小于一 阈值来动态控制跟踪深度。设颜色灰度等级为G (通常为255),k为所取阈值,那么凡是对显示 象素光亮度的贡献小于k个灰度级,或者说其贡 献系数小于k/G的反射、透射光亮度都没有必要再 计算下去
虽然光线在景物间的反射和折射可以无限进 行下去,但在计算机中不可能做无休无止的光线 跟踪,需要给出光线跟踪的结束条件。当被跟踪 的光线射出画面或跟踪深度达到给定层次时,应 停止跟踪过程。考虑到被跟踪光线经多次反射和 透射后会衰减(由于ks和kt的作用),也可通过判 别跟踪光线对显示象素光亮度I的贡献是否小于一 阈值来动态控制跟踪深度。设颜色灰度等级为G (通常为255),k为所取阈值,那么凡是对显示 象素光亮度I的贡献小于k个灰度级,或者说其贡 献系数小于k/G的反射、透射光亮度都没有必要再 计算下去
begin for需要计算光亮度的每一象素edo begin 确定通过视点V和象素e的光线R; ray-tracing(R,I,1); 置e的光亮度为 end end; procedure ray-tracing(R,I,A); /*R为当前跟踪光线,为当前跟踪光线的光亮度 A为对总光亮度的贡献系数*/ begin ifA<k/G then I=0
begin for 需要计算光亮度的每一象素e do begin 确定通过视点V和象素e的光线R; ray-tracing(R,I,1); 置e的光亮度为I end end; procedure ray-tracing(R,I,A); /*R为当前跟踪光线,I为当前跟踪光线的光亮度 ,A为I对总光亮度的贡献系数*/ begin ifA<k/G then I=0
else begin R与景物求交,返回可见点P1: 计算P点的局部照明光亮度Ic; 若P所在表面为光滑镜面,确定P的镜面反 射光线R; ray-tracing(R,I,k A); 若P所在表面为透明面,确定P的规则透 射光线R:
else begin R与景物求交,返回可见点P1; 计算P1点的局部照明光亮度Ic ; 若P1所在表面为光滑镜面,确定P1的镜面反 射光线Rr ; ray-tracing(Rr ,Is ,ksA); 若P1所在表面为透明面,确定P1的规则透 射光线Rt ;
ray-tracing(R,Ik A); I=I+kIs+kI End End
ray-tracing(Rr ,It ,ktA); I=Ic+ks Is+kt It End End
光线跟踪技术存在两个主要缺点,即 耗时多和容易引起图形走样.耗时多是因 为它在计算每个象素光亮度时都要生成一 庞大的光线树,建立光线树以及计算每一 结点的光亮度要进行大量的直线和曲面求 交计算,从而引起了总计算量的快速上升. 图形走样来源光线跟踪算法对画面的点采 样,算法只对穿过屏幕象素中心的光线进 行跟踪,忽略了穿过象素内其它各点投向 眼睛的大量光线。图形走样使画面不能清 晰地显示图形细节,甚至造成细节丢失,此 外景物边缘处呈现阶梯形
光线跟踪技术存在两个主要缺点,即 耗时多和容易引起图形走样.耗时多是因 为它在计算每个象素光亮度时都要生成一 庞大的光线树,建立光线树以及计算每一 结点的光亮度要进行大量的直线和曲面求 交计算,从而引起了总计算量的快速上升. 图形走样来源光线跟踪算法对画面的点采 样,算法只对穿过屏幕象素中心的光线进 行跟踪,忽略了穿过象素内其它各点投向 眼睛的大量光线。图形走样使画面不能清 晰地显示图形细节,甚至造成细节丢失,此 外景物边缘处呈现阶梯形
第七节 辐射度方法 光线跟踪方法对于非常光滑的表面比较 实用,但当表面比较粗糙时,效果并不好。 尤其是无法模拟彩色渗透现象。 所谓彩色渗透现象就是指环境中景物的 颜色相互作用而使物体表面的颜色发生变化 。这是由于光照模型没有考虑一般物体表面 之间的漫反射,以及由漫反射所产生的颜色 渗透现象。为了能正确地模拟这种现象们, 1984年,Gora1等人首先提出了使用热辐射 工程中的辐射度方法来解决上述问题
第七节 辐射度方法 光线跟踪方法对于非常光滑的表面比较 实用,但当表面比较粗糙时,效果并不好。 尤其是无法模拟彩色渗透现象。 所谓彩色渗透现象就是指环境中景物的 颜色相互作用而使物体表面的颜色发生变化 。这是由于光照模型没有考虑一般物体表面 之间的漫反射,以及由漫反射所产生的颜色 渗透现象。为了能正确地模拟这种现象们, 1984年,Goral等人首先提出了使用热辐射 工程中的辐射度方法来解决上述问题
这一方法描述了一个封闭环境中能量 交换的关系,把整个场景作为一个封闭的 系统,场景中的每一个曲面作系统的一个 组成部分,且假设曲面均为漫反射表面。 然后根据能量平衡原理计算每一个曲面上 的能量,从而求出被观察点的光亮度。一 个曲面片的光亮度包括自发光、射光以及 可能有的透射光。那么,表示成公式为: B4=EA4+叫∑BaFA-A'A
这一方法描述了一个封闭环境中能量 交换的关系,把整个场景作为一个封闭的 系统,场景中的每一个曲面作系统的一个 组成部分,且假设曲面均为漫反射表面。 然后根据能量平衡原理计算每一个曲面上 的能量,从而求出被观察点的光亮度。一 个曲面片的光亮度包括自发光﹑射光以及 可能有的透射光。那么,表示成公式为: