Search Unity

Unity 5 Global Illumination - Disappointed

Discussion in 'General Graphics' started by MaT227, Nov 28, 2014.

  1. MaT227

    MaT227

    Joined:
    Jul 3, 2012
    Posts:
    628
    I am glad that Unity 5 has improved his graphic qualities (Physically based shaders, Lighting, Global illumination, etc.) but I am wondering if it is possible to calculate Global illumination in realtime. From what I've tested, it's not but I would like to know if this is possible.

    I am developing a product that needs realtime Global illumination, by realtime, I don't mean instant magical Global illumination but some kind of baking process, like in the editor.

    I was very happy to see that in Unity 5 you can get a nice Global illumination on static objects without having to wait for complete light-mapping process like in Unity 4. But I find a bit too bad that you are not able to calculate this at runtime, but maybe I am wrong.

    Is there any solution to obtain global illumination in runtime dynamically ?

    Thanks a lot.
     
  2. Mark_29

    Mark_29

    Joined:
    Aug 11, 2014
    Posts:
    79
    I am also curious about this. I was wanting to animate the gradient of a skybox and or the light rotation and was wondering if there is a way we could bake 2 states and tween from one to the other?
     
  3. MaT227

    MaT227

    Joined:
    Jul 3, 2012
    Posts:
    628
    Any idea ? Maybe from somebody from Unity to tell us if this is possible.
     
    Last edited: Nov 30, 2014
  4. braaad

    braaad

    Joined:
    Oct 4, 2012
    Posts:
    102
    You need to use light probes and tick "Use Light Probes" on the materials you want lit.
     
  5. RenOli

    RenOli

    Joined:
    Jan 23, 2013
    Posts:
    102
    Light probes will turn the lights in real time...
     
  6. MaT227

    MaT227

    Joined:
    Jul 3, 2012
    Posts:
    628
    Unfortunately light probes can't be instantiated in runtime in my opinion and it won't be useful in my case. Lets imagine an empty scene in runtime and I instantiate a room with a red wall and a window (not a real window but a simple hole).

    How can I calculate lighting for that room in runtime ? Concerning lighting I am talking about global illumination features available with Enlighten and Unity 5 (light bounces, color bleeding if light hits the red wall, ambient occlusion, etc.).
    Is it possible ?
     
  7. MaT227

    MaT227

    Joined:
    Jul 3, 2012
    Posts:
    628
  8. MaT227

    MaT227

    Joined:
    Jul 3, 2012
    Posts:
    628
    To be honest I am really disappointed by the new Unity 5 global illumination features.

    I am not talking about the visual results that could be obtained by using the Enlighten technology which are really great, but by the workflow and the runtime limits of the system.

    From what I've tested, it's quite the same as the old lightmapping but with faster results and some kind of runtime customization (you can only change lighting and materials at runtime). But there's no way to add geometry informations to the global illumination system during runtime even with some compute time and my opinion it's too bad to not support dynamic objects.

    But I hope that I am wrong...
     
    Last edited: Dec 2, 2014
  9. peteorstrike

    peteorstrike

    Unity Technologies

    Joined:
    Oct 4, 2013
    Posts:
    116
    Hi @MaT.!

    Sorry for the slow replies, I've been out of the office until today. There will be more runtime support for baking as we go through the 5.x cycle, although there's likely going to be some requirements on how you author your assets to get the best results.

    A general workflow for this in future might be to create prefabs of static geometry as level chunks or groups of props and then instantiate these in at runtime. This would work especially well for terrain chunks or individual rooms that don't directly affect each other, so your example of red wall and window hole should work correctly. Dynamic objects would still need to be dealt with using lightprobes, however.

    If there's specific features or use cases you'd like to see in 5.x, then it might be worthwhile posting them in the official GI feedback thread here so they get more visibility - http://forum.unity3d.com/threads/official-5-0-feedback-request-for-global-illumination.283232/
     
  10. MaT227

    MaT227

    Joined:
    Jul 3, 2012
    Posts:
    628
    Thank you for your answer @peteorstrike,

    What you are announcing is a very good news but I am always wondering why don't you support dynamic objects.
    Let my quote Geomerics - Creativity
    I would also like to thank you for the link you posted. I'll make a post about my suggestions for GI, a good thing would be to have some feedback about our requests but this is a detail.
    After reading the different posts, there's one which is, in my opinion, really close to the reality : Paolo Surricchio
    The Enlighten technology is fantastic but look at the DynamicGI class, you have access to nothing... I think that you don't offer much control on the Enlighten technology.

    When I was using Unity 4 I would love to have access to lightmapping baking features during runtime even with compute time like in the editor. But it was not the case, and to be honest it was quite logical according to the lightmapping definition.
    With the announce of Unity 5 I was so happy to have access to dynamic GI features, I didn't need this runtime lightmapping anymore, but this was not true.

    Unity 5 GI
    I am sorry but this is quite a disappointment because it is not as dynamic as it says...In my opinion, I am not much advanced as in Unity 4 concerning GI and dynamic objects and dynamic worlds. I was not expecting GI on dynamic or generated objects in a blink of an eye but at least some great access to the GI Api and even compute times in runtime to generated nice results during runtime.

    Anyway, Thanks again for your answer, and don't misunderstand my post, I am not saying that what you've done is bad, implementing Enlighten in Unity 5 is a great idea and it gives fantastic results. It gives a faster feedback for artists, you have a great control on lighting, etc... but for my project it's not as promising as it sounded unfortunately.
    I also understand that Unity 5 is currently in Beta and it's the beginning but I think that the Enlighten integration if far not finished.
     
  11. RenOli

    RenOli

    Joined:
    Jan 23, 2013
    Posts:
    102
    Hey MaT., lets not forget that Unity is still on Beta and not forget that nothing in game have to be true and some times some trick will do an amazing result.

    I don't know if it will help you, but there is a plugin that bakes many lightmap and lightprobs and saves it separately and than you can turn on and off in realtime.. I dont know if it works with all the Unity 5 feature... but it will be cool to check it out, maybe it help a little. Its called Lightmap manager, it is inside MXD Bundle


    Now I don't really know how it would work on Unity 5, you would have to ask them if there is a support, but that is cool because you can have as many lights conditions in the scene as you wish..

    Hope it helps. :)
     
  12. MaT227

    MaT227

    Joined:
    Jul 3, 2012
    Posts:
    628
    You are right @RenOli, like I said in my previous post, Unity 5 is still in beta and we don't know the full roadmap, and it's fair to say that they've already maid an amazing job !

    Thank you for the link but I already know it, it's an old tool and unfortunately it doesn't fit to my needs. I am focusing full dynamic and instantiated objects but I am not against compute time. :)
     
  13. shkar-noori

    shkar-noori

    Joined:
    Jun 10, 2013
    Posts:
    833
    I was hoping for Enlighten too, not for Stripped-Enlighten, I'm waiting for Unity 5.2 and around, i think by that time around Enlighten will be implemented completely and we can use it's claimed Dynamic GI.

    EDIT: It still is way better than beast imo
     
  14. HonoraryBob

    HonoraryBob

    Joined:
    May 26, 2011
    Posts:
    1,214
    I'd like to bump this to see if anyone has any definite answers, since I also need runtime GI on procedurally generated geometry, Anyone know whether this is possible either with Unity 5's built-in features, or with some other method?
     
  15. KEngelstoft

    KEngelstoft

    Unity Technologies

    Joined:
    Aug 13, 2013
    Posts:
    1,366
    Hi! In 5.0 you have to make the object lightmap static or use lightprobes for dynamic objects. The baking can only take place in the Editor right now but hope to make this more flexible later in 5.x by using the PowerVR raytracing technology.
     
  16. DGart.work

    DGart.work

    Joined:
    Mar 27, 2015
    Posts:
    199
    I think an absolute real time GI is so heavy that makes the feature impossible to implement for anything other than high end PCs and obviously unity is most known for its multi platform support
    maybe it would be a good idea to have real time GI at any cost , of course for anything other than game!
     
    Last edited: Jul 11, 2015