引言.引入光线追踪的目的

1. 光栅化不易实现一些全局的效果
(1)阴影
(2)漫反射效果
(3)场景中的间接光照

2. 光栅化速度快,但真实感相对较差

光线追踪更符合物理规律,但计算量大。

一.基础光线追踪算法

1. 模型假设
(1)光线沿直线传播
(2)光线不会发生碰撞(两道光线交叉后,仍分别沿原方向传播)
(3)光路具有可逆性(光线从光源发出,经过一系列反射折射损耗,最终进入人眼)

2. 基本思路
(1)沿“视点” → “屏幕上的像素” 方向往场景中做射线。

(2)若而已eye ray 与场景中的物体有交点,则将该点与光源做一个连线。判断中间是否有其他物体阻挡:若有,该点在阴影里。若无,则通过着色模型计算该点着色。

(3). Whitted-风格 光线追踪(Whitted - Styled)

【1】光线在场景会被多次反射,折射。
【2】路径上的每个交点都做一次着色,然后叠加到像素上。
【3】考虑光线传播过程中的能量损失。

二. 具体实现

1. 光线与物体求交
(1)求光线与隐式表面的交点

求方程组的解,解得时间 t。

(2)求光线与显示表面的交点
方法:光线与三角形求交
思路:
[1].光线和平面求交

[2].判断交点是否在三角形内 — Moller Trumbore 算法

其中P1, P2, P3 分别是三角形的三个顶点。
求解出 t, b1, b2。
当解满足b1 >= 0b2 >= 0(1 - b1 - b2)  >= 0t >= 0
时,求出的交点在三角形中。

2. 加速光线与物体表面求交的过程
(1) 采用包围盒方法(Bounding Volumes)

包围盒完完全全将物体包围,因而,当光线与包围和没有交点的情况下,也绝不会和物体有交点。

(2)判断光线与包围盒是否有交点

当光线满足与包围盒的三组对面都有交点时,可认定光线与包围盒有交点。

相当于求解,光线与三组对面相交的时间t

每组对面都可以求解出一个tmin 与 tmax。

·取t_enter = max(tmin) 表示光线进入包围盒的时间。
·取t_exit = min(tmax) 表示光线离开包围盒的时间。
·最后判断 若 t_exit < t_enter,则可认为光线穿过包围盒。

另外还需注意:

若t_exit < 0 则表示,包围盒在光线的反方向。
若t_exit >= 0, t_enter < 0,则认为光源在包围盒中。

综上,仅当 t_enter < t_exit && t_exit >= 0时,可判定光线穿过包围盒。

参考文档

【1】. https://www.bilibili.com/video/BV1X7411F744?p=13
【2】. http://games-cn.org/graphics-intro-ppt-video/

【GAMES101 课程小结】:Lecture 13 Ray Tracing相关推荐

  1. [Games 101] Lecture 13-16 Ray Tracing

    Ray Tracing Why Ray Tracing 光栅化不能得到很好的全局光照效果 软阴影 光线弹射超过一次(间接光照) 光栅化是一个快速的近似,但是质量较低 光线追踪是准确的,但是较慢 Ras ...

  2. Games101 计算机图形学课程笔记: Lecture14 Ray Tracing 2

    目录 加速结构 均匀空间划分(Uniform Spatial Partitions) 空间划分 空间划分例子 KD-Tree KD-Tree存储数据结构 KD-Tree结构中进行光线追踪 KD-Tre ...

  3. 2019年CS224N课程笔记-Lecture 13: Contextual Word Representations and Pretraining

    资源链接:https://www.bilibili.com/video/BV1r4411 之前大部分都是课件内容翻译+自己的一些总结,以后更倾向于自己的总结咯- 正课内容 词的表示方法 一开始时学过的 ...

  4. 【RAY TRACING THE REST OF YOUR LIFE 超详解】 光线追踪 3-5 random direction ONB

     Preface 往后看了几章,对这本书有了新的理解 上一篇,我们第一次尝试把MC积分运用到了Lambertian材质中,当然,第一次尝试是失败的,作者发现它的渲染效果和现实有些出入,所以结尾处声明要 ...

  5. GAMES101课程学习笔记—Lec 14(2)~16:Ray Tracing(2) BRDF、渲染方程、全局光照、路径追踪

    GAMES101课程学习笔记-Lec 14(2)~16:Ray Tracing(2) BRDF.渲染方程.全局光照.路径追踪 0 引入--辐射度量学概述 1 相关概念 1.1 Radiant Ener ...

  6. 问题六十七:ray tracing学习总结(2016.11.13, 2017.02.05)

    从2016.11.13开始接触ray tracing到今天2017.02.05,差不多80天的时间.截至当前,学习ray tracing的过程,也是我重新找回自己或者说是"find what ...

  7. 计算机图形学学习笔记——Whitted-Style Ray Tracing(GAMES101作业5讲解)

    计算机图形学学习笔记--Whitted-Style Ray Tracing GAMES101作业5讲解 遍历所有的像素生成光线 光线与平面求交 遍历所有的像素生成光线 关于作业五中如何遍历所有的像素, ...

  8. GAMES101复习:光线追踪(Ray Tracing)

    目录 0. 阴影:Shadow Mapping(从光栅化角度实现) ⭐1.光线追踪:光路(线)的可逆性.光的折射.着色贡献度 1.0 Why Ray Tracing?光栅化的局限性 1.1 Recur ...

  9. 闫令琪:Games101 现代计算机图形学-光线追踪(三):渲染方程和路径追踪path ray tracing 作业Assignment07解析

    文章目录 0 whitted光线追踪的局限 1 辐射度量学 1.1 光线的表示 Radiance 1.2 物体表面上一个点的亮度 Irradiance 1.3 BRDF(Bidirectional R ...

最新文章

  1. 监听指定端口数据交互(HttpListenerContext )
  2. 系统的环境变量path的作用是什么
  3. 2021 年 7 月程序员工资统计,平均 15302 元
  4. GVIM工具之gvim的配色方式
  5. Mat与IplImage*类型间的转换
  6. Spring AOP在事务中的应用典范
  7. 离群点(oulier)挖掘详解
  8. 判断系统是大端还是小段
  9. OPENWRT传感器实验
  10. 24.Yii 组件行为
  11. ftp服务器的作用及意义,FTP服务器的作用
  12. 中小尺寸OLED面板面临价格战,中国手机可捡便宜
  13. H5:MathJax解析数学公式
  14. MySQL的锁到底有多少内容?和腾讯大佬的技术面谈,我真菜
  15. LOJ10144宠物收养所
  16. cyusb3014上位机同步传输与异步传输的实现
  17. 我赌你的电脑里肯定有漏洞—不信测测看
  18. 全球认可的PMI认证体系
  19. 运用spm中的coregister改变图像大小(图像重采样)
  20. DeFi之道丨三分钟了解dYdX空投、交易及LP奖励规则

热门文章

  1. django中的models的常用字段及属性
  2. 直接创建框架协议、合同
  3. 设计师必备的三个导航网站
  4. 企业微信渠道二维码如何制作?
  5. 如何获取Windows 10的锁屏壁纸
  6. 成都拓嘉启远:拼多多下单后地址错误能改吗
  7. Payssion确认参加2019年ChinaJoy游戏展
  8. Promise 与 RXJS的区别
  9. 目前有哪些好用的测试管理工具?
  10. 京东云擎 php,为什么我登陆京东云擎控制台会错误?