“烤灯”是什么意思?


36

烘焙光照贴图是什么意思?我在Unity3d中听到了这个声音,然后又找到了这个用于Sketchup的LightUp插件,用于烘焙lightmap。

从我观察到的结果来看,烘焙的光照贴图为3d对象带来了更加逼真的感觉。在对象上烘烤光的目的是使cg动画看起来像在预渲染动画中看到的那样吗?


另外,无论何时烘烤东西,无论是物理,灯光还是其他任何东西。这意味着您已经设置了需要花费很长时间才能实时渲染/处理的内容,或者您​​希望每次播放都以相同的方式进行,因此您只需执行一次,然后保存结果以备后用,并且所有计算都已完成,显示出已烘焙的内容非常快,并且在所有播放过程中始终保持相同。
AttackingHobo

AttackingHobo,这是一个好方法。我现在明白了 但是很好奇,物理学将如何诞生?Luxrender是否可以计算光的物理量,从而产生逼真的渲染?
金钟佑

1
通过一次模拟并存储每个时间步长上所有对象的位置,旋转等,可以对复杂的场景进行物理学烘焙。然后,它们不再从现场重新计算所有值,而是从存储的值中进行回放。
AttackingHobo

Answers:


53

当游戏中有静态(不移动)光源时,有两种方法可以渲染此光源。您可以将其渲染为动态光源。也就是说,将其通过着色器管道进行馈送,该管道将计算其对屏幕周围所有内容,每一帧以及屏幕的影响。这显然很昂贵。或者,编辑者可以将光线照射到场景中。

我一直认为烘焙是一个更简单的版本:基本上,编辑器仅获取灯光周围所有内容的纹理,计算灯光对这些纹理的效果(使它们变亮,为它们上色,阴影等)。 ,并将其保存为替换纹理以供使用。因此,“灯光”周围的所有纹理看起来都像是在上面投射了灯光,但是从运行的角度来看,在运行时实际上并没有灯光。从本质上讲,这是一种错觉。

但是,Unity似乎正在生成一个lightmap。这与上面的概念相似,但是烘焙的照明被单独保存而不是修改基础纹理,并且我假设着色器在运行时将两者合并。这将具有保持平铺纹理优势的优势(即内存使用率低),因为它们没有将光直接烘焙到其中,因此它们可以保持平铺,并且着色器非常轻巧,尤其是与处理轻盈动感。

要使灯正常工作,显然必须要有一个静态灯。也就是说,您不能在游戏过程中移动它,因为光线已被烘焙到纹理中。另外,房间中的任何动态对象(例如玩家角色)都不会照亮它们,因此需要有某种例外,即为动态对象渲染光,而不是(重新)渲染静态的风景。


12
而且在大多数情况下,由于光照较柔和,因此可以以比其余纹理更低的分辨率保存光照贴图,看起来仍然不错,但渲染速度更快,并且占用的内存更少。
AttackingHobo

+1,这是一个非常不错的广泛答案,谢谢。:)
Xeo
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.