Shadows are very important aspects in 3D space. Shadows enhance spatial awareness of objects in 3D space and give better user experience for players. However, shadow rendering is GPU intensive process. For low-end mobile devices, it will slow down your application. “Fast Shadow Receiver” will make shadow rendering much faster by minimizing the area where shadows are drawn.

“Fast Shadow Receiver” provides a useful mesh search tree called “Mesh Tree” which is used to search for polygons which are receiving shadows. Mesh Tree is useful not only for shadows but also for various purpose such as light projection, bullet marks, AI, and so on.

Features

  • Unity 4.3 or higher is required.
  • Unity Pro is not required.
  • It works with Blob Shadow Projector or shadow-map.
  • It can cast shadows on non-flat surface.
  • Terrain object is also supported (Only Blob Shadow Projector is available)
  • Really fast, even on low-end mobile devices!
  • Accompanied with fast (but no falloff) projector shadow shader.
  • It can handle multiple projectors or shadow casters.
  • Optimized for multi-core processors

Release Note

How it works

Usually in a scene that has a large environment object like a terrain, shadow rendering will causes a performance problem. The large environment object will occupy most of pixels on the screen, rendering shadows on it will use a lot of GPU resource.

So, it is better for you to remove shadows from the large object, replace each shadow with a pair of “shadow receiver” and “blob shadow projector”. “Shadow receiver” will generate a minimum mesh to receive a shadow based on associated projector and large environment object (See the image below).

Fast Shadow Receiver is designed to work with Blob Shadow Projector.

Additionally, Fast Shadow Receiver can also work with shadow-map. However, lighting will not be applied, which makes the shadows not realistic. Shadow-map will be rendered by being multiplied or blended with the scene.

Fast Shadow Receiver is an asset for optimizing Projector performance. It is applicable not only to Blob Shadow Projector but also to Light Projector and Bullet Marks.
LightProjector BulletMarks

Documents

Links

7 thoughts on “Fast Shadow Receiver

  • 2015/10/20 at 6:39 PM
    Permalink

    Hello!
    First of all – great tool indeed! Thank you.
    Now about a problem:

    I am trying to apply a global shadow texture to my scene (houses, rocks etc) to get shadows on vehicles only. Vehicles cast shadows on the ground too. Thus I have vehicle object which casts its own shadows from local shadow caster and can receive shadows from global shadow caster. The problem is, that then I try to use global shadow map shadows under cars become of lowest resolution possible and become almost invisible.
    I have no idea what to do….

    I have tried same approach with default Unity BLOB projectors – works fine.
    Is there a hint how to use receiver and caster on same object with your scripts?

    Thank you in advance.
    Regards, Alex.

    Reply
    • 2015/10/20 at 8:55 PM
      Permalink

      Hi,
      Thank you for the comment.

      I am a little bit confused. You have a blob projector and a shadow receiver for each vehicle, and the vehicles also receive a global shadow map, right? It should be okay. There is nothing special you need to do. If the resolution of the shadow map changed, maybe some shadow receivers are receiving the global shadow map. Please check if the shadow receiver object has a check on “receive shadows” (in Mesh Renderer component) or not. And if it does, please remove the check.

      Reply
  • 2016/06/04 at 3:06 PM
    Permalink

    hii i love your free asset and it works great
    then i buyed your paid asset but as i used i didn’t know how to use it i searched for tutorial but i cant find one , i buyed your paid asset but now i am forced to use your free asset
    plzz help me
    how can i setup to project multiple shadow from my sun ( directional light )
    and i covers all mesh in my scene

    Reply
    • 2016/06/05 at 10:53 PM
      Permalink

      Hi, thank you for using our assets!
      If your dynamic shadow projectors are working already, you can use Easy Setup Wizard.

      Reply
  • 2016/08/07 at 11:36 AM
    Permalink

    Hi, I’m having problem displaying shadow on transparent object. After reading the instruction of Fast Shadow Receiver, I think your asset could display shadow on transparent object, is that correct?

    Reply
    • 2016/08/08 at 1:27 PM
      Permalink

      That’s a good question. Several problems can happen when displaying shadow on transparent object.

      1. Projector will ignore transparent objects.
      2. Transparent objects will overwrite projector shadows.
      3. MeshShadowReceiver does not include transparent polygons by default.

      When you use Fast Shadow Receiver, 1st problem will not occur. Because shadow receiver objects can receive shadows on behalf of the transparent objects.

      To avoid the 2nd problem, those transparent objects should be rendered before the projector shadows. Projector shadow material has 2999 render queue value, so the transparent object should have 2500 – 2998 render queue value.

      To fix the 3rd problem, please remove “Transparent” from “Exclude Render Types”, when you build a Mesh Tree. (see Create a Mesh Tree).

      Reply
  • 2017/04/08 at 4:23 PM
    Permalink

    This will enable ShadowProjector culling and Fast Shadow Projector will try to disable ShadowProjectors that are either off-screen or aren’t projecting onto receivers.

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *

Anti Spam Code *