How to have a lightmapped object not cast a shadow itself.

I have some ‘decal’ objects that are not playing nice with the lightmapper.

These decals are simply quads sitting just in front of another surface.

The decals are casting ugly shadows onto the wall behind them.

Is there a way to simply stop these decals from casting shadows, but still have them receive shadows.

I tried the ‘Cast Shadows’ option on the MeshRenderer, but this had no effect.

So… is this just another basic feature that Unity lacks?

No its more related to your shader.
Unity 3 does not cast realtime shadows from anything thats beast lightmapped.

Only the legacy lightmap shader will do that cause its a Unity 2 thing thats there for people and projects that upgraded, but its not halfway as integrated and feature rich as using beast.

Also if you talk about them not casting shadows in the lightmap → don’t make them static during the lightmap calculation

sorry if I went down the wrong path but your description is not exactly clear as you talk about self shadowing in the title yet the content you write has nothing to do with self shadowing at all as far as I see (self shadowing is indeed not controllable, either it casts full shadow or none)

Hi,

Perhaps I wasn’t so clear…

I am only talking about baked lighting/shadowing. No dynamic lights.

I want an object to have shadows cast on it, but for that same object not to cast its own shadow.

According to the Unity manual, if you set the ‘Scale in Lightmap’ value of an object to 0, then you will get the exact opposite effect of what I want.

" A value of 0 will result in the object not being lightmapped (it will still affect other lightmapped objects)."

I want the object to be lightmapped, but not to affect other lightmapped objects.

Just try looking for a “Mesh Renderer” component under your objects and simply uncheck the “Cast Shadows” box.