参考 spotLight()

spotLight()

创建一个从一个点朝单一方向发出光线的灯光。

聚光灯类似于手电筒,只朝一个方向发出光线,形成一个锥形光束。可以使用角度和集中度参数来控制锥形的形状。最多可以同时激活 5 个聚光灯。

有八种调用 spotLight() 的方式,它们用于设置光源的颜色、位置和方向。比如,spotLight(255, 0, 0, 0, 0, 0, 1, 0, 0) 创建了一个红色 (255, 0, 0) 的光源, 位于原点 (0, 0, 0),指向右侧 (1, 0, 0)

angle参数是可选的。它设置光锥的半径。 例如, spotLight(255, 0, 0, 0, 0, 0, 1, 0, 0, PI / 16) 创建了一个在原点 (0, 0, 0) 的,红色的 (255, 0, 0) 光;该光以 PI / 16 的角度指向了右侧的(1, 0, 0)。 在默认情况下, anglePI / 3 的弧度。

参数 concentration 也是可选的。它将光聚焦在光锥的中心。例如,spotLight(255, 0, 0, 0, 0, 0, 1, 0, 0, PI / 16, 50) 创建了一个红色的 (255, 0, 0) 光源,位于原点 (0, 0, 0),指向右侧 (1, 0, 0),以 PI / 16 弧度的角度聚焦度为 50。默认情况下,concentration 为 100。

示例

语法

spotLight(v1, v2, v3, x, y, z, rx, ry, rz, [angle], [concentration])
spotLight(color, position, direction, [angle], [concentration])
spotLight(v1, v2, v3, position, direction, [angle], [concentration])
spotLight(color, x, y, z, direction, [angle], [concentration])
spotLight(color, position, rx, ry, rz, [angle], [concentration])
spotLight(v1, v2, v3, x, y, z, direction, [angle], [concentration])
spotLight(v1, v2, v3, position, rx, ry, rz, [angle], [concentration])
spotLight(color, x, y, z, rx, ry, rz, [angle], [concentration])

参数

v1
数字:

当前 colorMode() 中的红色或色相值。

v2
数字:

当前 colorMode() 中的绿色或饱和度值。

v3
数字:

当前 colorMode() 中的蓝色、亮度或明度值。

x
数字:

光的x坐标。

y
数字:

光的y坐标。

z
数字:

光的z坐标。

rx
数字:

光方向的x分量,取值范围为-1到1。

ry
数字:

光方向的y分量,取值范围为-1到1。

rz
数字:

光方向的z分量,取值范围为-1到1。

angle
数字:

光锥的角度。默认为 PI / 3

concentration
数字:

光的聚焦度。默认为100。

color
p5.Color|数字[]|字符串:

可以是 p5.Color 对象、颜色值数组或 CSS 字符串的颜色。

position
p5.Vector:

作为 p5.Vector 对象的光的位置。

direction
p5.Vector:

作为 p5.Vector 对象的光的方向。

Notice any errors or typos? Please let us know. Please feel free to edit src/webgl/light.js and open a pull request!

相关参考