光线跟踪算法
光线跟踪算法,
在网上查了一下,大概的思路,可能说得不太清楚,记下来,免得以后忘了。
比较容易找到cpu中的算法,gpu的如gsls找一个,不过不能编译通过,也完全没搞懂
cpu中的算法容易理解,但处于的几何体基本是球体,平面之类的,而且不涉及纹理,描述原理多于工程实践。
根据渲染区域的大小,即宽h和高w,以及摄影机的位置,
生成 h * w条光线(逆向的)
程序处理时,一行一行地处理。
1 当前处理的光线,即一条射线r,找出第一个与r相交的物体.
以及交点p,计算该点的法线n。
2 阴影处理:交点p,与光源连线l,如果有物体与l相关,则说明该点处于阴影之中
有多个光源以此类推
3 根据法线n计算反射光线,对于反射光线,进行递归处理.(可以设置递归的最大次数)
4 根据以上三点处理得到的颜色值,就是渲染区对应像素点的颜色值