计算机图形学-GAMES101-13

光线追踪和光栅化是两种不同的图像生成方法。光线追踪基于物理原理,能模拟真实光照效果,适合离线渲染,但速度较慢;光栅化速度快,适用于实时渲染。Whitted-Style光线追踪考虑了光线的多次反弹,而包围盒等加速算法则提高了计算效率。
摘要由CSDN通过智能技术生成

Ray Tracing

(1)为什么使用光线追踪

  • Ray Tracing 和 Rasterization 是两种不同的成像方式。
  • Rasterization最大的问题:不利于表达全局效果。
  • 整体来说光栅化做阴影是比较困难的。
  • Glossy reflection:一种不那么光滑的反射镜面。
  • Indirect illumination间接光照:指光进入人眼前经过多次反射(≥2)。
    在这里插入图片描述
     虽然有许多办法能使得光栅化解决以上问题,但它们是很复杂并且麻烦的,最重要的是它们在物理上并不具有正确性。这就是光栅化的局限性。

(2)光线追踪的局限性

  • 光线追踪依据真实物理规律,模拟真实进行渲染,带来非常真实的视觉效果。
  • 光线追踪多用于离线生成画面,因为它的速度是非常慢的,一帧就需要生成很久。
  • 光栅化不能被光线追踪所替代,是因为它的速度非常快,可以进行实时的生成。
    在这里插入图片描述

(3)光线追踪的定义

  • 光沿着直线传播。
  • 光线和光线不会发生碰撞。
  • 光线追踪运用光路的可逆性。
  • 光线从光源发出,会发生反射、折射,光线追踪就是模拟这个过程。
    在这里插入图片描述
     追踪:从终点(眼睛或相机)开始,连接到视口上的每一个像素。连接会产生一条光路,我们沿着每条光路追踪场景中的物体。
     如果追踪到某个物体,我们再将物体和光源进行连线,判断物体是否能被光源照亮。
     如果物体能被光源照亮,那么我们就可以计算这条光路上的能量,随着进行着色。

(4)进行光线追踪

  • 沿着eye ray找到光路上最近的物体。
  • 将最近的物体和光源连线,判断对光源是否可见。
  • 如果可见,根据物体法线计算颜色,写回像素中:
    在这里插入图片描述

(5)Whitted-Style Ray Tracing

  • 以上的光线追踪同样只考虑了光线反弹一次。
  • Whitted-Style模拟了光线不断弹射的过程:
    在这里插入图片描述

(6)技术实现

6.1光线

  • 光线的表示:
    在这里插入图片描述

6.2光线和圆的交点

  • 和圆的交点:在这里插入图片描述

6.3光线和隐式几何的交点

  • 光线和隐式表面的交点。
  • 要求解出t为实数,并且为正(眼睛的正向)。
    在这里插入图片描述

6.4光线和三角形的交点

  • 判断一个点在封闭图形内,可以通过这个点想外做一条射线,如果和封闭图形交点数位偶数则在外部,如果为奇数则在内部。这个结论在三维也成立。
    在这里插入图片描述

  • 光线和平面求交,判断交点是否在三角形内。

  • 平面的表示:
    在这里插入图片描述

  • 平面和光线的交点:
    在这里插入图片描述

  • 加速算法如下。解出来要求t为正,b1、b2、b3也为正。
    在这里插入图片描述

(7) 光线和面的交点

7.1包围盒

  • 一个物体包含大量三角形,在求三角形面和光线的交点时,我们需要进行加速。

  • 包围盒Bounding Volumes:
    在这里插入图片描述

  • 使用前后左右上下六个面,即三对面去表示一个包围盒:

  • 在二维中我们要包围一个形体,使用一个包围面即可,如下图中在xy平面我们想要包围一个物体。我们具有一个面两对边,我们使用光线和竖直的两条对边求交点得到一对交点,使用光线和水平的两条对边求交点得到一对交点。我们对tmin取最大,对tmax取最小,得到它们两条线段的交集。这个交集就是光线在包围面中穿梭的路程。
    在这里插入图片描述

  • 在三维世界中,包围盒是三个对面。

  • 只有当光线进入了所有的对面时,光线才进入了盒子。

  • 只要光线离开了任意一组对面时,光线就离开了盒子。
    在这里插入图片描述

7.2判断条件

- 前提是tenter<texit

7.3使用轴盒子

在这里插入图片描述

Python网络爬虫与推荐算法新闻推荐平台:网络爬虫:通过Python实现新浪新闻的爬取,可爬取新闻页面上的标题、文本、图片、视频链接(保留排版) 推荐算法:权重衰减+标签推荐+区域推荐+热点推荐.zip项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

仰望—星空

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

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

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

打赏作者

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

抵扣说明:

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

余额充值