投射和接收阴影
-
介绍
我们周围的一切物体都会投射一些阴影(除非你是在一个完全漆黑的屋子里)。因此,添加阴影将使你的三维场景更加逼真。
但是,计算和绘制阴影需要额外的电脑资源和时间。因此,在默认情况下,你添加的所有三维物体不会投射任何阴影。你必须使用代码积木来告诉三维引擎哪些物体会投射阴影。
如上所示,要生成阴影,你实际上需要告诉三维引擎 3 件事情:
- 光源:这将用于计算阴影的位置和形状
- 投射阴影的物体:如花盆或化身
- 接收阴影的物体:这是用于显示阴影的,例如桌子或地板。
光源
你只能使用 单点光或者单向光 作为产生阴影的光源。添加光源的时候,你最好给它起个名字,方便后面引用这个光源。
请注意,在添加光源之前,你可能需要移除场景中所有已有的光源,否则阴影可能会看不见或者非常不明显。
此外,光源的位置应在投影物体和受影物体的上方,否则它不会产生阴影。
这是一个示例程序:
使物体投射阴影
要使物体投射阴影,你需要运行以下积木。它将使当前被选择的角色物体投射阴影。通常情况下,当你添加一个物体后,如果你希望这个物体投射阴影,那你应该紧接着就运行下面这个积木。
它接受 3 个输入:
- 是/否:如果此输入为“是”,则当前的角色物体将开始投射阴影。如果此输入为“否”,则当前的角色物体将停止投射阴影。
- 光源名称:光源的名称。如果它是空白的,那么将使用最后被添加的光源。
- 模糊度:此数值控制阴影的模糊程度。一般来说,物体的阴影都有模糊的边缘。
使物体接收阴影
在添加光源和阴影投射物体后,我们还是看不到任何阴影。那是因为我们还没有指定阴影需要在哪里显示出来。
要让一个物体接收和显示其他物体投射过来的阴影,你需要使用以下积木:
如果输入为“是”,那么当前被选中的角色物体将会接受和显示其他物体投射的阴影;否则,角色物体将停止显示任何阴影。
演示 1
在这个程序中,我们作了 3 件事情:
1.添加一个名为“光源1”的点光源
2.添加一个会投射阴影的花盆
3.添加一个将接收阴影的桌子
你会看到如下结果:
演示 2
在这个程序中,我们做了这 3 件事情:
1.添加一个名为“光源1”的单向光源
2.添加投射阴影的跳舞的化身
3. 使用一个平面作为地板,用来接收阴影
你会看到如下结果: -