使用光源
-
预备知识
介绍
所有的场景都一定会包含一些光源,如果没有光,那么所有的东西都会一片黑暗,就像你走在一间没有光线的黑暗房间里看到的那样。
所以,哪怕是”空无“场景也包含了一些添加的光线,所以它并不是真正的空无。
移除所有光线
如果你要改变一个场景中的光线,你经常需要先删除所有在场景里现有的光线。你可以使用这个编程积木来做到:
https://cdncreaticodecom.b-cdn.net/scratch-gui-projects/forum/39d59c7d-d1d6-4a7a-bcaa-cc9d84f0fa77.png" width="150" style="">
举个例子,这是当你删除在”村庄“场景中的所有光源之后会发生的事情:
https://cdncreaticodecom.b-cdn.net/scratch-gui-projects/forum/83b70dbe-8708-4117-ad26-edd7818a6183.gif" width="750" style="">)
删除一个光源
如果你只是需要移除场景中的其中一个光源,你可以使用这个编程积木:
https://cdncreaticodecom.b-cdn.net/scratch-gui-projects/forum/889835ec-fe9d-4670-9167-5de8d49622b7.png" width="230" style="">
需要注意的是你可以在创造光源时指定它的名字。
环境光
在大多数程序中,你只需要拥有我们在大白天下的正常灯光。 这种灯光被称为“环境光”,意思是我们周围的光。 默认情况下,环境光会被添加到所有场景中。
你可以使用以下编程积木来在场景中添加环境光:
https://cdncreaticodecom.b-cdn.net/scratch-gui-projects/forum/9e1b9f6a-e305-487e-a904-604b1196953e.png" width="1000" style="">
- 颜色: 会被添加到所有物体的光源颜色。举个例子,假设你要创建一个日落场景,那光源的颜色应该是金色的:
https://cdncreaticodecom.b-cdn.net/scratch-gui-projects/forum/4acc3c7a-deb4-49cf-abbf-ef1e02befa0a.gif" width="1000" style="margin-left: 40px; border-radius: 5px; border: 1px solid #29622d;">
-
天空方向: 环境光模拟我们周围的物体如何把光线反射回到天空中。所以你需要指定天空的方向,通常会是”x = 0, y = 0,z = 1“。
场景在所有方向都会被照亮,面朝天空的部分会是最亮的,而在天空反方向的部分会是最暗的:
https://cdncreaticodecom.b-cdn.net/scratch-gui-projects/forum/082fe07d-0144-4f0a-a5ad-00ba45d1250d.gif" width="950" style="margin-left: 40px; border-radius: 5px; border: 1px solid #29622d;">
-
亮度: 亮度数值控制灯光有多明亮。100的数值代表正常的亮度,如果你把数值翻倍,那么灯光就会有翻倍的亮度。
-
光源名称: 你可以为光源命名并在过后用这个名称来代表这个灯光。
单向光(阳光)
有时候你只需要光源来自一个方向。举个例子,当来自太阳的光线抵达地球时,你可以把它们想象成来自一个方向的平行光束。
https://cdncreaticodecom.b-cdn.net/scratch-gui-projects/forum/83b7f9c6-001d-40ff-be0a-023a16fa332e.png" width="600" style="border-radius: 5px; border: 1px solid #29622d;">
(image source: freepik)
你可以用下列编程积木把单向光添加到你的场景中:
https://cdncreaticodecom.b-cdn.net/scratch-gui-projects/forum/b500bf0f-f99f-44f5-a379-c70faf8d0df1.png" width="1000" style="">
-
颜色: 跟环境光一样。
-
光源方向: 光束指向的方向,默认情况下会使用”x = 0, y = 0,z = 1“的数值把它设置成下方。因为光线是平行的,物体的翻遍将不会得到任何光线:
https://cdncreaticodecom.b-cdn.net/scratch-gui-projects/forum/7a2a0dcd-ee15-4ad6-95c3-91ad78cbf0b7.gif" width="850" style="margin-left: 40px; border-radius: 5px; border: 1px solid #29622d;">
-
光源来源:你也可以指定单向光的光源原点。它不会影响物体的样子,但会被用来生成物体的影子。
-
亮度: 跟环境光一样。
-
光源名称:跟环境光一样。
单点光源
单点光源是朝着所有方向散发光线的一个单点。我们身边的很多光源都可以被当成单点光源,比如一盏灯泡或一把手电筒。
你可以使用下列编程积木在场景中添加单点光源:
https://cdncreaticodecom.b-cdn.net/scratch-gui-projects/forum/472b47b4-774d-445a-a160-243a5b43845f.png" width="1000" style="">
-
颜色: 跟环境光一样。
-
光源来源:你也可以指定光源来源的位置,以便所有的光线会从这个位置散发到所有方向。
-
亮度: 跟环境光一样。
-
显示位置与否: 虽然一个单点光源散发光线,但你通常不会在场景中看到它。为了帮你调试你的程序,你可以暂时把“显示位置”设定成“是”,这会在光源来源的位置添加一个发光的小球体。当然,就算你不是在调试程序,你依然可以把这个光球成为你场景展示的一部分。
-
光源名称:跟环境光一样。
演示
在这个演示中,四个单点光源被添加到盒子的四个顶点:
https://cdncreaticodecom.b-cdn.net/scratch-gui-projects/forum/b47da31e-3248-4674-a3f4-cb709f32b169.gif" width="800" style="border-radius: 5px; border: 1px solid #29622d;">)
聚焦光源
第四种光源被称为“聚焦光源”。这种光源也从单点散发光线。但是,就像现实中的聚光灯一样,光线被限制在某个方向内。
你可以使用下列编程积木在场景中添加聚焦光源。默认情况下,聚焦光源的方向会落在Y轴的正面方向。你可以旋转它以使它转向其他方向。
https://cdncreaticodecom.b-cdn.net/scratch-gui-projects/forum/6dba2d79-fef3-4b4f-9ed2-1a07f8305ab6.png" width="1000" style="">
-
颜色: 跟环境光一样。
-
光源来源:你也可以指定光源来源的位置,以便所有的光线会从这个位置散发到所有方向。
-
打开角度:聚焦光源散发光源角度的数值,应该坐落在1和179之间。
-
亮度: 跟环境光一样。
-
光晕:就像现实生活中的光线一样,你距离光源来源月圆,光线就会变得越模糊。你可以使用“光晕"参数来控制这个效果。
-
显示位置与否:当你把”显示位置与否“设置成”是“,一个发光的圆锥会被添加到场景中来代表聚焦光源的位置和方向。
-
光源名称:跟环境光一样。
演示
在这个演示中,一个聚焦光源被添加到盒子的Z轴上方。它的打开角度是60°,以及他围绕着Z轴旋转。
https://cdncreaticodecom.b-cdn.net/scratch-gui-projects/forum/38f86663-9d01-44c0-866f-58cf03c0c5fe.gif" width="1000" style="border-radius: 5px; border: 1px solid #29622d;">
-
I CreatiCode pinned this topic on
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login