ray tracing笔记
眼睛看向物体的光线方向考虑到折射反射,能间接看到原本看不到的点,中间会有能量衰减
可以同样用shadow mapping的方法判断某点在不在阴影内
光从o点出发,沿着某方向向量d传播的向量 r(t) = o+ td
求交点算法:高中数学算法
求某一点同时满足光的传播方向公式和物体表面的公式
光线和模型三角形网格某一平面求交点(也是高中数学算法):
1.定义平面:
法线和平面任意点都垂直 (p-p')·N = 0 => ax+by+cd = 0
2.把光线向量代入p
重心表示平面求交算法
三角形过多的时候并不适合用着遍历三角形的算法做光线追踪,改用包围盒(Bounding Volumes)优化
如果三角形和包围盒不相交,则和表面也必定不相交
如果光线进入包围盒的时间<离开包围盒的时间且离开时间>0,则光线与包围盒有交点
求单个面的进出时间:
求光线进出包围盒的时间,即求三个对面中最晚进入时间以及最早离开时间
KD-TREE 类似于二叉树二分
求空间内光线和物体交点流程:类似于叉树的查找
如果和左节点没有相交,直接查找右节点是否相交
如果和左节点相交,左节点里面的物体都要求交点,右节点也要做查找
通过物体划分层级(bvh)
把物体的三角形分成二叉树的结构,每个三角形构建一次aabb包围盒,包围盒之间尽量减少重叠区域
查找过程:
找到一个包围盒,把包围盒里面的物体递归地拆成两个部分
两个部分重新计算包围盒
递归结束条件:包围盒里面的物体足够少,每次结束前把叶子节点的物体保存在一个数据结构中.
辐射度量学( Basic radiometry)
点光源均匀辐射时一个方向向量的辐射强度
Irradiance每一个面积对应的能量,与光线向量与面的夹角有关(CosX)
光线传播过程中立体角的能量不变,面积的能量Irradiance发生变化
Irradiance就是radiance的积分,Incident radiance 就是某单方向的光照到单位面积的能量
BRDF(双向反射分布函数)
BRDF的意义:求出从某一方向的入射光线反射到某一方向的能量.
值 =出射方向的radiance的微分/ 入射点irradiance的微分
反射方程:反射能量=到达某点的所有方向光线的出射积分
点光源的BRDF渲染公式:
相互反射的情况下BRDF公式:
简化写法将其他物体表面的通过BRDF的反射能量用V代替,自己相关的能量用U
也可以简写为L=E+KL
L = E + K^E + K^2E + K^3E + ...
全局光照=直接光照+间接光照的集合