Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • CreatiCode
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Brand Logo

CreatiCode Scratch Forum

  1. CreatiCode Forum
  2. 知识库
  3. 三维积木
  4. 投射和接收阴影

投射和接收阴影

Scheduled Pinned Locked Moved 三维积木
1 Posts 1 Posters 1.1k Views
  • 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.
  • CreatiCodeI Offline
    CreatiCodeI Offline
    CreatiCode
    wrote on last edited by admin
    #1

    介绍

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

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

    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
    0
    • CreatiCodeI 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
    Reply
    • Reply as topic
    Log in to reply
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes


    • Login

    • Don't have an account? Register

    • Login or register to search.
    • First post
      Last post
    0
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • CreatiCode