灯光
现实环境由太阳、路灯、电视屏幕等多种光源照亮。在 PlayCanvas 场景中,可以配置不同灯光类型和光源形状,近似现实中的各种光源。
下文介绍各灯光类型和形状,并在表格中列出不同组合的用途。
灯光类型
PlayCanvas 有三种灯光类型:
- 平行光。
- 点光源。
- 聚光灯。
平行光
最熟悉的光源是太阳。由于太阳距离地球极远,到达地表的光可近似视为沿同一方向传播。PlayCanvas 将这种光源称为平行光。
平行光照亮对象的效果如下:

点光源
点光源向所有方向发光,例如蜡烛。更多用途参见下方表格。
点光源照亮对象的效果如下:

聚光灯
聚光灯与点光源类似,但其发出的光被限制在锥形范围内。
聚光灯照亮对象的效果如下:

灯光方向
旋转实体可调整平行光和聚光灯方向:两者均沿实体的 Y 轴负方向照射,因此未旋转的灯光竖直向下。点光源向四周发光,旋转不影响它。
// an unrotated light shines straight down
light.setEulerAngles(0, 0, 0);
// tilted 45 degrees, it shines down and towards negative z
light.setEulerAngles(45, 0, 0);
注意,lookAt 调整的是实体 Z 轴负方向。它可以瞄准相机,但不能直接瞄准灯光;之后还需旋转四分之一圈,使 Y 轴负方向指向目标:
light.lookAt(target.getPosition());
light.rotateLocal(90, 0, 0);
光源形状
有四种光源形状:
- 理想点。
- 矩形。
- 圆盘。
- 球体。
理想点
理想点光源形状是无限小的点,是默认形状。它是物理上较粗略但开销较低的近似。其他形状渲染更昂贵,但光照和高光反射更准确。
矩形
矩形光源是具有指定宽高的平面四边形。
圆盘
圆盘光源是具有指定半径的平面圆形。
球体
球体光源是具有指定半径的球形。

用途
下表列出各形状与灯光类型组合的常见用途:
| 类型/形状 | 理想点 | 矩形 | 圆盘 | 球体 |
|---|---|---|---|---|
| 平行光 | 太阳 | ❌ | 太阳或月亮 | 太阳或月亮 |
| 点光源 | 无灯罩灯泡 | ❌ | ❌ | 无灯罩球形灯泡 |
| 聚光灯 | 手电筒 | 电视屏幕 | 带灯罩灯泡 | 带灯罩球形灯泡 |
❌ 表示没有常见用途,但仍可用于应用或游戏的特殊光照效果。
性能注意事项
矩形、圆盘和球体形状比理想点形状渲染更昂贵。如果光源较小,或没有会明显暴露理想点光照误差的反射表面,应使用理想点形状。