前言
这么多年来,非常多的新手,对于渲染器有偏和无偏的的问题,争论很多。在光头大佬的《渲染的秘密》中也讲到过“心中无偏即有偏”,所以今天我们就来了解下无偏和有偏渲染器的真实的意义。
在大多数人眼里可能会觉得"无偏"的效果会更好,“有偏”的效果相对会差一些。这样的想法可能看起来没啥毛病,同时也可能让你陷入某些误区。从渲染器算法的角度来说,"无偏"的计算结果会更精确更稳一些,“有偏”计算结果可能会出现偏差,先这样大致了解一下,那么在我们实际使用的时候,到底是怎么样的呢,为什么不管是"无偏"还是有“有偏”,都出不了想要的效果呢,这个问题,自己掂量一下哈。
那么,为了更好理解无偏和有偏,那么我们来更深入的探讨一下。
什么是无偏
无偏的基本意思是在渲染计算过程中不采用加速的算法或技巧。每一道光线都是一视同仁的,在任何重要性方面上(场景的重要区域或非重要区域)没有无偏,所以,这就需要大量的光线计算才能得到干净的效果。
Vlado 大佬曾经发表过关于无偏渲染的描述:"理论上,无偏是一种算法,在同一个 3D 场景中,你需要通过多次运行该算法,并将结果平均化,你会得到最终干净和正确的渲染结果。那么,问题是在每一个单独计算的结果,可能是相当错误(噪点),所以,渐进式采样通过多次迭代以消除噪点,每一个通道都是有噪点的,但如果把大量的通道平均在一起,你就会得到一个干净的结果“。
那么,很多人认的为渐进式渲染本身是无偏的,其实也不一定是真的。当然,你的光线追踪速度越快,那么有偏的越厉害。因为,任何渲染器都或多或少的,加入一些有偏的设置选项,来优化加速渲染。有那些选项这这个问题,当然这取决于开发人员的心情...那么,你可能想要了解一下这些惯用的设置。
常见误区
无偏渲染器是物理精确的。然而实际上,无偏和有偏都是不精确的。
BRDF(如 Blinn 或 GGX)材质算法本身就是基于真实世界的解决方案,
只是如何更快的实现真实的物理效果的区别。
全局 GI 缓存是有偏的,暴力 GI 也可能是有偏的。
路径追踪是无偏的,但在引入一些优化加速设置之后,也会完犊子。
许多渲染器会把有偏设置编码到渲染其中,并不向用户公开,你也不记道。
导致有偏渲染的那些坑
你是如何把无偏渲染完成有偏的呢,可能有的时候你记几也不记道吧?
有些渲染器会给你大坨设置,比如:Vray;
有些渲染器会给你隐藏掉很多设置,比如:Corona;
当然我们不是来比较渲染器,还是来了解下,那些设置会导致从无偏到有偏的影响吧。
这些技术都会导致渲染偏差,但可以减少计算或加速渲染,也是不错的。
无偏还是有偏
使用这些技巧,并不一定能帮助你渲染出牛逼的效果。
很多人对"无偏"或"有偏"这个词的意思,本身理解就很尴尬。
这两个术语从技术角度上科学的分析,也就是和"物理精确"有关。
无偏计算具有很高的精度,但并不代表你就渲染出牛逼的效果。
有偏计算虽然有些不精确,但也能达到牛逼的效果。
无偏渲染为了计算出更高的精度,当然会牺牲速度为代价,所以也会引入有偏设置,来加速渲染。
有偏渲染速度快,但精度对于新手来说非常感人,所以需要更多时间去学习和理解。
所以,如果觉得“无偏好,有偏不好”,这种理解本身就是有问题的。另外纠结快慢,或者那个渲染器更好,在这些问题上,本身就毫无意义,所以,光头大佬的《渲染的秘密》中,所说的心中无偏即有偏(其实是我编的),大致就是这么个道理。
本文也是,基于探索渲染引擎的一些原理,结合一些大佬的文章,希望能解决一些,大家在学习过程中遇到的困惑或问题。
建议,大家在初学阶段,选定一个撸起来先,不要过多的纠结好与坏、快与慢,适合自己就好。当有一定基础的时候,去拓展更多的渲染器,以便在不同的工作流程中,切换更合适当前工作的渲染器。
总结
无偏或有偏,只是在实现最终效果时所运用的算法或方法不同,无偏更稳,有偏速度更快,各有所长,但渲染的结果,还是基于你对渲染的理解和掌握,并不是渲染器本身解决的问题,任何渲染器都能实现真实的效果,但是渲染器猜不透你的想法。简而言之,没有最牛逼的渲染器,只有最牛逼的人。
666
别纠结软件了,纠结美术吧。
跟着大佬学知识
666666666666666666666666666666
55555555555555555
kk
555
学习一下
666
学习使我快乐
有意思噢,看到了另一个角度下渲染器之间的差异