Decals not rendered without direct lighting?

I experienced some issues with decals not being rendered. It turned out that decals on brushes and meshes that were not directly exposed to sunlight did not render or render in an unexpected way:

I would expect the decal to render much more like that red box, that I just applied the same material to.

Am I doing something wrong? I tried the Decals content example map and they behave in a similar way. Is this intended?

I’m experiencing the same problem. The decal is visible as expected in direct light, but any indirect lighting or shadows causes the diffuse to disappear. I noticed that I can still see reflected light from the decal in the indirect lighting.

Judging from other similar threads, it seems as though this is a bug, I haven’t read of any possible solutions, so I am waiting along with you.

see answer here: udn.unrealengine.com/questions/163838/decals-not-being-rendered-in-shadows.html
(look for the green block and follow the instructions precisely)

I can’t access that page either unfortunately :-/

Hello ,

Thank you for the quick response. Unfortunately, the link provided above requires a login / password which I do not have. Is there any information for this decal issue that is available elsewhere?

Thanks again

That is unfortunate - we try to get that resolved. meanwhile I repost:

To solve this problem we create the DBuffer decal feature. Other implementations would be possible but they have problems we would to avoid (break physical based lighting). Documentation is coming but this is the short version:

New Experimental Feature: DBuffer Deferred Decals
•Deferred decals now work with baked/lightmass lighting. That has a cost - not all projects make use of baked lighting or need proper decals so this can be enabled as a project setting and you need to change the decal blend mode.

How to activate the feature:

• To try DBuffer locally, put this into BaseEngine.ini under [SystemSettings]
r.EarlyZPassMovable=1
r.EarlyZPass=2
r.DBuffer=1

• Use new DBuffer decal blend mode

•Similar changes can be made in the project settings in case you want that use that feature in your project.

EDIT: As of 4.6, you can set these console variables from above via the Project settings, as shown in the image below. You will need to restart your editor for the variables to take effect.

Ah, so you have to enable it for the project? That’s why it didn’t work. Thanks!

Got it, thank you for the information, everything seems to be working now.

Bumping this for the UDN solution. Can anyone post it somewhere where we could read it?

From the other thread: To solve this problem we create the DBuffer decal feature. Other implementations would be possible but they have problems we would to avoid (break physical based lighting). Documentation is coming but this is the short version:

New Experimental Feature: DBuffer Deferred Decals
•Deferred decals now work with baked/lightmass lighting. That has a cost - not all projects make use of baked lighting or need proper decals so this can be enabled as a project setting and you need to change the decal blend mode.

How to activate the feature:
• To try DBuffer locally, put this into BaseEngine.ini under [SystemSettings]

r.EarlyZPassMovable=1

r.EarlyZPass=2

r.DBuffer=1

Use new DBuffer decal blend mode

•Similar changes can be made in the project settings in case you want that use that feature in your project.

I added the lines under the [SystemSettings] section in the BaseEngine file but the decals are still invisible without direct lighting. I can pick the DBuffer decal blending modes, but to no effect. Here’s a pic of my material:

Make sure you restart the editor after chnaging the ini and save the material.

‘That has a cost’ what does that means?

Does it means the DBuffer Deferred Decals performance cost is high or did he mean the cost is that its only working with baked lightmass lighting?

Thank you

I can’t make it work on my end.

Ive added in BaseEngine.ini both the one from the engine and the one from my project under [SystemSettings] :

  • r.EarlyZPassMovable=1
  • r.EarlyZPass=2
  • r.DBuffer=1

I’ve set my deffered shader to “dbuffer transucent color, roughness” and the decal response to “Color roughness”. I tried different combinations.

When I started the project it seems all my scene shaders have been recompiled. This said unfortunately it seems it’s not working ; decals don’t show at all. I’m using UE 4.1.0. If I switch the Decal blend mode to translucent they show up again but of course I still have to issue I hope to avoid; see decals on items under shadows.

@ Did you try to put it in DefaultEngine.ini in YourGame/Config? That’s where I put it and it works fine for me.

DBuffer decals cost is:

  • full earlyz pass is required (mostly CPU performance, some optimizations possible, sharing for other features possible),
  • extra full screen buffers, at the moment 10 bytes per pixel (GPU memory)
  • extra bandwith for reading in the DBuffer during base pass (possibly slower base pass rendering) and some minor ALU/math cost to apply the properties.

More details will be the the documentation of the feature.

I saved the material and re-started the editor. The decal is now not showing up at all when Decal Blending Mode is set to DBuffer Translucent, Color, Normal, even under a direct Stationary spotlight… Any other setting does nothing as well.
If I set the Decal Blending Mode back to just Translucent, the familiar issue of the decal appearing only under a Stationary light.
Is there more documentation on this? I’m starting to lose patience with this bug and it’s blocking my progress.

@Bajee this method did not work for me. The DefaultEngine file in the project directory was also just three lines total.

I see this is a relatively old comment thread, but I’m seeing the same issue in 4.3.1 - is the solution in this thread still the preferred one?

Hi ,

Yes, as it stands this is still the current workaround.