Emission In Reflection Probes

Hello. Who knows who to make emission in reflection probe? Please see the attached screenshot. Thanks

Hi, sorry I don’t understand your question?

Side note: Emissive in reflection probe will be store without any pre-exposition. Which mean you can’t store an emissive object more than 65535, it will be clipped. To be able to go to a larger range, you need to use the advanced setting: “Range compression factor”
https://docs.unity3d.com/Packages/com.unity.render-pipelines.high-definition@7.3/manual/Reflection-Probe.html

Hey. Well as u see. Reflection probes reflects the object itself but without emission. How to add that emission into reflection?

Slightly out of topic here, but if I may ask a few questions about this feature (since I recently implemented it myself):

  • Is there a way to auto set the range based on the brightest pixel of the reflection probe? (and if not, why not? I found it very useful and it removed the guesswork)

  • Was remapping the black point of the reflection probe also considered? (I decided against it in my implementation for mobile)

  • Is the compression factor able to go lower than normal, so that compression artifacts are less visible after DXT/whatever compression?

I did the above for my own custom probes and it was a huge win for ETC2/ETC compressed probes for Android (although that’s a very different use case than what HDRP is aiming for).

Example:
5676169--591829--magicETC.jpg

See reflection probe settings in the HDRP asset, you should be able to use the drop down to select the settings for probes, and allow post fx / emission to be rendered into probes. Not always recommended since bloom is an optical effect if that makes sense, so it is a guess why it is not default :slight_smile:

With probes as far as I know everyone can configure it in the HDRP asset like they do cameras, which includes post effects.

Ah sorry, have wrongly check the screenshots.
So works for HDRP 7.3.1 .

Which version are you using?

you should be able to use the drop down to select the settings for probes, and allow post fx / emission to be rendered >into probes

Nope, the bloom from emissive is coming from the main camera postprocess due to emissive intensity inside the reflection, you dont need to configure postprocess for reflection (and it is not supported currently).

2 Likes

Using 7.1.8 and it says its the last available version

Ok found the 7.3.1 will check now


Still not working. =_= What settings you use?

Haven’t done anything special:

  • install template
  • add a planar reflection
  • change ground to mirror (mettalic one, smoothness one)
  • add an emissive cube

can you explain your repro step?
Also Mac or Windows (or other?)

The OP is using reflection probes instead of planar.

The OP is using reflection probes instead of planar.
Right, sorry I am dumb :P, should have read carefully.
I can reproduce the issue. We will investigate.

1 Like

Yeah. But basically now i tried to use planar. Same result. No emissive in reflection. =)

And steps i reproduced it are the same u did
I’m on windows in case its relevant)

Hi,

so after digging into it I finally find the root of the issue.
Your emissive objects have certainly an exposure weight of 0 ? (or != 1.0)

5678497--592234--upload_2020-4-6_23-51-49.png

If you try with 1.0 it should work.

I discover that we don’t support this is not correctly supported by our reflection system (either planar or cube they works exactly the same).

We will add that to the documentation.

For tech detail, the root cause of the issue is in LitBuiltinData.hlsl code

// Inverse pre-expose using _EmissiveExposureWeight weight
float3 emissiveRcpExposure = builtinData.emissiveColor * GetInverseCurrentExposureMultiplier();
builtinData.emissiveColor = lerp(emissiveRcpExposure, builtinData.emissiveColor, _EmissiveExposureWeight);

We apply an inverse exposure multiplier based on the weight. BUT this inverse multiplier when we render reflection is 1.0. For reflection we don’t apply any pre-exposure otherwise it will not work with the scene.
The consequence is that when the reflection texture is read, we will apply the scene pre-exposure on it, BUT the emissive haven’t be inverse expose by the current exposure of the scene, thus Emissive will be largely decrease whereas this shouldn’t have get any impact (with exposure weight setup to 0);

We are discussing if there is a way to fix this.

2 Likes

Hey, thank you for digging into it. It works indeed now. Though u must put rly big numbers into emission intensity which is not a big deal(i just dont like it:smile:). Thank you

Just a note here. It is not arbitrary big number. Emissive is light. Like any other light (area light etc…), so it use the same kind of unit and is exposed the same way. If all your lights in your scene are based on real world values with a correct exposure for them, then the value for Emissive will be coherent. But it is true that this number in nits is very high (thus why we also propose EV100, where you can put 10 for example).

1 Like

Thanks for the note

I have a follow-up question: how does this work for unlit material? if unlit material works in the main camera pass (looks fine in the scene with 15EV exposure), what do I have to do to make it not black in planar reflection probe?

Turns out I need to output to Emission slot with Emission intensity matching the scene EV.