简介
发光材质(Emissive Material)能在引用该材质的 网格(Mesh)的面片区域发射光线,其光线也能在 场景(Scene)中反射,并且相关属性(例如颜色和强度)可以在游戏项目运行过程中实时更改,实现实时柔和的照明效果。

如 Blockman Go 平台常见的 萤石(Fluorite)就是通过发光材质制作。
自发光
当您在 项目窗口(Project)中创建一个默认的 材质资产(Material Asset),该材质会使用 SandMod 的 默认(Engine/Default)着色器(Shader),该着色器中的 自发光(Emissive)相关的参数能使场景中的 游戏对象(Game Object)产生发光效果。关于材质资产的创建方法请参阅 材质资产 章节,关于自发光的相关参数的解析请参阅 自发光 章节。
【Emissive_Material000.png】
材质资产中自发光的相关参数和调整后的显示效果。
其中自发光的亮度也会和自发光的颜色属性相关,白色(#FFFFFF)表示最高亮度,黑色(#000000)表示亮度为 0,默认情况下自发光的 颜色(_EmissiveColor)属性为黑色,即默认材质是不具备自发光功能。
【Emissive_Material002.gif】
不同 颜色(_EmissiveColor)属性下发光材质的显示效果。
间接光
由于默认情况下光照系统仅会显示 直接光照(Direct Lighting),所以即使调整了 材质(Material)自发光(Emissive)相关的参数仅会在屏幕中看到对应 游戏对象(Game Object)自发光现象,游戏对象上的发光材质就不会对 场景(Scene)的其他游戏对象产生影响。
【Emissive_Material003.gif】
默认情况下发光材质对环境不造成影响。
如果您希望发光材质可以影响周围环境,您需要将引用该材质的游戏对象以及能被其光线影响的游戏对象的移动性设置为 静态(Static),然后对该游戏对象所在的场景进行光照烘焙处理,烘焙光照的方法请参阅 光照贴图 章节。烘焙后引用发光材质的游戏对象才能为场景提供 间接光照(Indirect Lighting)的效果。
【Emissive_Material004.png】
烘焙光照后发光材质对环境造成影响的效果。
同时因为烘焙光照才会支持间接光照,而接受烘焙光照的游戏对象移动性必须为静态的,所以 SandMod 暂时不支持发光材质或被影响的游戏对象移动性为非静态的。
【Emissive_Material005.gif】
例如无法实现移动的角色会被发光材质影响。
虽然材质的自发光相关参数没有控制发光材质的影响距离,但发光材质的亮度也会按距离衰减,即您可以通过 自发光强度(_EmissiveStrength)属性控制发光材质影响的距离。
![]() | ![]() |
| 自发光强度(_EmissiveStrength)属性值为 1 时发光材质的影响范围效果 | 自发光强度(_EmissiveStrength)属性值为 5 时发光材质的影响范围效果 |


