【Godot4笔记】2D光照效果及阴影



在场景中创建Sprite2d,属性面板中Texture选择新建CanvasTexture,设置Diffuse(使用原图片)、NormalMap(使用原图的法线贴图)图片,在该Sprite2d节点下新建子节点LightOccluder2D,用来形成阴影,选中LightOccluder2D节点在2D界面编辑窗口绘制遮挡范围。可以右键这个Sprite2D节点,“将分支保存为场景”,复制多个后,方便统一修改。


添加灯光,创建一个用于代表光源中心的Sprite2D,然后在该节点下创建两个PointLight2D节点分别设置光照贴图,一个用于照出物体亮面,命名为SpriteLight,一个用于正常照亮生成阴影,命名为ShadowLight(*这样做是为了解决Godot的问题,详见参考视频),然后将ShadowLight节点属性Range设置为20(只要不与SpriteLight同级即可),勾选Shadow属性中的Enabled。
创建一个用作背景的Sprite2D,也将节点属性Range设置为20(与ShadowLight保持一致)。


参考:
【odot 4.0: Proper lighting setup for topdown 2D】https://youtu.be/4-DffHmFaPY
【unity技术教程2D法线贴图-给你的游戏增加质感!】https://www.bilibili.com/video/BV1a54y1e7DT/?share_source=copy_web&vd_source=64dc2a97b2c2fff4db1377a5bb4fcd26&t=250