试图在Unity中重现光源Lara Croft Go

时间:2017-09-21 15:49:17

标签: unity3d shader hlsl shaderlab

我想要投射到我的关卡几何体的多个平面上的灯光,以模仿此视频中的效果:http://youtube.com/watch?v=vujrxOmh8Jc

我试图用点光源重新创建它,如:unity light with custom attenuation

但是我只在平面上投射,而不是像Lara Croft Go游戏那样在垂直平面上投射: enter image description here

对我做错的任何想法都表示赞赏。

2 个答案:

答案 0 :(得分:1)

在"点灯"上似乎有一个自定义灯光:使用斜坡来定义衰减,它们可能完全在着色器中计算而根本不依赖于统一灯:有实例多个灯在重叠时正确混合在一起(一个在Lara上,另一个在感兴趣的点上),而不是一起添加,而是作为max()函数。

阴影与Lara的位置或视差无关。环境中的阴影永远不会移动,但它们会影响一切,暗示阴影映射而不是投影仪。

预处理可能是从方向计算阴影,结果调制点光源的阴影(而不是像建议的点,因为斑点仍有位置,阴影会移动)。有一个值得注意的例外:当她爬上墙壁时,拉拉的阴影本身似乎改变了方向,而杠杆则是阴影不会同时移动。其中没有一个像投影仪那样有倍增或加法问题,暗示会产生一个"阴影蒙版"将两个方向性阴影与"每个面向图块的方式相混合"拉拉投影仪。然后这个掩模调制照明,它被添加到环境顶部(不是平坦的,可能是三频带),然后由雾修改。

所有猜测当然:)

答案 1 :(得分:0)

修改

根据视频示例,它看起来像一个位于屏幕下方和角色右侧的聚光灯,以便它投射在水平几何体的外露面上。这是因为相机的固定角度。

因此,不是围绕角色的点光源,而是在它们上方放置一个聚光灯,并且随着角色一起移动相机的右侧(空对象可能在这里有所帮助)。

- 原件

看起来像参考图像中垂直平面上的环境光。我不知道点光源是如何实现的,因为光线会被平面几何体阻挡,从而像你的球体一样投射阴影。

您可以使用环境光使该平面可见或设置太阳'使用定向灯照明。如果您只希望场景的特定部分亮起,则可以使用地图中这些部分的区域灯或固定的其他点光源。