- 自定义材质
- 支持多个光源
- 支持遮挡物(遮挡光源)
- 相机移动处理(仅3.X版本)
-
预备1. 创建顶层图片,使用自定义材质
- 图片需要设置 packable = false
- step1.png
-
预备2. 场景添加LightScene组件
-
点光源使用. 给节点添加SceneLightComp组件,并设置对应参数
-
遮挡物使用. 添加PolygonCollider2D组件生成形状信息,添加SceneLightOccluder组件
- 如果设置遮挡物,顶层图片自定义材质需要勾选CALC_OCCLUDER
- step3_遮挡物.png
-
扇形光源使用. 节点添加SceneLightSector组件,并设置对应参数
- 光源和遮挡物节点移动会自动更新数据,目前仅监听挂有组件节点和其父节点。
- 顶层图片
- 需要设置 packable = false
- 点光源
- 最大数量为30。 可自行修改 lightScene.effect的light_max_num定义
- 扇形光源
- 最大数量为30。可自行修改 lightScene.effect的lightSector_max_num定义
- 遮挡物
- 最大数据长度为200。 可自行修改 lightScene.effect的occluder_max_num定义
- 如果设置遮挡物,材质需要勾选CALC_OCCLUDER
- 建议使用简易形状做遮挡物
- float使用中等精度
- lightScene.effect中
precision highp float;修改为precision mediump float; - 注意,性能有所提升,但是表现会有点不佳。适合遮挡物为矩形情况。
- 测试场景中圆形和星星形遮挡物,边缘阴影出现异常
- 测试场景中矩形遮挡物,表现较为正常
- lightScene.effect中
- 光照mesh方案
- 新建Camera, 设置单独Layer!
- 将顶层图片改用LightSceneMesh材质!
- 具体细节可参考LightSceneTestMesh场景
- 没有光源数量限制、没有遮挡物数量限制。
⚠️ 暂时不支持扇形光源 (该方案下点光源部分简单限制即可实现,因为兼容性和设置问题,暂未处理支持)⚠️ 功能裁剪里需要保留 3D/基础3D功能 (因为使用了MeshRenderer)- lightMesh1.png
手机端测试数据
| 场景名称 | FPS | 移动时FPS | 备注 |
|---|---|---|---|
| LightSceneTest.scene | 35~ | 35~ | 默认方案 + 高精度 |
| LightSceneTestMesh.scene | 120~ | 120~ | 光照mesh方案 |