- 光栅化不容易做全局光影(软阴影)
- Glossy的反射(这种材质,有反射但又粗糙)不容易做
- 间接光照
- 弹射很多次的很难,这是光栅化的局限
- 光纤追踪精确,但非常慢
- 它通常用作离线的应用
- 一帧就需要花10kcpu小时
- 光线是延直线传播的(其实是波动的)
- 光线和光线不会发生碰撞
- 光线肯定是从光源出发最后到达眼睛(reversal - reciprocity)
- Whitted-Style Ray Tracing
- 递归的反射
Ray-Surface Intersection 求光线与物体的交点
光线定义
- 射线由其原点和方向向量定义
光线和求的交点
- 光线和三角形求交
- 渲染上可以:可见,阴影,光照
- 图形上可以:判断在三角形内或外
平面的定义
- 平面由法向量和平面上的点定义
光线和物体求
包围盒 Bounding Volumes
- 包围盒和光线都碰不到,就可以不计算
- 长方体是三个对面形成的交集
光纤判断和盒子求交
- 从三维的情况下是三个对面,只有当光线都满足光线进去了,才能证明光线进去了
- 反之只要有一对面没有光线,光线离开了盒子
- 对每对面计算最大时间和最小时间,求出三组的进入最大值和离开最小值,分别为进入和离开的时间
- 如果进入的时间小于离开的时间,说明这段时间光线在盒子里
- 光线不是一个直线,是射线。
- 如果离开的时间是小于0,说明盒子在光线的背后,是不可能有交点的
- 如果离开大于0,进入小于0,只有光线的起点就在这个盒子里这一种情况
- 总结 光线和AABB有交点当且仅当进入时间小于离开时间,且离开时间大于等于0