Skip to content
 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

2d光照示例

简易光照

  • 自定义材质
  • 支持多个光源
  • 支持遮挡物(遮挡光源)
  • 相机移动处理(仅3.X版本)

使用教程

  • 预备1. 创建顶层图片,使用自定义材质

    • 图片需要设置 packable = false
    • step1.png
  • 预备2. 场景添加LightScene组件

    • step2.png
  • 点光源使用. 给节点添加SceneLightComp组件,并设置对应参数

    • step4_点光源.png
  • 遮挡物使用. 添加PolygonCollider2D组件生成形状信息,添加SceneLightOccluder组件

    • 如果设置遮挡物,顶层图片自定义材质需要勾选CALC_OCCLUDER
    • step3_遮挡物.png
  • 扇形光源使用. 节点添加SceneLightSector组件,并设置对应参数

    • step_扇形光源.png

注意事项

  • 光源和遮挡物节点移动会自动更新数据,目前仅监听挂有组件节点和其父节点。
  • 顶层图片
    • 需要设置 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;
    • 注意,性能有所提升,但是表现会有点不佳。适合遮挡物为矩形情况。
      • 测试场景中圆形和星星形遮挡物,边缘阴影出现异常
      • 测试场景中矩形遮挡物,表现较为正常
  • 光照mesh方案
    • 新建Camera, 设置单独Layer!
    • 将顶层图片改用LightSceneMesh材质!
    • 具体细节可参考LightSceneTestMesh场景
    • 没有光源数量限制、没有遮挡物数量限制。
    • ⚠️暂时不支持扇形光源 (该方案下点光源部分简单限制即可实现,因为兼容性和设置问题,暂未处理支持)
    • ⚠️功能裁剪里需要保留 3D/基础3D功能 (因为使用了MeshRenderer)
    • lightMesh1.png

手机端测试数据

场景名称 FPS 移动时FPS 备注
LightSceneTest.scene 35~ 35~ 默认方案 + 高精度
LightSceneTestMesh.scene 120~ 120~ 光照mesh方案

联系作者

About

some code that just for test.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages