Looking really good =D
Announcement
Collapse
No announcement yet.
Localized-IBL implementation
Collapse
X
-
Originally posted by Chosker View Postthanks for the comments, it's really encouraging
I'll work on changing the Brightness at runtime, so gameplay can alter the IBL to become darker (for example for turning off a light). And then I'll probably make a somewhat better showcase using either the Sponza atrium or maybe the Elemental demo
Comment
-
Originally posted by Chosker View Post...that's what the Pull Request is for). If you want to support it at this point the right way would be to thumbs-up the pull request and maybe add a comment there...
-TorQueMoD
www.torquemod.com
Comment
-
Originally posted by TorQueMoD View PostLink gives a 404 error
Comment
-
I've updated the code to allow modifying the Brightness at runtime. If used well this could be used to dim the IBL in an area while dimming all lights that are affecting that same area. Tricky to use but could prove a neat trick. I'll try to make a testcase with the feature and show it a some point.
In the meantime however, I've been trying the system in a more production-like environment and I chose UT4's fantastic Outpost23 map for it.
I have to say placing the probes is tricky because of leaking so even if the ReflectionCapture baking takes a small amount of time (~20 seconds for 97 ReflectionCaptures) it requires quite some trial and error and placing fill lights to get the desired effect (I'm kinda cheating since I'm using the UT4's Baked Lighting as reference). Then again I'm not a lighting artist
This is how it looks at the moment:
Comparison screenshots here: https://imgur.com/a/EjEJ2zd
From this test I've noticed 3 issues that I'd really need to solve:- Particles are unaffected by IBL (so they look blue from the Skylight)
- Decals get really washed out
- Metals kinda stop behaving like metals
- 2 likes
Comment
-
Originally posted by Melvixz View PostThis is awesome!!
Thanks for what u are doing :- )
Can this work with lpv? Lpv has serious light leaks for interiors but holds some weight for exteriors.eventually I'll test it with LPV. I don't see why it shouldn't work - they wont interact with eachother but they could be complementary
Originally posted by ZacD View PostFrom those outpost comparisons, it looks like AO from textures are being ignored or even inverted? Or is that metalness issue you mentioned.
the issue is now fixed though. turned out to be the same metalness issue and it wasn't even a metalness issue after all- I just missed multiplying the resulting indirect light with the
GBuffer.DiffuseColor. it was easy to miss because the entire level geometry is bright-gray. this fixed both the metals becoming dark again and decals looking washed out.
here is the updated result:
next step is fixing the particles... and I just realized it's not just a particles issue but an entire translucency-lighting issue
apparently the translucency lighting's skylight contribution is applied on the base pass which complicates things a bit
btw I did a quick performance comparison. ReflectionEnvironmentAndSky costs around 0.5ms more using Local IBL compared to without (GTX 970). not too bad I would sayLast edited by Chosker; 07-16-2018, 02:43 PM.
Comment
-
Originally posted by DuncanT. View PostMaybe the metal issue has to do with DFAO? What do things look like with r.AOSpecularOcclusionMode 0 vs 1?uhmm interesting. r.AOSpecularOcclusionMode 0 makes metals even darker. I guess that's up to the user now though, since metals now behave consistently whether Local-IBL is used or not
Comment
-
Some new progress
Been struggling with Translucency in general. Since I found out that for translucency the skylight is applied in the Base Pass I've been looking for a way to do it differently.
Sadly it seems that translucent rendering is way too much decoupled from opaque, so the only way to achieve Localized IBL for translucent shaders is to do just as Epic did: process it in the Base Pass.
This means I have to re-read the reflection probes for translucent objects (I don't expect this to be very cheap), and also means I end up with copy-pasted code in different shader classes.
Struggles apart, it works
getting close to actually finishing this thing
- 2 likes
Comment
Comment