Page MenuHome

World Light Extraction
Confirmed, LowPublicTO DO

Assigned To
None
Authored By
Clément Foucault (fclem)
Aug 9 2019, 5:23 PM
Tokens
"Love" token, awarded by mindinsomnia."Love" token, awarded by kenziemac130."Like" token, awarded by roamzero."Mountain of Wealth" token, awarded by januz."Love" token, awarded by billreynish."Love" token, awarded by Serva."Love" token, awarded by jc4d."100" token, awarded by Frozen_Death_Knight."Like" token, awarded by Fracture128."Love" token, awarded by 295032."Love" token, awarded by higgsas."Love" token, awarded by gintszilbalodis."Love" token, awarded by SHEIKH."Love" token, awarded by Shimoon."Love" token, awarded by zhruith."Love" token, awarded by captGuimbal."Love" token, awarded by CobraA."Like" token, awarded by Striletsky."Love" token, awarded by ogierm."Love" token, awarded by corpse."Love" token, awarded by Alphisto."Love" token, awarded by andruxa696."Love" token, awarded by helderfcs."Love" token, awarded by monio."Love" token, awarded by mistajuliax."Love" token, awarded by tibor81."Love" token, awarded by rawalanche."Love" token, awarded by amonpaike."Love" token, awarded by bnzs."Love" token, awarded by szap."Love" token, awarded by ofuscado."Love" token, awarded by franMarz.

Description

Eevee world probe is not suited for very high frequency details and even less for sunlight. For this we want to introduce a threshold. All light under the threshold would be pushed to the world diffuse/reflection probe. All light above the threshold would be moved to an importance sample map and used to position a (virtual) sun light that represent the missing energy from the probe.

We can position the sun in 2 ways: randomly per sample using the importance map, or fixed using a Spherical harmonic decomposition.
The first one offers more precise lighting (can work with multiple light source) when the second one offers more stable lighting (good for a sun).

The good thing is that this virtual sunlight can be shadowed! Thus making most of the light coming from the environment shadowed.

This should fix this sort discrepancy between cycles and eevee:

Estimate : 2 weeks

Event Timeline

Clément Foucault (fclem) lowered the priority of this task from 90 to Low.Aug 9 2019, 5:23 PM
Clément Foucault (fclem) created this task.

I did some exploration of the idea. (see P1099)

(This in WIP a lot of things are not working correctly, mainly light intensity)


It seems promising but doing it on CPU accurately is not feasible in an interactive manner.
So final implementation should be done on GPU.


eevee,metalness0,roughness1

eevee,metalness1,roughness1

cycles,metalness0,roughness1

I think the main problem is the inconsistency of the three circumstances. In theory, the three situations should look the same. You don't need to sample multiple light sources, instead just calculate a metalness-roughness illumination model. The light intensity at the same normal should be approximately the same. I hope I clearly expressed what I mean.

Absolutely love this concept, it would optimise a lot of workflow and bring Eevee and Cycles closer to each other which is always a nice thing since it further enables the goal of allowing real time lookdev in the viewport in Eevee and switching to Cycles for a final render without fiddly changes for each render engine.

This is great. I really want thisss. I love Eveee, I really wish Evee to be better like this HDRI shadows
and maybe hybrid rendering by using evee passes and shadow reflection and indirect light passes and making renders faster :(

I hope this feature project doesnt stop or forgotten :((