Navigation

    CreatiCode Scratch Forum

    • Register
    • Login
    • Search
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • CreatiCode

    投射和接收阴影

    三维积木
    1
    1
    243
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • info-creaticode
      CreatiCode last edited by admin

      介绍

      我们周围的一切物体都会投射一些阴影(除非你是在一个完全漆黑的屋子里)。因此,添加阴影将使你的三维场景更加逼真。

      但是,计算和绘制阴影需要额外的电脑资源和时间。因此,在默认情况下,你添加的所有三维物体不会投射任何阴影。你必须使用代码积木来告诉三维引擎哪些物体会投射阴影。

      shad.gif

       

      如上所示,要生成阴影,你实际上需要告诉三维引擎 3 件事情:

      1. 光源:这将用于计算阴影的位置和形状
      2. 投射阴影的物体:如花盆或化身
      3. 接收阴影的物体:这是用于显示阴影的,例如桌子或地板。

       
       

      光源

      你只能使用 单点光或者单向光 作为产生阴影的光源。添加光源的时候,你最好给它起个名字,方便后面引用这个光源。

      请注意,在添加光源之前,你可能需要移除场景中所有已有的光源,否则阴影可能会看不见或者非常不明显。

      此外,光源的位置应在投影物体和受影物体的上方,否则它不会产生阴影。

      这是一个示例程序:

      147e311c-954b-4d41-b544-df59099d5a25-image.png

       
       

      使物体投射阴影

      要使物体投射阴影,你需要运行以下积木。它将使当前被选择的角色物体投射阴影。通常情况下,当你添加一个物体后,如果你希望这个物体投射阴影,那你应该紧接着就运行下面这个积木。

      8802b0e0-9a14-489a-8f3f-f61cc36e799f-image.png

       

      它接受 3 个输入:

      • 是/否:如果此输入为“是”,则当前的角色物体将开始投射阴影。如果此输入为“否”,则当前的角色物体将停止投射阴影。
      • 光源名称:光源的名称。如果它是空白的,那么将使用最后被添加的光源。
      • 模糊度:此数值控制阴影的模糊程度。一般来说,物体的阴影都有模糊的边缘。

       
       

      使物体接收阴影

      在添加光源和阴影投射物体后,我们还是看不到任何阴影。那是因为我们还没有指定阴影需要在哪里显示出来。

      要让一个物体接收和显示其他物体投射过来的阴影,你需要使用以下积木:

      cb56d95a-3e8a-4527-90f5-a83a752d2ea6-image.png

       
      如果输入为“是”,那么当前被选中的角色物体将会接受和显示其他物体投射的阴影;否则,角色物体将停止显示任何阴影。

       
       

      演示 1

      在这个程序中,我们作了 3 件事情:
      1.添加一个名为“光源1”的点光源
      2.添加一个会投射阴影的花盆
      3.添加一个将接收阴影的桌子

      1dbc3152-7599-42af-bfed-643b5e74df69-image.png

       
      你会看到如下结果:

      shad.gif

       
       

      演示 2

      在这个程序中,我们做了这 3 件事情:
      1.添加一个名为“光源1”的单向光源
      2.添加投射阴影的跳舞的化身
      3. 使用一个平面作为地板,用来接收阴影

      c4334296-e5e3-4c61-be40-e6b4acd150e5-image.png

       
      你会看到如下结果:

      s4.gif

      1 Reply Last reply Reply Quote 0
      • Pinned by  info-creaticode info-creaticode 
      • First post
        Last post