1.第一步肯定是减少模型面数 比如一面墙2个三角形计算量只有2个
2.按模型分开,分为n*n矩阵中,每条光线计算方向判断矩阵储存求交=真
的三角形,那么每次光线都先对常用的进行判断
3.复用上一个像素的三角形第一个进行判断,比如一面墙大部分求交都是重复的
4.she bvh加速,每次都减去一半三角形
5.这里只在第一帧使用,80*80先进行小图的碰撞判断,并把三角形数据扩大
到大分辨率,之后大部分光线应该都能用上,这一步可以快速获取到大部分的正确
碰撞三角形
6.比如建立800*800的三角形求交数据,上一步5,80%+是正确的,不正确的像素,
再求交新的上去,如此只要场景没有变化,第二帧就能得到所有像素都是正确三角形求交数据
7.建立一个二维数组[x][n],x表示屏幕位置,n是光追深度一般是4,通过低差异序列
反射方向一般不变,用这个数组把三角形求交数据保存起来
8,小图像素变化,建立一个二维数组[x],储存最基本的颜色,扩大后有变化进行光线追踪,没变化的保持不变
上列按顺序方法,
8080可以快速得出大分辨率求交数据
然后大分辨率修正
只要没有物体变化,
第三帧开始,屏幕每一个像素只用判断一个三角形(原本一个像素要计算整个场景几千万个)
第一帧8080像素,可以做到实时
第二帧,修正,可能压力大
第三帧以后 ,可以加速99.999%
这一套下来,光线追踪三角形求交可以做到极致加速
不过路径追踪光线方向是随机的,3和7的方案需要固定
下图是3和7实现 ,包括下一大章的降噪平衡(解决开局是黑色慢慢变亮过程)
https://share.weiyun.com/hHHvIP6A