Search in
Sort by:

Question Status:

Search help

  • Simple searches use one or more words. Separate the words with spaces (cat dog) to search cat,dog or both. Separate the words with plus signs (cat +dog) to search for items that may contain cat but must contain dog.
  • You can further refine your search on the search results page, where you can search by keywords, author, topic. These can be combined with each other. Examples
    • cat dog --matches anything with cat,dog or both
    • cat +dog --searches for cat +dog where dog is a mandatory term
    • cat -dog -- searches for cat excluding any result containing dog
    • [cats] —will restrict your search to results with topic named "cats"
    • [cats] [dogs] —will restrict your search to results with both topics, "cats", and "dogs"

SceneColor in a surface material ignores translucent objects behind it

(4.17 built from source updated 15 september)

After upgrading from 4.15 to 4.17 (didn't try 4.16) the SceneColor material node when used in surface materials stopped considering translucent meshes and particles that are behind it. It just returns the color of opaque surfaces as if the translucent objects were not present.

To reproduce:

  • create a project form blueprint first person template

  • create a translucent unlit material

  • ---- connect to Emissive Color: SceneColor -> Multiply(0.5) -> EmissiveColor

  • ---- connect 1 to opacity

  • assign the material to one of the white cubes in the level

  • move the view so that the blue text on the floor (which is translucent) is behind the cube: the text is not visible through the cube

I also tried making the material lit and using Base Color instead of Emissive Color, but the result is the same.

Product Version: UE 4.17
more ▼

asked Sep 21 '17 at 03:10 PM in Bug Reports

avatar image

105 7 15 24

avatar image Deathrey Sep 21 '17 at 03:30 PM

Scene color should not contain translucent objects, if they are rendered in separate translucency pass.

avatar image matfer Sep 21 '17 at 03:32 PM

I forgot to mention that separate translucency is disabled in my project.

avatar image matfer Sep 21 '17 at 03:38 PM

However, I tried with separate translucent enabled and disabled, and enabling/disabling "Render After DOF" in materials, but I cannot find a combination that makes SceneColor consider translucent things. As I said, this was working in 4.15.

(comments are locked)
10|2000 characters needed characters left

1 answer: sort voted first

Hey matfer-

Thank you for submitting a bug report. I have reproduced this issue and logged a report for it here https://issues.unrealengine.com/issue/UE-50204 . You can track the report's status as the issue is reviewed by our development staff. Please be aware that this issue may not be prioritized or fixed soon.


Doug Wilson

more ▼

answered Sep 22 '17 at 05:02 PM

avatar image matfer Oct 02 '17 at 02:43 PM

I noticed that the issue has been closed as "By Design" for optimization reasons. However, how can I get the scene color including translucent objects? It seems to me rather common for a translucent material to get the color behind it and do something with it, but ignoring part of the scene looks like a big limitation.

avatar image Doug E ♦♦ STAFF Oct 02 '17 at 05:27 PM

If you are using source, you can revert the changes to Scene Color in 4.17 by merging in the 4.15/4.16 implementation. Specifically I would look at the MaterilaExperssions.cpp file. Since this change was intentional, there is no expectation that this will return to how it used to work. It would be best to pull the 4.15 implementation into your project.

avatar image matfer Oct 02 '17 at 06:23 PM

This is the only difference concerning SceneColor that I could find in MaterialExpressions.cpp:

 @@ -6882,7 +7017,7 @@ FString UMaterialExpressionSceneColor::GetInputName(int32 InputIndex) const
          // Display the current InputMode enum's display name.
          UByteProperty* InputModeProperty = FindField<UByteProperty>( UMaterialExpressionSceneColor::StaticClass(), "InputMode" );
 -        return InputModeProperty->Enum->GetEnumName((int32)InputMode.GetValue());
 +        return InputModeProperty->Enum->GetNameStringByValue((int64)InputMode.GetValue());
      return TEXT("");

Does not seem relevant, I guess the change is deeper in the code.

Anyway, I will deal with the fact that SceneColor is no more the one it used to be. I hope some way to get the correct scene color will be implemented soon.

avatar image Demnus Jan 04 '18 at 08:43 PM

Epic, why you did this to me? Why you broke my work, just like that, for no reason? I want my blurry explosions back! I want my blurry trails back! I want my blurry shock waves back! What's wrong with you Epic? Every current gen game has it! Why can't I? Weren't you able to add a checkbox or something to make it backwards compatible? Cutting out really important features with no word about, and calling it "by design" backdated. That make no sense! Give me back my work!

avatar image Tuxmask75 Sep 07 '18 at 04:36 PM

OMG ! ! ! I need this to work again !

(comments are locked)
10|2000 characters needed characters left
Your answer
toggle preview:

Up to 5 attachments (including images) can be used with a maximum of 5.2 MB each and 5.2 MB total.

Follow this question

Once you sign in you will be able to subscribe for any updates here

Answers to this question