欢迎光临散文网 会员登陆 & 注册

3d光子图是什么原理?3d为什么要出光子图?

2022-10-25 14:02 作者:金龟子世家  | 我要投稿

在使用渲染100(邀请码1a12)渲染时会渲染光子图,光子图渲完后才会开始渲大图,比如下面这样,


那么为什么要光子图呢?光子图又是什么原理?今天我们就来了解下吧。


光子图原理涉及到Vray发光图和灯光缓存两项技术发光图计算场景中光线对物体表面的照射效果,而灯光缓存与此相反,是照射物体表面的光线进行追踪和计算,两者互相配合才生成了光子图,下面我分别介绍下它们。


一、发光图

发光图通常又称为发光贴图,它会计算场景中任何物体的任意一点在光线照射下形成的效果当光线照射到物体表面时,Vray会在发光贴图中查找与当前计算点类似的点,并从已计算的点中提取信息,根据这些信息将这些相似点进行内差值替换计算如果个点与其他任何被计算过的点不同,就会重新计算并保存到内存中。

由于上述原因,发光贴图是自适应的,它会根据我们给定的参数对场景中物体边界、物体交叉部分以及阴影等重要部分进行高精度的光照计算,在大量平坦区域低精度计算。

理论上发光贴图需要计算每个像素点的光线,然后根据计算结果渲染这会耗费大量时间实际上很多时候我们并不需要如此精确,所以一般我们会选择多个像素计算一次而这就通过控制最小速率和最大速率来完成这个控制有几个维度。

首先最小和最大速率中的数字代表有多少像素被一次性采样计算,0代表1个像素计算一次,-1代表4个像素计算一次,-216-364-4256,以此类推,都是4的幂函数

其次,如果最小速率-1,最大速率-3,就意味着光子图会计算3次,第164个像素为一组进行一次计算,第216个像素进行一次计算,第34个像素计算一次,然后采用算法对三次计算结果进行叠加以达到更高精度。

最后,叠加方式比较特殊,它并不是简单的叠加计算,而是最小速率控制场景平坦区域的采样数量,而以最大速率控制物体细节部分如边线、角落、模型转折处等比较复杂的地方也就是说光子图渲染完成后大图会自动根据模型的复杂程度调用光子样本,比如场景里有一面墙,很平坦,上面没有其他模型,那就会调用最小速率中采集到的样本进行渲染,而面与面的交接处,因为比较复杂,调用最大速率

这也是为什么要进行多次光子的原因很多人觉得麻烦,认为只计算一次光子就可以了,其实是不对的,在时间允许的情况下应该进行多次光子计算。


二、灯光缓存

灯光缓存是对灯光进行的模拟,它会在摄像机可见范围内跟踪光线的发射和衰减情况然后把信息存储到一个三维数据结构它支持任何类型的灯光,可以单独完成整个场景的GI照明,也可以配合别的贴图做二次反弹,尤其是在墙角处呈现效果更好,层次更细腻。

灯光缓存的参数中细分是非常重要的,它决定了有多少条来自摄像机的光线被追踪,这个值越大画面效果越好,但渲染速度也会越慢被追踪的光线数量是细分值的平方,比如细分是300,就有300×300=90000光线被追踪,如果是1000,就是1000×1000=1000000

注意:由于灯光缓存计算方式特殊所以尽量不要将材质色彩的RGB值设置255,这样会导致追踪的光线路径过长增加渲染时间。


关于灯光缓存的详细内容可以看我之前的文章。

了解光子图的原理后我们就知道为什么要光子图了,因为渲染光子图能节省大图的渲染时间,如果大图尺寸比较大,建议先光子再大图,至于光子图的渲染时间受到什么因素影响,可以关注我后续更新哦。

如果要渲染这里我推荐网平台渲染10015分钟260分钟8毛渲染小图很合适,注册时填写邀请码1a12会有2张免费渲染,有需要的朋友可以去试试哦。


3d光子图是什么原理?3d为什么要出光子图?的评论 (共 条)

分享到微博请遵守国家法律