创建一个朝单一方向照射的光。
方向光不是从特定点发出的。它们就像一轮太阳,从屏幕外的某个地方照射进来。光的方向由三个介于 -1 和 1 之间的 (x, y, z)<code> 值设置。例如,将光的方向设置为 <code>(1, 0, 0)<code> 将从左侧照亮 <ahref=" reference="" p5="" p5.geometry"="">p5.Geometry 对象,因为光线直接指向右侧。</ahref="></code></code></code>
<code><code>
<p>有四种调用 <code>directionalLight()<code> 的方法,用于设置光源的颜色和方向。</code></code></p><code><code>
<p>调用 <code>directionalLight()</code> 的第一种方式有六个参数。前三个参数 <code>v1</code>、 <code>v2</code> 和 <code>v3</code> 使用当前的 <a href="/reference/p5/colorMode">colorMode()</a> 来设置光的颜色。最后三个参数 <code>x</code>、 <code>y</code> 和 <code>z</code> 设置光的方向。例如, <code>directionalLight(255, 0, 0, 1, 0, 0)</code> 创建一个红色 <code>(255, 0, 0)</code> 的光,朝向右边 <code>(1, 0, 0)</code>。</p>
<p>调用 <code>directionalLight()</code> 的第二种方式有四个参数。前三个参数 <code>v1</code>、 <code>v2</code> 和 <code>v3</code> 使用当前的 <a href="/reference/p5/colorMode">colorMode()</a> 来设置光的颜色。最后一个参数 <code>direction</code> 使用一个 <a href="/reference/p5/p5.Geometry">p5.Geometry</a> 对象来设置光的方向。例如, <code>directionalLight(255, 0, 0, lightDir)</code> 创建一个红色 <code>(255, 0, 0)</code> 的光,其方向是 <code>lightDir</code> 向量所指的方向。</p>
<p>调用 <code>directionalLight()</code> 的第三种方式有四个参数。第一个参数 <code>color</code> 使用一个 <ahref=" reference="" p5="" p5.color"="">p5.Color 对象或颜色值数组来设置光的颜色。最后三个参数 <code>x</code>、 <code>y</code> 和 <code>z</code> 设置光的方向。例如, <code>directionalLight(myColor, 1, 0, 0)</code> 创建一个颜色为 <code>myColor</code> 的光,朝向右边 <code>(1, 0, 0)</code>。</ahref="></p>
<p>调用 <code>directionalLight()</code> 的第四种方式有两个参数。第一个参数 <code>color</code> 使用一个 <ahref=" reference="" p5="" p5.color"="">p5.Color 对象或颜色值数组来设置光的颜色。第二个参数 <code>direction</code> 使用一个 <ahref=" reference="" p5="" p5.color"="">p5.Color 对象来设置光的方向。例如, <code>directionalLight(myColor, lightDir)</code> 创建一个颜色为 <code>myColor</code> 的光,其方向是 <code>lightDir</code> 向量所指的方向。</ahref="></ahref="></p>
</code></code></code></code>
示例
语法
directionalLight(v1, v2, v3, x, y, z)
directionalLight(v1, v2, v3, direction)
directionalLight(color, x, y, z)
directionalLight(color, direction)
参数
当前 colorMode() 中的红色或色相值。
当前 colorMode() 中的绿色或饱和度值。
当前 colorMode() 中的蓝色、亮度或明度值。
光的方向的 x 分量,范围在 -1 到 1 之间。
光的方向的 y 分量,范围在 -1 到 1 之间。
光的方向的 z 分量,范围在 -1 到 1 之间。
光的方向作为一个
颜色作为一个 p5.Color 的对象,一个颜色值数组,或者一个 CSS 字符串。
相关参考
ambientLight
创建一个向所有方向发光的光源。 环境光不是来自一个方向。相反,3D 形状从所有方向均匀地受到照亮。环境光几乎总是与其他类型的光一起使用。 有三种调用 ambientLight() 的方式,可以通过可选参数设置光的颜色。 第一种调用 ambientLight() 的方式有两个参数,gray 和 alpha。 alpha 是可选的。可以传递介于 0 和 255 之间的灰度和 alpha 值来设置环境光的颜色, 例如 ambientLight(50) 或 ambientLight(50, 30)。 第二种调用 ambientLight() 的方式有一个参数,就是颜色。可以传递一个 p5.Color 对象、一个颜色值数组或一个 CSS 颜色字符串,例如 ambientLight('magenta'),来设置环境光的颜色。 第三种调用 ambientLight() 的方式有四个参数,v1、 v2、 v3 和 alpha。 alpha 是可选的。可以传递 RGBA、 HSBA 或 HSLA 值来设置环境光的颜色,例如 ambientLight(255, 0, 0) 或 ambientLight(255, 0, 0, 30)。颜色值将根据当前的 colorMode() 进行诠释。 .
directionalLight
创建一个朝单一方向照射的光。 方向光不是从特定点发出的。它们就像一轮太阳,从屏幕外的某个地方照射进来。光的方向由三个介于 -1 和 1 之间的 (x, y, z) 值设置。例如,将光的方向设置为 (1, 0, 0) 将从左侧照亮 p5.Geometry 对象,因为光线直接指向右侧。 有四种调用 directionalLight() 的方法,用于设置光源的颜色和方向。 调用 directionalLight() 的第一种方式有六个参数。前三个参数 v1、 v2 和 v3 使用当前的 colorMode() 来设置光的颜色。最后三个参数 x、 y 和 z 设置光的方向。例如, directionalLight(255, 0, 0, 1, 0, 0) 创建一个红色 (255, 0, 0) 的光,朝向右边 (1, 0, 0)。 调用 directionalLight() 的第二种方式有四个参数。前三个参数 v1、 v2 和 v3 使用当前的 colorMode() 来设置光的颜色。最后一个参数 direction 使用一个 p5.Geometry 对象来设置光的方向。例如, directionalLight(255, 0, 0, lightDir) 创建一个红色 (255, 0, 0) 的光,其方向是 lightDir 向量所指的方向。 调用 directionalLight() 的第三种方式有四个参数。第一个参数 color 使用一个 p5.Color 对象或颜色值数组来设置光的颜色。最后三个参数 x、 y 和 z 设置光的方向。例如, directionalLight(myColor, 1, 0, 0) 创建一个颜色为 myColor 的光,朝向右边 (1, 0, 0)。 调用 directionalLight() 的第四种方式有两个参数。第一个参数 color 使用一个 p5.Color 对象或颜色值数组来设置光的颜色。第二个参数 direction 使用一个 p5.Color 对象来设置光的方向。例如, directionalLight(myColor, lightDir) 创建一个颜色为 myColor 的光,其方向是 lightDir 向量所指的方向。 .
imageLight
从图像创建一个环境光。 imageLight() 模拟了从所有方向照射的光。效果就像将绘图放置在一个以图像为纹理的巨大球体的中心。图像的漫反射光会受到 fill() 的影响,而镜面反射则受到 specularMaterial() 和 shininess() 的影响。 参数 img 是要用作光源的 p5.Image 的对象。 .
lightFalloff
设置 pointLight() 和 spotLight() 的衰减率。 光的衰减描述了其在距离上的光束强度。例如,一个灯笼具有缓慢的衰减,手电筒具有中等的衰减,激光笔具有迅速的衰减。 lightFalloff() 有三个参数, constant, linear 和 quadratic。它们是用于计算距离 d 的衰减的数字,如下所示: falloff = 1 / (constant + d * linear + (d * d) * quadratic) 注意: constant, linear 和 quadratic 应始终设置为大于 0 的值。 .