历史上的今天
今天是:2025年04月15日(星期二)
2018年04月15日 | 递归性质和大数目追踪光线解决方案
2018-04-15 来源:Imagination Tech
问题:
1、性能
算法的递归性质和大数目的追踪光线,渲染过程可能持续数小时。80-90%的渲染时间花费在计算光线和物体交点上。
2、走样
3、尖锐的阴影
基本的光线追踪算法只能得到尖锐的阴影(因为模拟的是点光源)。
4、局部光照和着色
算法只追踪少数目的光线,只有四种类型的光线被考虑在内,物体之间的漫反射光没有被考虑在内,即算法并不包括全局光照。
解决方案:
1、性能
使用更多或者更好的硬件
大规模并行计算。每一个光线都相互独立。将图像分割,分配在多核上或者分布式网络上;或者分配在多个线程上。
限制交点检测的数目。使用包围盒的层次关系。快速判断光线是否和一组物体相交。物体被分组在封闭的包围盒中。利用空间细分技术:octree,BSP,grid.
优化交点检测
限制追踪光线的数目,确定最大的递归层数。根据光线对当前像素点贡献值大小来限制递归深度。一个阈值用来确定后续光线由于对像素点贡献太小而不会被追踪。
2、走样
使用超采样(super sampling)、抗锯齿(antialiasing)、jittering
追踪额外的主光线并取平均值。即超采样,相对于每一个像素点取一条光线,你可以取特定数目的光线。每一个像素被分为亚像素,对每一个亚像素发射一条光线。当所有的亚像素点都处理完毕,对亚像素点的颜色值取平均值,并将其赋值给该像素点。这种方法大大增加了渲染时间。
自适应抗锯齿。在颜色剧烈变化的地方使用追踪的主光线,颜色变化不大的地方使用最少的主光线。
随机抗锯齿。随机取样代替常规取样。
3、尖锐的阴影
原因:使用点光源、每个交点仅仅对应一条阴影光线。
区域光(area light)。使用一系列点光源来模拟区域光源。对于每一个交点,需要和点光源数目一样多的追踪光线。
Monte Carlo光线追踪法。使用随机超采样,光源建模成球形光源,阴影光线指向代表光源的球上面的点。阴影光线颜色的平均值决定该交点最终的颜色值。
4、全局光照
依旧可以使用Monte Carlo法。使用Radiosity算法。
史海拾趣
|
应wangjiafu1985要求,将所有上传了:) 爱因迪生:首先让我采访下这位长的像炮管似的重量级的兄弟。请问先生是叫什么电阻? 选手(瓮声瓮气):我是波纹电阻。 爱因迪生:还有这位呢?外面都是铝壳。 选手:所以偶叫铝壳电阻。 爱因迪生 ...… 查看全部问答> |
|
如何实现WINCE 启动画面(开机logo)? (PXA300+ Monahans L ) 如题CPU 是PXA300 BSP Monahans L 现在没有启动画面,要实现启动画面,下载内核时的提示画面,都是静态的不需要动画.或者只显示一些提示语类似\"OS image downloading...\". 虽然看到很多人在网上问这个问题了,但有些地方还不清楚,所以再问一下. 有 ...… 查看全部问答> |
|
求助:能否删除用户模式,使得一个ARM处理器能正常应用,分析适用场合与优缺点 求助: 能否删除用户模式,使得一个ARM处理器能正常应用,分析适用场合与优缺点,,请高手指点一二。。。。。。 谢谢 … 查看全部问答> |
|
我装了VXWORKS FOR PENTIUM但是使用VxSim时报错,帮忙看看!!! 我装了VXWORKS FOR PENTIUM但是使用VxSim时报错,帮忙看看!!! 系统WINXP,CPU ATHLON XP-M 1.6G 运行VxSim,起先CPU占用率100%,几秒钟后报 --------------------------- Tornado --------------------------- error : image specified ca ...… 查看全部问答> |
|
目前我们接触的到的网上的关于 STM32 开发板大约有 5 种,有适合 STM32 入门级的开发者,也有适合对于高级应用开发的工程师们的。因此对于不同的人群我们应该选择不同的开发板,面对 5 种我们都没有 ...… 查看全部问答> |




