光线追踪

73 篇文章 26 订阅

蒙特卡洛光线追踪技术系列 见 蒙特卡洛光线追踪技术

下面的简介来自以前学《计算机图形学Opengl版》时整理的笔记,如有雷同请联系我备注出处。

为了增加空间感,一般会使用产生阴影的全局光的效果。例如3D游戏的光照,是利用公式计算光照在物体表面产生的反射和漫反射以及镜面反射,然后再使用阴影算法做阴影补偿。但是这些方法计算的光照都是来自直接光源的,忽略了光的其他特性,比如反射,折射,散射等。优点是效率比较高,在很多基于视觉效果的算法中,会产生比较令人可信的图像。 

光线追踪的前身是逆向光线追踪,模拟自然界的场景,从光源出发,跟踪每一根光线在场景中的传播。缺点是极其浪费时间,因为进行了大量对当前屏幕颜色不产生贡献的计算,因为场景中所有东西都要被计算,很多东西根本就看不到,所以降低了效率。 

所以产生了新的思路:从摄像机发出一条条采样射线,逆向跟踪光线。 逆向的光线追踪从视点出发,向成像面发出光线,然后追踪每一条光线的传输。如果其中一条光线经过若干次反射折射后打到了光源上,则认为该光线是有用的,递归得计算成像颜色,否则就抛弃这条光线。这种算法一般用于电视动画制作中,可以产生相当真实的图像效果。但是缺点是仍然很耗时。光线追踪算法中的顶点亮度主要包括三个方面,由光源直接照射而引起的亮度,环境中其它物体的反射光和折射光在表面产生的镜面反射光亮度,环境中其它物体的反射折射光在表面产生的透射光亮度。 

预设定的顶点漫反射颜色。显然,这一过程仅跟踪景物间的镜面反射光线和规则透射光线,忽略了至少经过一次漫反射之后光能传递,而且该算法中的物体表面属性只能是单一的,因而它仅模拟了理想表面的光能传递。 对于该算法的具体描述: 1 从视点出发,经过成像屏幕上的每一个像素向场景发射一条虚拟光线。2 求光线与场景最近的交点。 3递归跟踪。 (1)如果当前交点所在的物体表面为理想镜面,光线沿其镜面反射方向继续跟踪。 (2)如果当前交点所在的景物表面为规则透射表面,光线沿其规则透射方向继续跟踪。 

递归结束无光亮结果: (1)光线与场景中的景物没有交点 (2)当前交点所在的景物表面为漫反射表面 (3)跟踪层次已经超过用户设定的最大跟踪层数 (4)所跟踪的光线对显示像素的光亮度的贡献小于一预先设定的阀值。递归得到光亮结果: 光线于光源相交,取得光亮度值,按递归层次反馈。 

传统的光线追踪技术可以较好的表现出反射折射效果,也可以生成真实度比较高的阴影。但是他的光照都比较硬,无法模拟出非常细腻的柔化效果。 光线追踪需要对大量的光线进行多次与场景中物体的求交计算。如何避免这些求交计算成为光线追踪追求效率的本质。早期的光线追踪算法都是通过各种空间划分技术来避免无谓的求交检测,这些方法对于之后的理论同样有效,常见的空间划分方法分为两类,一类是基于网格的平均空间划分,一类是基于轴平行的二分空间划分。 

简单介绍一下光线追踪的知识。虽然实现起来比较复杂,但是单从原理来说还是挺简单的。

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Dezeming

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值