您的位置:首页 > 移动开发 > Unity3D

为移动物体使用光照探测器

2018-02-17 21:44 162 查看
原文链接:为移动物体使用光照探测器

光照贴图将真实的反射光烘培到静态物体表面的问题上,极大增加了场景的写实感。但是由于光照贴图的特征,它只能被应用到被标记为Lightmap Static的不移动物体上。

实时光和混合光能向移动物体投射直接光,但是不能从静态环境获得反射光,除非使用光照探测器。光照探测器存储光照在场景周围如何反射的信息。这样物体穿过游戏环境的空间时,它们可以使用存储在光照探测器中的信息,显示当前物体位置的近似反射光。



一个显示静态景物反射光的例子

在上面的场景中,定向光照射到红色和绿色建筑这些静态景物上,反射光被投射到场景中。反射光分别将每个建筑物正前方的地面染成了红色和绿色。因为所有模型都是静态的,所有这些光照都被存储到了光照贴图中。

当场景中引入移动物体时,它们不会自动接收反射光。在下面的图片中,救护车(一个移动的动态物体)没有被红色建筑的反射光影响。它的侧面是平坦的灰色。这是因为救护车是可以在游戏中移动的动态物体,不能使用静态的光照贴图。这个场景需要光照探测器让移动的救护车获取反射光。



救护车的侧面是平坦的灰色,尽管它应该从建筑物的前方获取一些红色反射光

为了使用光照探测器向移动的动态物体投射反射光,必须在场景中放置光照探测器,覆盖场景中移动物体可能到达的空间区域。

在场景中放置的探测器形成一个3D区块。移动物体在区块中任意位置的光照信息,会使用最近的探测器烘焙信息进行插值来近似。



一个在静态景物周围放置光照探测器的简单例子。光照探测器显示为黄色的点。它们使用品红色的线链接,显示它们定义的区块。

添加探测器并烘焙场景中的光照后,移动的物体会从场景中最近的光照探测器获取反射光。在于上面相同的例子中,移动的物体(救护车)现在可以从静态景物获取反射光,汽车的一侧因为红色的建筑反射光而染成红色。



通过场景中的光照探测器,救护车的一侧获取建筑物正前方反射的红色光照而染成红色

选中一个动态物体时,场景视图会显示当前插值的反射光使用的最近的探测器。距离移动物体最近的探测器形成一个四面体区块,移动物体的光照使用四面体的四个顶点进行插值。



物体被选中时,照亮物体的光照光照探测器会在场景中显示出来,用黄线连接成四面体区块

当一个物体穿过场景时,经过一个个四面体区块,根据当前在四面体中的位置计算它的光照。



一个动态物体穿过有光照探测器的场景,物体连续穿过光照探测器形成的四面体区块。

2017-06-08发布,没有编辑审查

在5.6种光更新了光照探测器
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  unity manual graphics