Games101-课程13笔记

目录

第十三节课 : Ray tracing(光线追踪 1)

为什么要使用光线追踪?

为了使用光线追踪, 提出三个关于光线的假设

光线追踪的步骤

光线追踪 -- 产生眼睛光线

第一条光线的描述

第二条光线的描述

(Whitted-Style)递归的光线追踪

① 镜面反射(产生反射光)

② 镜面折射(产生折射光)

③ 每个交点都与光源连线, 判断是否为光源可见

④ 对每个交点进行阴影计算, 结果都要考虑进同一个像素的着色

⑤ 简单定义

射线表面交点

射线在球面上的交点

数学上, 交点p必须同时满足射线方程和球面方程

解出上述公式, 得到t的表达式

光线与隐式曲面的交点

t值有两个限制:  1.必须是实数  2.正数(光线是正方向的)

定论

光线与三角形曲面的交点

将光线在三角形的交点问题分为两个部分

Moller Trumbore 算法 (简称MT算法)

总结

简单光线追踪的执行问题

Bounding Volumes(包围盒)

盒子是3对平面(前后,上下和左右)的交集

在2D情况下轴对齐盒

在3D情况下的轴对齐盒

总结


第十三节课 : Ray tracing(光线追踪 1)

为什么要使用光线追踪?

光栅化不能很好地处理全局效应

-软阴影

-特别是当光线反弹不止一次时

 光栅化速度快, 但是质量相对较低

光线追踪是准确的,符合物理. 但是非常慢

光栅化: 实时 , 光线追踪: 离线的

一核CPU需要10K小时,在生产中渲染一帧

 

为了使用光线追踪, 提出三个关于光线的假设 :

① 光以直线传播(尽管这是错误的)

② 如果光线交叉,不会相互碰撞(尽管这仍然是错误的)

③ 光线从光源传播到眼睛(但在光路可逆性作用下,物理学是不变的),因此可以假设眼睛发出感知光的线,经过各种反射最终到达光源.

光线追踪类似于 “人的眼睛发出感觉光线进入世界”

下图是以前错误的结论

 

光线追踪的步骤:

① 生成一个在摄像机面前的图, 这个图由很多像素组成, 从摄像机出发, 经过某个指定像素, 射向场景中的某个点.

② 从场景中某个点射向点光源一条射线, 通过是否有遮挡, 可以判断该点是否有阴影

 

光线追踪 -- 产生眼睛光线

(假设为针孔摄像机, 没有体积)

第一条光线的描述如下:

① 眼睛光线从眼睛出发, 并且穿过像素

② 穿过像素后, 求眼睛光线与场景的最近交点.

③ 产生交点后, 就遮挡了这条眼睛光线后面可能会有的更多交点

 

 

第二条光线描述如下:

① 连接交点与点光源, 检测是否有物体阻挡, 也就是检测交点是否为点光源所见.

② 根据该点的法线, 入射角度和出射角度执行阴影计算, 结果写入先前所经过像素的颜色.

 

递归的(Whitted-Style)光线追踪

Whitted-style假设反射都是完美反射

下面该球为玻璃球, 可折射可反射.

光线路径步骤如下:

① 镜面反射(产生反射光)

 ② 镜面折射(产生折射光)

③ 每个交点都与光源连线, 判断是否为光源可见.

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值