Kila 材质
自 2.2.8Kila 材质(Kila Material)是 Photon 内置的一体化粒子材质。它不需要连节点,只要打开需要的模块:序列帧、多层贴图、遮罩、溶解、UV 与屏幕扭曲、渐变映射、柔边、菲涅尔、光照、雾球和贴地贴花。每种模块组合会编译成单独的 Shader 变体,没打开的模块不产生任何开销。

何时使用
| 使用 | 场景 |
|---|---|
| Texture 或 Sprite Material | 普通粒子上的一张贴图,Shader 内没有动画。 |
| Kila 材质 | 常见的 VFX 效果:滚动噪声、序列帧、溶解、扭曲、柔边、边缘光、贴花、热浪。不写 Graph 也能使用逐粒子数值。 |
| Shader Graph Material | Kila 没有对应模块的逻辑。可以先用 Kila 做出效果,再导出为着色器图,在 Graph 中继续修改。 |
创建
- 在 Resources → Material 中右键,选择 添加新资源 → Kila 材质。
- 把它赋给 Renderer 的材质槽位。新建的 Kila 材质默认打开 主贴图,使用半透明混合并自带渲染状态;槽位的 渲染状态 默认为 跟随材质,因此会直接使用材质的设置。
- 点击 浏览预设... 从现成效果开始,或自己添加模块。
内置材质库中没有 Kila 材质,预设只能从 Inspector 中打开。
转换 Texture Material
右键一个 Texture Material 图块,选择 转换为 Kila 材质。确认后文件会被原地替换:所有使用它的特效都会切换到新的 Kila 材质。只有可编辑文件夹中的普通 Texture Material(不含 Block Atlas)才有这个菜单项。
| Texture Material | 转换为 |
|---|---|
| 纹理 | 主贴图,采样方式与 Minecraft 一致:.mcmeta 未开启 blur 时启用 像素化;开启 clamp 时环绕方式为 钳制,否则为 重复 |
| 丢弃阈值 | Alpha 裁剪 |
| HDR 颜色 | 颜色;HDR 模式为 ADDITIVE 时改为 自发光 |
| 像素艺术 | 像素化 模块 |
| 软粒子 | 深度与交界 模块(柔边淡出的距离与指数) |
| 受动态光照 | 受动态光照亮 模块 |
转换后的材质会打开 使用槽位状态,每个槽位保留原来的混合、剔除和深度设置。
Inspector

从上到下依次是:
- 预览:实时缩略图。背景 可切换棋盘格、黑色和浅色。调试视图 单独显示某一步(最终结果、主贴图、Alpha、遮罩、溶解、扭曲、法线、UV),不会保存。预览滚出视野后,Inspector 旁边会浮出一个小预览。
- 浏览预设...:打开预设库。
- 渲染:混合、剔除和深度。
- 表面:颜色、透明度,以及粒子自身颜色、光照和雾如何作用。
- 每个已启用模块一个分组。分组标题上的开关可以关闭模块;模块设置会保留,保存后也不会丢失。
- + 添加模块...:打开模块对话框。
- 状态行
采样器 n/12,见限制。
渲染
| 选项 | 默认值 | 描述 |
|---|---|---|
| 使用槽位状态 | 关 | 混合、剔除和深度交给每个材质槽位决定,与 Texture Material 相同。打开后,除朝相机偏移外,下面各行都会隐藏。 |
| 混合 | 半透明 | 半透明、叠加、柔和叠加、正片叠底、不透明。 |
| 叠加度 | 0 | 仅柔和叠加:0 等于半透明混合,1 等于纯叠加,中间值两者兼有。 |
| 双面 | 关 | 同时绘制背面。 |
| 先画背面 | 关 | 打开双面后显示。先画背面再画正面,护盾、能量球这类封闭透明网格就能自己排好前后。 |
| 深度测试 | 开 | 让世界几何遮挡粒子。 |
| 深度写入 | 关 | 让粒子遮挡之后绘制的内容。 |
| 朝相机偏移 | 0 | −8 到 8 格。按离相机更近若干格的位置做深度测试,屏幕上的位置不变:贴地面片不再和方块顶面闪烁,公告板不再切进墙里。 |
渲染状态 为 跟随材质 的槽位会使用这些设置,见渲染状态。关闭使用槽位状态时,Kila 还会按自己的混合方式处理输出颜色(柔和叠加会预乘,正片叠底会向白色过渡,不透明会把 Alpha 设为 1)。想让槽位决定混合方式时,应打开 使用槽位状态,而不是把槽位改成自定义。
表面
| 选项 | 默认值 | 描述 |
|---|---|---|
| 颜色 | 白色 | HDR 颜色,强度大于 1 会发光并参与泛光。 |
| 强度 | 1 | 与颜色相乘,可以用粒子数据驱动。 |
| 透明度 | 1 | 与 Alpha 相乘,可以用粒子数据驱动。 |
| 自发光 | 黑色 | 在粒子可见处直接加到颜色上。 |
更多 中包括:
| 选项 | 默认值 | 描述 |
|---|---|---|
| 顶点色 | 乘 RGBA | 粒子颜色(颜色随生命周期等)的作用方式:乘 RGBA、只乘 Alpha、忽略、只乘 RGB。顶点 Alpha 用来驱动别的东西(比如溶解)时选“只乘 RGB”。 |
| 世界光照 | 开 | 随粒子所在位置的方块光和天空光变暗。发光特效请关闭。 |
| 雾 | 开 | 应用 Minecraft 雾。 |
| Alpha 裁剪 | 0.01 | 不透明度低于此值的片元直接丢弃。 |
| Alpha 锐化 | 1 | 对最终 Alpha(包括遮罩)取幂:大于 1 收紧软边,小于 1 放宽软边。 |
| 背面颜色 | 白色 | 乘到背面的颜色上,需要开启双面。 |
| 帧率步进 | 0 | 所有动画按这个帧率一跳一跳地播放,像手绘特效。0 表示平滑。 |
| 抖动 | 0 | 帧率步进大于 0 时显示。每一步 UV 跳动的幅度。 |
模块

+ 添加模块... 按分类列出全部 21 个模块,每个模块下方都有说明。点击 添加 会打开模块并展开它的分组;已经打开的模块显示 已添加。新材质只打开了 主贴图。
| 分类 | 模块 | 作用 |
|---|---|---|
| 贴图 | 主贴图 | 基础颜色和形状:一张可滚动的贴图,以及序列帧(列数、行数、帧来源为时间(帧率)或帧驱动、起始帧、帧混合、使用运动矢量贴图的运动矢量混合、随机行、随机起始帧),另有产生彩色边缘的色散。打开序列帧时,请关闭发射器的 UV 动画。 |
| 贴图 | 第二层贴图 | 以相乘、相加、插值或滤色方式叠加在主贴图上的第二张贴图。 |
| 贴图 | 第三层 | 再叠一层贴图。它的 UV 偏移不能绑定驱动。 |
| 贴图 | UV 扭曲 | 用流动的噪声扰动贴图(偏移),或沿 FlowMap 持续流动(FlowMap)。可以选择扭曲哪些贴图槽位。 |
| 贴图 | UV 旋涡与波浪 | 在读取贴图之前先旋转、剪切、波动 UV 或加涟漪:传送门、旗帜。 |
| 贴图 | 贴地投影 | 把粒子作为贴花画到后方地面上,顺着台阶和坡面走。朝向(地面或面片)、大小、投影深度、边缘渐隐、只投正对面。 |
| 贴图 | 像素化 | 把 UV 吸附到网格上,形成像素风。 |
| 颜色 | 渐变映射 | 通过渐变重新上色。输入为亮度、红色、Alpha、U 或 V;模式为替换、相乘或替换含 Alpha;偏移(绑定到生命周期可以让火焰逐渐冷却)。 |
| 颜色 | 屏幕扭曲 | 显示粒子背后被噪声贴图或表面法线推开的场景:热浪、折射。强度、不扭曲前景、色散、叠加。 |
| 颜色 | 色彩调整 | 色相偏移、饱和度、对比度、亮度、色阶。 |
| 透明 | 遮罩 1、遮罩 2 | 用另一张贴图裁剪形状。遮罩 2 与遮罩 1 相乘。 |
| 透明 | 溶解 | 沿噪声烧蚀消散:进度、软硬、描边宽度、描边颜色与描边渐变、描边方式叠加(发光)或替换,以及带权重和反向的方向(U 向、V 向、径向或贴图)。 |
| 透明 | 深度与交界 | 在与背后场景相交处柔边淡出,并在接触处产生交界高光(宽度、混合、衰减、硬度、随形状、测量方式、渐变、脉冲、碎边)。 |
| 透明 | 体积球 | 把面片变成从任何角度看都向边缘变薄的雾球。场景裁切会让它在被场景切开处变薄。 |
| 透明 | 相机淡出 | 镜头靠近时淡出(起始 0.5,淡出长度 2),不会糊满屏幕。 |
| 顶点 | 顶点偏移 | 用噪声沿法线或固定轴推动顶点。双向、边缘衰减。 |
| 光照 | 菲涅尔 | 在掠射角处边缘发光、边缘淡出或中心淡出。需要网格:公告板永远正对相机。 |
| 光照 | 光照 | 让粒子受方向光照:网格或球面法线,高度图或法线贴图凹凸,漫反射或六向光照模型,主光方向、环境光、包裹。动态光也按它照亮。 |
| 光照 | Matcap 反射 | 按表面朝向查一张预先画好的受光球体:玻璃、冰、金属。公告板上要配合光照模块使用。 |
| 光照 | 受动态光照亮 | 受 Photon 动态光源照亮。 |
贴图槽位
模块中的每张贴图都是一个槽位,控件都相同。点击缩略图打开 选择贴图,其中有程序化噪声、最近使用、内置和粒子贴图几个分区,以及 浏览文件... 按钮。也可以直接把 .png 拖到槽位上。右键槽位可以选择 选择贴图...、浏览文件... 和 恢复默认。
| 行 | 描述 |
|---|---|
| 通道(颜色槽位) | RGBA、红色作 Alpha、只取 Alpha、亮度作 Alpha。 |
| 通道(遮罩与噪声槽位) | R、G、B、A 或亮度。 |
| 密度、运动 | 仅程序化噪声(简单、梯度、Voronoi)。运动是 Voronoi 细胞漂移的速度。程序化槽位不占用采样器。 |
| 平铺、偏移、滚动 | 滚动的单位是每秒 UV。 |
| 详细 → UV 来源 | 网格、屏幕、世界 XZ(地面)、世界 XY、世界 ZY。世界平面每格平铺一次,在不同粒子之间连续对齐。 |
| 详细 → 旋转、旋转速度 | 绕 UV 中心的角度;每秒角度。 |
| 详细 → U 向环绕、V 向环绕 | 重复、钳制、镜像、裁切。裁切等于钳制,但贴图之外为透明,刀光会滑出去而不是被拉长。 |
| 详细 → 像素化 | 文件贴图使用最近邻采样。 |
| 详细 → 极坐标 | U 变为到中心的距离,V 变为绕中心的角度;半径和重复用于缩放。适合圆环、漩涡和放射条纹。 |
用粒子数据驱动数值
很多数值行带有链接按钮 用粒子数据驱动。绑定后会显示 驱动来源 和 倍率,最终值为 数值 + 倍率 × 来源。
| 来源 | 读取 |
|---|---|
| 常量 | 不读取:选择它即解除绑定。 |
| 顶点色 R、G、B、A | 粒子颜色,例如颜色随生命周期。 |
| 粒子生命周期 | 归一化年龄,0 到 1。 |
| 粒子随机数 | 粒子的随机数。 |
| 拖尾点生命 | 拖尾点的生命。 |
| 拖尾点位置 | 在拖尾上的位置。 |
| 自定义数据 | 发射器 Custom Data 的 数据流 0–3 与 通道 0–3(x、y、z、w)。 |
例如把溶解的 进度 绑定到顶点色 A,倍率为 −1,数值为 1:粒子会随颜色随生命周期的 Alpha 下降而溶解。
当前绘制无法提供的来源会读到 0,该行退回到它的数值。这时发射器 Inspector 顶部会出现 材质缺少数据 一行,并带有 一键修复 按钮:
- 自定义数据驱动读取了发射器没有定义的数据流。一键修复 会启用 Additional GPU Data,并添加该数据流或缺少的通道。
- 拖尾、光束和 Ara Trail 只有开启 GPU 实例化才携带粒子数据。一键修复 会打开实例化。
Particle Emitter 无论是否开启 GPU 实例化都携带粒子数据,见 Additional GPU Data。
预设

浏览预设... 打开包含 27 个预设的预设库。点击一个预设会替换材质的全部设置。这些预设合起来用到了所有模块,也可以当作示例。
| 分类 | 预设 |
|---|---|
| 基础 | 发光(叠加)、火花、随生命周期溶解、刀光、冲击波环 |
| 火与烟 | 火焰、烟雾(半透明 + 软粒子)、爆炸烟团、受光烟雾(六向)、雾球 |
| 魔法 | 法阵、传送门漩涡、闪电、蓄力球、能量拖尾 |
| 地面 | 地面法阵、焦痕、水面焦散、扫描波 |
| 表面与模型 | 能量护盾、水晶、全息投影、碎块 |
| 屏幕 | 热浪(屏幕扭曲)、喷气尾焰 |
| 风格化 | 卡通火焰、像素法术 |
- 能量拖尾 用于拖尾,需要在拖尾上开启 GPU 实例化(点一下 一键修复 即可)。
- 扫描波、能量护盾、水晶、全息投影 和 碎块 用于模型,使用 Model 渲染模式绘制。
- 蓄力球 在它的自定义数据流 0(x)获得一条 0 到 1 的曲线之前不可见。
导出为着色器图
自 2.2.8右键任意 Kila 材质图块,选择 导出为着色器图。对话框会询问 着色器图保存到、材质保存到 和 名称。导出需要一个已打开的项目,或资源库中的可写文件夹。
导出会写入:
- 着色器图
<name>,所有参数都是暴露变量; - 使用它绘制的 Shader Graph Material
<name>_graph,它把 Kila 的混合、剔除和深度复制为自己的 自带渲染状态(打开了使用槽位状态时除外)。
重名时会依次加上 _1、_2 等后缀。原 Kila 材质保持不变。
有些功能着色器图无法按 Kila 的方式实现。导出完成后的报告会列出未导出的内容:
- 贴地投影与体积球;
- 六向光照(光照模块);
- 交界高光(深度与交界);
- 朝相机偏移;
- 屏幕扭曲的叠加(按普通屏幕扭曲导出);
- 渐变中第八个之后的关键点;
- 已因采样器上限未生效的模块。
接下来见 Shader Graph 入门。
几何
Kila 材质可以绘制 Photon 的所有几何:开启或不开启 GPU 实例化的 Tile 粒子、Model 渲染模式(包括切线和动画 glTF 模型)、粒子拖尾、Trail 与 Beam 发射器,以及 Ara Trail(条带与管状)。
- 菲涅尔需要网格:公告板永远正对相机,没有掠射角。
- 在 Model 渲染模式下,法线贴图 凹凸需要打开 Renderer 的 tangent 开关(并开启 GPU 实例化)。高度图 凹凸不需要切线。
- 拖尾、光束和 Ara Trail 上的粒子数据驱动需要 GPU 实例化,见一键修复。
限制
- 缩略图中看不到。 深度与交界、屏幕扭曲、体积球的场景裁切和贴地投影都要读取场景的深度或颜色副本,而缩略图没有这些副本。缩略图还会去掉 HDR 强度、忽略朝相机偏移,并让粒子数据每 3 秒在 0 到 1 之间往返一次。这些效果请在场景中检查。
- 12 个采样器。 光照贴图、所有贴图和场景副本共用 12 个纹理单元(最多 9 张贴图)。以相同方式采样同一张贴图的槽位共用一个单元,程序化噪声不占用单元。超出上限时,模块会按固定顺序被舍弃,状态行显示
[X 未生效:贴图过多]。 - 叠加。 打开 叠加 后,屏幕扭曲会把自己的推开量累加到其他叠加模式的扭曲上,最后整帧按总和弯折一次,因此多个热浪能互相看见,也能看见之前画的所有特效。叠加时色散不生效。不使用光影包时始终可用。
- 自 2.2.9 使用光影包时,只有特效在光影通道之后合成才会叠加:光影合成模式 设为 光影通道之后,或 自动 为当前光影包选择了这条路径。否则会退回普通的、不叠加的扭曲。2.2.8 在光影包下总是退回普通扭曲。
- 贴地投影。 模块打开期间材质不做深度测试,即使打开了使用槽位状态也是如此。面片必须在屏幕上盖住贴花;大小为 0.5 时,公告板从任何角度都能盖住。贴花也会画到实体上,不会落在水面上(深度副本中没有水),在草和其他植物上可能出现空洞。