使用光源
-
预备知识
介绍
所有的场景都一定会包含一些光源,如果没有光,那么所有的东西都会一片黑暗,就像你走在一间没有光线的黑暗房间里看到的那样。
所以,哪怕是”空无“场景也包含了一些添加的光线,所以它并不是真正的空无。
移除所有光线
如果你要改变一个场景中的光线,你经常需要先删除所有在场景里现有的光线。你可以使用这个编程积木来做到:
举个例子,这是当你删除在”村庄“场景中的所有光源之后会发生的事情:
)
删除一个光源
如果你只是需要移除场景中的其中一个光源,你可以使用这个编程积木:
需要注意的是你可以在创造光源时指定它的名字。
环境光
在大多数程序中,你只需要拥有我们在大白天下的正常灯光。 这种灯光被称为“环境光”,意思是我们周围的光。 默认情况下,环境光会被添加到所有场景中。
你可以使用以下编程积木来在场景中添加环境光:
- 颜色: 会被添加到所有物体的光源颜色。举个例子,假设你要创建一个日落场景,那光源的颜色应该是金色的:
-
天空方向: 环境光模拟我们周围的物体如何把光线反射回到天空中。所以你需要指定天空的方向,通常会是”x = 0, y = 0,z = 1“。
场景在所有方向都会被照亮,面朝天空的部分会是最亮的,而在天空反方向的部分会是最暗的:
-
亮度: 亮度数值控制灯光有多明亮。100的数值代表正常的亮度,如果你把数值翻倍,那么灯光就会有翻倍的亮度。
-
光源名称: 你可以为光源命名并在过后用这个名称来代表这个灯光。
单向光(阳光)
有时候你只需要光源来自一个方向。举个例子,当来自太阳的光线抵达地球时,你可以把它们想象成来自一个方向的平行光束。
(image source: freepik)
你可以用下列编程积木把单向光添加到你的场景中:
-
颜色: 跟环境光一样。
-
光源方向: 光束指向的方向,默认情况下会使用”x = 0, y = 0,z = 1“的数值把它设置成下方。因为光线是平行的,物体的翻遍将不会得到任何光线:
-
光源来源:你也可以指定单向光的光源原点。它不会影响物体的样子,但会被用来生成物体的影子。
-
亮度: 跟环境光一样。
-
光源名称:跟环境光一样。
单点光源
单点光源是朝着所有方向散发光线的一个单点。我们身边的很多光源都可以被当成单点光源,比如一盏灯泡或一把手电筒。
你可以使用下列编程积木在场景中添加单点光源:
-
颜色: 跟环境光一样。
-
光源来源:你也可以指定光源来源的位置,以便所有的光线会从这个位置散发到所有方向。
-
亮度: 跟环境光一样。
-
显示位置与否: 虽然一个单点光源散发光线,但你通常不会在场景中看到它。为了帮你调试你的程序,你可以暂时把“显示位置”设定成“是”,这会在光源来源的位置添加一个发光的小球体。当然,就算你不是在调试程序,你依然可以把这个光球成为你场景展示的一部分。
-
光源名称:跟环境光一样。
演示
在这个演示中,四个单点光源被添加到盒子的四个顶点:
)
聚焦光源
第四种光源被称为“聚焦光源”。这种光源也从单点散发光线。但是,就像现实中的聚光灯一样,光线被限制在某个方向内。
你可以使用下列编程积木在场景中添加聚焦光源。默认情况下,聚焦光源的方向会落在Y轴的正面方向。你可以旋转它以使它转向其他方向。
-
颜色: 跟环境光一样。
-
光源来源:你也可以指定光源来源的位置,以便所有的光线会从这个位置散发到所有方向。
-
打开角度:聚焦光源散发光源角度的数值,应该坐落在1和179之间。
-
亮度: 跟环境光一样。
-
光晕:就像现实生活中的光线一样,你距离光源来源月圆,光线就会变得越模糊。你可以使用“光晕"参数来控制这个效果。
-
显示位置与否:当你把”显示位置与否“设置成”是“,一个发光的圆锥会被添加到场景中来代表聚焦光源的位置和方向。
-
光源名称:跟环境光一样。
演示
在这个演示中,一个聚焦光源被添加到盒子的Z轴上方。它的打开角度是60°,以及他围绕着Z轴旋转。
-