光线跟踪

本文介绍了一个包含点光源、透明与不透明物体的场景中,光线追踪算法的工作原理。光线从视点出发,通过交点判断、阴影测试等步骤,计算出最终达到像素点的光强值。文中详细解释了光线的反射、折射过程及跟踪终止条件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

     

在我们的场景中,有一个点光源L,两个透明的物体Q1与Q2,一个不透明的物体Q3。首先,从视点出发经过一个像素点的视线E传播到达球体Q1,与其交点为P1.从P1向光源L作一条阴影测试线S1,发现其间没有遮挡的物体,那么就用局部光照模型计算光源对P1在其视线E的方向上的光强,作为该点的局部光强。同时还要跟踪该点处反射光线R1和折射光线T1,他们也对P1点的光强也有贡献。在反射光线R1方向上,没有再与其他物体相交,那么就设该方向的光强为零,并结束该光线方向的跟踪。然后对折射光线T1方向进行跟踪,计算该光线的光强贡献。折射光线T1在物体Q1内部传播,与Q1相交与点P2,由于该店在物体内部,我们假设他的局部光强为零,同时产生了反射光线R2和赭色光线T2,在反射光线R2方向,可以继续递归跟踪下去计算他的光强,在这里就不在继续下去了。我们将继续对折射光线T2进行跟踪。T2与物体Q3交于点P3,做P3与光源Ld 阴影测试线S3,没有物体遮挡,那么计算该处的局部光强,由于该物体是非透明的,那么可以继续跟踪反射光线R3方向的光强结合局部光强来得到P3处的光强。反射光线R3的跟踪与前面的过程类似,算法可以递归地进行下去。重复上面的过程,直到光线满足跟踪终止条件。这样就可以得到视屏上的一个像素点的光强,也就是他相应的颜色值。可以有以下的终止条件:

该光线未碰到任何物体。

该光线碰到了背景。

光线在经过许多次反射和折射以后,就会产生衰减,光线对于视点的光照强度贡献很小(小于某个设定值)

光线反射成折射次数即跟踪深度大于一定值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值