跳到主要内容

灯光

现实环境由太阳、路灯、电视屏幕等多种光源照亮。在 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);

光源形状​

有四种光源形状:

  • 理想点。
  • 矩形。
  • 圆盘。
  • 球体。

理想点​

理想点光源形状是无限小的点,是默认形状。它是物理上较粗略但开销较低的近似。其他形状渲染更昂贵,但光照和高光反射更准确。

矩形​

矩形光源是具有指定宽高的平面四边形。

圆盘​

圆盘光源是具有指定半径的平面圆形。

球体​

球体光源是具有指定半径的球形。

光源形状

用途​

下表列出各形状与灯光类型组合的常见用途:

类型/形状理想点矩形圆盘球体
平行光太阳❌太阳或月亮太阳或月亮
点光源无灯罩灯泡❌❌无灯罩球形灯泡
聚光灯手电筒电视屏幕带灯罩灯泡带灯罩球形灯泡

❌ 表示没有常见用途,但仍可用于应用或游戏的特殊光照效果。

性能注意事项​

矩形、圆盘和球体形状比理想点形状渲染更昂贵。如果光源较小,或没有会明显暴露理想点光照误差的反射表面,应使用理想点形状。