My particles are drawing their shadows on top of thelseves

Not sure why this is happening, here is a shot:

5611969--581128--upload_2020-3-20_15-24-34.png

It’s as if their shadows were projected on top.

I’m currently using the Standard Surface shader in the particle category.

Try increasing the shadow bias in the renderer module.

YOU THA MAN! Thank you so much!

If you happen to drive by again, you wouldn’t know a trick to make them lay flat on the ground once they collided? Trick is they have to keep their current settings so strong wind zones can pick them up again (current setting lets them rotate in the wind).

I wish we could use another collider shape.

Heh, sorry no we don’t have anything for that. you’d have to write your own scripts for it. Even the collision callback doesn’t support letting you modify the particle properties :frowning:

Ohhh noooooooo :frowning:

You could try looping children with the appropriate settings for each successive state

1 Like

The reason why the original setup has self shadowing is billboard particles turn to face the current rendering view. For the main camera this is obvious, but it also faces the light when rendering shadow maps. Another way to avoid this problem, apart from the shadow bias feature, is to use Render Mode Mesh, use the default Quad mesh, and use a 3D start rotation with a random range. This will have a very different look than the camera facing billboards, more like real leaves, but the benefit is now the particle orientation isn’t dependent on the view.

Another odd option is to play with the Pivot Z so the particle is pushed towards the camera far enough to no longer “intersect” with the shadow. But this has other artifacts that may be undesirable. For my own shaders I do this push in the shader itself such that the particle doesn’t change its visual appearance (you’ll understand what I’m avoiding once you try playing with the pivot z), but that’s a lot more involved.

As for having the leaves lay flat on the ground, the trick I’ve used is to make the collision on the particles very small, and have them die and spawn a new particle when they collide. It only works on perfectly flat ground unless you use a c# script to spawn the particles with a proper alignment.

2 Likes

Wow, haven’t been around for a while, been busy fine-tuning our parkour animations & transitions.

@MTUA You mean using sub emitters to emit new particles that lay flat and set the parent particle to expire on collision?

@bgolus As usual you’re a living wikipedia of game design knowledge! Thanks for all that info, I will get back into that as soon as I’m done knit picking our state machine.

Unity has so many knobs, without people like you id go nuts :eyes:

Thanks for the help!

1 Like