为什么Blender渲染动画要比PC游戏渲染更慢?

为什么Blender渲染动画要比PC游戏渲染更慢?

原因:Blender游戏引擎和Blender渲染动画,内部数据结构不同,运作方式也不同。

一、Blender内置了游戏引擎BGE(Blender Game Engine):在游戏引擎中,模型是静态的,不能改变。静态,从某种意义上说,它的拓扑结构是冻结的,事先已知,即使它是骨架绑定,其姿态也是固定的。

游戏使用的照明是实时的,但不涉及光子追踪。渲染速度的差异主要基于渲染方法。在PC游戏中,渲染通常是基于z缓冲区。将变换应用到模型每个顶点,获取视图坐标,计算每个顶点的着色器特定数据,然后通过tirangle,在过程中填充「深度缓冲区」。照明数据几乎是每个对象确定的,相互之间并无计算反射。

二、Blender渲染动画(Blender Cycles渲染器):就像一个射线摄影师,能够追踪反射。而不是栅格化三角形(即使用矩阵,计算每个poly的二维屏幕坐标),它将光线射入场景。因为要计算许多射线与场景之间的碰撞,构建这些需要时间,并且可能需要重建每一帧,这样渲染时间就会变长。

除此之外,游戏引擎拓扑结构被冻结(同样适用于纹理等)。Blender渲染动画时,模型可能具有修改器或插件等,它可能会在任何帧发生根本性改变(拓扑,顶点位置等),同样适用于materiasl。材质可能本身就是一个复杂的基于节点的着色器,而不是简单的预定义纹理。

因此,与游戏引擎相比,Blender渲染动画具有更大的灵活性,具有更高的真实度,同时也需付出更多的渲染时间。

*Blender开发版新增了Eevee实时渲染,有兴趣的朋友可以了解下。

原文连接

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索