Search Unity

  1. Get the latest news, tutorials and offers directly to your inbox with our newsletters. Sign up now.
    Dismiss Notice

[-50% SALE !] Global Illumination Proxy - Fast fully real time GI, Zero baking, Mobile optimized,IBL

Discussion in 'Assets and Asset Store' started by nasos_333, Aug 9, 2014.

  1. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    9,369
    Global Illumination that works on Unity Free & Pro for every platform, optimized for Mobile. No baking is required, the method is fully dynamic. Area lights proxy, 2ond bounces & IBL have been added in the new v1.5. No pre-processing or change of any shaders is required.

    The asset is now up at the Unity store !!!!! Enjoy :)

    Asset Store Link: http://u3d.as/93L

    IMPORTANT: The asset is also included in Sky Master ULTIMATE pack.

    Demos:

    Room demo, smooth color changing
    https://dl.dropboxusercontent.com/u...S/MOBILE_DEMO_SMOOTH/MOBILE_WEB_SMOOTHER.html

    Crytek Atrium demo (Music by Ryuno - http://u3d.as/6i1):
    https://dl.dropboxusercontent.com/u/79230236/RADIOSITY/FINALDEMOS/ATRIUM_GI_PROXY/ATRIUM_WEB.html

    Video:


    This is a new lightining propagation system for my non DX11 RPG, since i could not find anything that was fast enough for my game that is already at the edge of 30fps.

    The system does one bounce GI approximation using point lights and have been working on spot lights so far, getting some very good results that will play on every platform.

    This is a fast approximation of GI that will fake it to the extend this is possible and give good result on every platform. The goal is to have a very fast and easy to implement solution, that will be compatible with everything, without the need to change shaders or have complex setups.

    The system works with colliders and will work with dynamic surfaces and color changes etc. Also will work with all Unity versions (Free and Pro).

    Here is an early video of the cave demo:


    I would like to see comments and interest on this one, i will be working to extend it far more for my RPG, and i plan to release on the store too.

    Would you be interested in this pack (that could also work for mobile etc i guess) and would you like to see a beta version released soon or a finished product much later ? I think would be best if i got a first version out asap as beta, so comments could direct me faster to things that could be missing.

    Thanks in advance for any input and comments on the above :)

    Just to note that again, this is not for those that want a full radiosity/GI solution, but for those that want a fast cool lighting effect that tries to emulate it without making everything crawl or require DX11 and limit the game platforms. Should be best for mobile and non DX11 only games that want GI to not take much of the fps count.
     
    Last edited: Jan 10, 2016
    3dFoin likes this.
  2. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    9,369
  3. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    9,369
    With and without GI proxy



    UPDATE:


    - Light grid has been added for better coverage of the light hit areas

    - The light balancing has been adjusted for an outside scene and demo level has been added

    - A "hero follow" mode allows to perform GI proxy only near the hero, at adjustable density and distance


    Demos and videos will come soon.

    .
     
  4. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    9,369


    UPDATE:


    Point light GI proxy source has been implemented, plus many extra control variables for further customization
     
  5. CaseJnr

    CaseJnr

    Joined:
    May 14, 2014
    Posts:
    43
    When do you plan on releasing.
     
  6. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    9,369
    UPDATE: GI works very well in open spaces, i have a hero follow mode that will only spread lights around the hero, to further speed up things.

    I am now finished with the functionality of the first version (point and directional lights) and testing it in my RPG to optimize as much as possible. So far i have usuable results even in outdoor spaces using a range of 3-7 bounce lights and 3-8ms in main thread, which is something i can use in my heavy game.

    I can get good results with less lights too (for mobile), but this number seems like a good balance.

    I have tested the hero follow mode too and works like a charm :), the lights will bounce only close to the hero in open spaces and always have the correct angle etc, so it is fully functional.

    Much more testing needs to be done though, so i plan this for early September or late August at best case scenario.
     
  7. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    9,369
    Demo sequence pics (running on PC) - 20-40fps (mostly runs at 25-35 fps) on my Mobile with 1-5 dynamic bounce point lights


    I have tested the system in my Android and get 20-40 fps (mostly runs at 25-35 fps) with 1-5 lights created for bounces, with smooth effect.

    This demo is compiled with forward rendering, i dont have Pro so cant tell how it would run with Deffered.

    This is my phone, for reference

    http://www.gsmarena.com/vodafone_smart_iii_975-5464.php

    Chipset Mediatek MT6575
    CPU 1 GHz Cortex-A9
    GPU PowerVR SGX531

    If anyone wants, i can email the apk demo file (or link it in dropbox) to test on a beefier Android phone and see how well it runs there.
    .
    From this comparisson below, i can see that my Phone GPU is not even close to the stronger ones, so i would expect the system to run with far more lights in a good phone

    http://gfxbench.com/result.jsp?benchmark=glpro25&base=gpu

    .
     
    Last edited: Aug 17, 2014
  8. IanStanbridge

    IanStanbridge

    Joined:
    Aug 26, 2013
    Posts:
    334
    That performance sounds great for that phone. Feel free to send me the apk and I'll test it on my phone. It will be interesting to see how well it runs with opengl es 3 as well.
     
  9. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    9,369
    Hi Ian, thanks for the help, i will make a dropbox upload and PM the link.

    Will indeed be very interesting to know how it performs in a good phone :)
     
  10. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    9,369
    @IanStanbridge

    I have sent a PM with the mobile demo (Android version).
     
  11. IanStanbridge

    IanStanbridge

    Joined:
    Aug 26, 2013
    Posts:
    334
    Hi it must be pretty efficient because it's running at 60 fps on my nexus 5 phone at 1080p. It looks like the phone is lowering it's clock speed to save battery rather than run higher than 60fps so I'm not sure what it's performance hit is but it is certainly suitable for mobile.

    Did you set all the lights as important though or did you leave it up to unity to decide ? Also you might want to try it with more complex shaders I've got a feeling the reason it is so fast is that those shaders are simple difuse ones so the lights don't have a large performance impact. You should try it on a bump mapped shader or something where the additional lights will have a larger impact on performance and unity will be forced to use point lights at all times rather than switching their importance for performance on mobile.

    I would suggest that you try using your light in the shader forge example scene for example so you can see its performance impact on a more complex scene

    If you want you could send me a prefab that I could try in some of my scenes to compare the performance between standard lights and your dynamic lights.
     
  12. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    9,369
    Very nice, my phone is really terrible as it seems :), the performance gap is huge with a proper gaming phone.

    That is very nice to know, thanks.

    I have not set the lights to important, but the thing is that for this result i only use 1-2 bounce point lights, so that is why probably it is that fast. On PC i make the grid thicker to get even smoother results, but for mobile this i guess is a first step to usuable GI approximation.

    I have also put together a scene with Mobile bumped specular mapped objects (the cave in the first post) and the performance is not much affected, even on my phone. I will send you a link to this demo as well to check it out :)
     
  13. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    9,369
    Hi everyone,

    I have decided to make a big offer to the supporters of my Particles pack. Every reviewer will get a free copy of my new Global Illumination pack which will be delivered to the email of your choice. The review is the easiest way to verify the pack was actually sold.

    Just PM me a desired email from the account that made the review and i will send the pack, so you can start working with the GI proxy right away. I plan to send the current beta version as soon as possible and all major updates until release, so you will not even have to wait for the release in the store :)

    The offer will stand until the end of August. More info in the Particle Dynamic Magic thread below:
    http://forum.unity3d.com/threads/pa...lisions-cartoon-pack-water-more.239305/page-4
     
  14. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    9,369
    UPDATE:

    The code is nearly finilized and i will start polishing the demos to cover a wide range of needs, from using very few lights for mobile, to thicker grids for outdoors etc
     
  15. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    9,369


    UPDATE:


    The Palace scene is ready and works very well, it is a showcase of the GI Proxy system when combination of indoors and outdoors lighting is needed.
     
  16. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    9,369



    And another pic with the bounce light radius of the effect turned down for more atmospheric feeling.

    I think the best result will be somewhere in between the two.
     
    Last edited: Aug 22, 2014
  17. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    9,369

    UPDATE:


    Many new enchancements have been added to further reduce light usage and allow for thicker local grids. Plus a new example scene and demo with Sponza Atrium.

    To do list so far:

    - Add option for local short raycasts per bounce light, to further reduce the need for thicker grids and give more correct color results if a near color is not grabbed by the registered bounce light.

    - Add option for 2ond bounce lights (this will not come in the first version)

    - Add area lights (this option will hack Unity lights and will be optional and come in a later version, i am not doing screen space area lights)
     
    Last edited: Aug 22, 2014
  18. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    9,369
    Atrium using only 4-6 point lights, video and demos will come very soon (without GI PROXY top, with GI PROXY bottom)



    UPDATE:


    Just realized that the reason for the flickering was the point light limit i had set to 3 for mobile :)


    EDIT: I just finished the Atrium with total smooth results and using only 4-6 point lights. I must say i am impressed that i got such a result. This looks like real radiosity and i do nothing but manipulate point lights with the AI :)
     
  19. IanStanbridge

    IanStanbridge

    Joined:
    Aug 26, 2013
    Posts:
    334
    That screenshot looks really nice. You should make a demo combining it with you particle magic package. Imagine throwing a fire ball across that room with global ilumination
     
  20. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    9,369
    Thanks :)

    Nice idea with the particles, i could start with a GI emitting fire/fireball and turbulence, would be very impressive :)
     
  21. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    9,369
  22. SteveB

    SteveB

    Joined:
    Jan 17, 2009
    Posts:
    1,448
    Actually looks pretty nice!

    How about faking skylighting? :D ( I feel like I ask this in every realtime GI thread hehe)

    Cheers man and keep it up!

    -Steven
     
  23. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    9,369
    Thanks :)

    The skylighting would be trivial with my system :), very nice idea. The only issue is the method of sampling the sky. After that i will probably lerp the colors of the bounce surface and sky sampled color. I will add it in later versions, since this would delay the release.

    If the sky is a texture mapped dome should be very easy to implement. For cubemaps i cant tell, but should be doable too i guess.

    Also i have started working on area lights a bit, this will also be a later release.
     
  24. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    9,369
    Arkade likes this.
  25. elias_t

    elias_t

    Joined:
    Sep 17, 2010
    Posts:
    1,273
    Very nice.

    The 2 demos run faster then the previous ones.

    As I told you before I am interested mainly for mobile performance.

    Have you put a parameter to update the lights every x frames?
     
  26. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    9,369
    Nice :), glad they run so well

    I have also included the option to update the lights and raycasts every x seconds, to squeeze that extra performance.

    Now i am working on the extra touches and some more demos
     
    dirtybassett and ThunderTruck like this.
  27. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    9,369


    I have now combined the scene with Crytek's public domain attrium assets.

    The curtain effect :)

    Also good news, the Crytek atrium is public domain, so i will include the demo scene in the pack :)
     
  28. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    9,369
    UPDATE:

    Many new options have been added in the demos, like procedural, dynamic and animated objects showcase and more. The atrium scene will also be included, since i remade it using the public domain assets from Crytek version of the atrium.

    The documentation is almost done.

    Hopefully the asset will be submitted at the store tomorrow, after some code clean up.
     
    dirtybassett likes this.
  29. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    9,369



    Here is a couple of pics from the final demo version, i have also added a white version of the attrium to better evaluate the light colors and also added a toggle between two quality settings.
     
  30. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    9,369
    UPDATE:

    The pack will be submitted today, as long as i can find how to add the videos in the image area :)

    New demo links coming as well today

    The initial price will be 50% off for a limited time (at 25$) and then will go to 50$.
     
    Last edited: Aug 25, 2014
  31. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    9,369
    Last edited: Aug 25, 2014
  32. elias_t

    elias_t

    Joined:
    Sep 17, 2010
    Posts:
    1,273
    Well done!

    I will buy it when it hits the store and get back to you with performance reports and screenshots.
     
  33. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    9,369
    Thanks, that would be great :)

    I have also prepared and inlcuded prefabs for quick deployment of the 3 basic light sources with GI, besides the implementations in the demo scenes.

    Hopefully the review wont take long.
     
  34. dirtybassett

    dirtybassett

    Joined:
    Oct 3, 2012
    Posts:
    59
    Congratulations on the release, will be getting this for sure.
     
  35. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    9,369
    Great, thanks :), cant wait to see comments and suggestions for improvements.
     
  36. Stormbreaker

    Stormbreaker

    Joined:
    Aug 15, 2012
    Posts:
    161
    Looks interesting. What limitations and pitfalls does this have in comparison to a 'real' GI solution? There must be some downsides to it otherwise everyone would be using this method and not trying to develop GI solutions like Enlighten.

    EDIT: Just tried out the room demo and it's quite cool, however the light changes colour too suddenly. It looks like you're sampling the surface colour of the material hit by a raycast sent from the centre of the spotlight, and then lerping the light colour, which is a problem as it means the indirect light won't change colour till the centre of the light is focussed on the material. What you could do to increase colour accuracy is send out 9 raycasts in a 3x3 grid, and calculate their angles based on the spotlight angle so it takes 9 colour samples. This would solve the issue above and also make the indirect colour more accurate.
     
    Last edited: Aug 26, 2014
  37. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    9,369
    For the directional and spot lights, the directionality allows a check for color change near the ray cast hits. Sun light uses a grid that is configurable by parameters.

    For the point light i do an extra raycast from the light source towards registered lights and if the hit is near one of them will update them with the new color (if any).

    This method does have the requirement to be adjusted in parameters to get the ammount of lights right to have a smooth result per case. The debug mode that shows the lights registered and raycasts greatly helps to get this result faster.

    That is the reason i provide many ready setups and prefabs so this procedure is far easier. And imo is much better than waiting for a questionable baking for hours :), at least personally i prefer to tweak something to work in a dynamic way than rely on pre-processed staff. Plus it is never 100% guaranteed that GI wont need tweaking to get right, both for real time and baked processes.

    Another thing to consider is that uses spot lights (i hope to add area lights later, hacking Unity light system, i will need Unity Pro for that though), so the spot light close to a surface may create a visible circle than the spread light GI would give. And i only do one bounce, so i dont cast from the bounced lights around to emulate other bounces, GI does more bounces. I can of course add more bounces too later with some optimization methods, so i could come even closer to true GI, with good performance.

    As for the room demo, this is the mobile case where i only use 2 lights for the max performance. If i increase the resolution color can change in an even smoother way. Also i plan to add a grid for spot lights too later, this will even further smooth out results. I have the code for that ready really, since i use a grid for sun (directional) light, i just need to rotate that grid since for sun light i created it parallel to the ground :) and some scaling considerations, i just did not include it in this release so it comes out sooner and get it perfect than half done, but is an easy to do addition soon.

    I have uploaded a demo where i decreased the light color grading speed (just one parameter) to 1/8 and i get the smooth coloring. Probably i just had it too high :). Note that in this demo i have enabled the special light follow mode, which even further minimizes light creation and use for mobile case.

    Room demo, slower color changing
    https://dl.dropboxusercontent.com/u...S/MOBILE_DEMO_SMOOTH/MOBILE_WEB_SMOOTHER.html
     
    Last edited: Aug 26, 2014
    Arkade likes this.
  38. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    9,369
    August offer !!!!!

    Buy & Review Particle Dynamic Magic (http://u3d.as/71m) & get GI Proxy for free

    Lasts until Sunday

    The offer is also good for those that have already bought Particle Dynamic Magic, just leave a review and i will email the pack.

    Also the pack will be set at 25$ for August, half its final price.
     
    Last edited: Aug 27, 2014
  39. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    9,369
    White version, bright light


    Spot light on curtain


    Poing light, strong


    Point light, hidden



    Some more pics from the demo, without GUI
     
  40. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    9,369
    Hopefully the asset will go live soon, the submission was done in 25th of August, together with Particle Dynamic Magic v1.6.

    I am not sure though how a double submission is handled, maybe it is 6 days for each submission, so in worse case scenario should be up sometime this week or early the next one, if all goes well in the review.
    .
     
  41. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    9,369
    Last edited: Sep 2, 2014
  42. TemplarGFX

    TemplarGFX

    Joined:
    Aug 21, 2014
    Posts:
    103
    Been watching this one for a while, and immediately purchased on release! I can't wait to try applying this to my thick forest scene to see what happens!
     
  43. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    9,369
    Great :) thanks for the support.

    I would love to see how it works for your scenes, any suggestions for further extensions/optimizations will be most valuable too, so i can keep growing the pack. A review later would also mean a lot and would help the pack grow.

    In outdoors it is adviced to set it up in "hero mode", where the bounce lights will only be created around the hero. For any help needed when setting this up, let me know.

    The general steps are to set the grid scale and density, place the grid near the start hero position (debug mode on to see the grid in play mode) and finally provide the hero transform to the script HERO variable. The grid can have offset so in fixed camera cases you may have lights only in one direction relative to the hero, for extra performance.
     
    Last edited: Sep 3, 2014
    Arkade likes this.
  44. TemplarGFX

    TemplarGFX

    Joined:
    Aug 21, 2014
    Posts:
    103
    I will post my results here once its all integrated! Thanks for this package!
     
  45. elias_t

    elias_t

    Joined:
    Sep 17, 2010
    Posts:
    1,273
    Purchased!

    Will get back later with results.
     
  46. TemplarGFX

    TemplarGFX

    Joined:
    Aug 21, 2014
    Posts:
    103
    Nasos, hopefully you can help here. Probably just a setting thing that Im too noob to understand :p

    I dropped the Directional prefab into my scene, attached the camera to the "hero" thingy and placed the directional preset at the angle I want. I threw a huge red cube into the scene for testing, and this is what I get :

    First question this image brings to mind is, how do I remove or reduce the light dots, and how do I increase the range of the lighting?

    The other issue is when I move into the cube's shadow, the GI disappears :
    This is the same corner in the same scene.

    I set the Hero Offset to all 0's I hope that was right.

    Also, what are all the other objects on the prefabs, they are not explained in the documentation. What are the items under "settings" and what is the direction pointer?
     
    Last edited: Sep 3, 2014
    nasos_333 likes this.
  47. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    9,369
    Thanks for buying the pack :)

    I will start with the prefab unknowns, these are just the test setting (the spheres etc) that you can erase and replace with your own. The direction pointer is a helper that shows where your directional light shows, so can also be disabled.

    About the setup, the first step would be to check your scale in bounce light radius and the lights grid. In order to do that, enable the debug option in the script (Debug on parameter), preferably set the update rate (Update_every parameter) to 0 to update every frame (so rays do not flicker in debug) and go in play mode, then use the editor or enable gizmo view in play view to see the debug rays and lights.

    That way you can see the exact placement of lights and the ray casting grid. Play with the offset from the hero and move the grid around him (before start moving preferably). Play with "MaxPosition", "Extend X" and Y parameters to extend the grid. Make sure the lights are not too close together and cover will the area around the hero. Also you can increase the grid density a bit, just make sure lights in the pool dont get out of hand.

    The next step is to select the bounce lights pool and see the radius of these lights. Then play with the "Bounce Range" parameters to extend that radius and maybe with "Bounce Intensity" as well to make them stronger upon creation.

    There is also an extra option ("Placement Offset" param) that moves lights away from the raycast resulting surface point, towards the vector of the cast source, use this parameter to make lights move further away than the hit surface and reduce the point light effect.

    When the result are good, keep the changed values and insert these new parameters to the script after exiting play mode.

    One other note, when testing to see the required intensity, make sure to have the "Update every" parameter to its final value, since the speed the intensity is aquired depends on the update rate of the script.

    Hope these help, let me know if it worked. Also check the "1. Terrain GI" scene for an example setup with hero and outdoors, to get a feeling of how the light radius and grid should be comparing to the hero scale.

    EDIT: About GI in the shadowed area, if the light radius is extended you can get GI near the edge where the light falls on the front, but lights register only on collision, this is one bounce solution so you wont get second bounces to get very subtle red in the shadow far from where the light hits.

    Also there is already some GI in the edge, the lights have very small radius and/or intensity to extend it further as it seems.

    Great, looking forward to see some cool uses for the system :)
     
    Last edited: Sep 3, 2014
  48. angelodelvecchio

    angelodelvecchio

    Joined:
    Nov 15, 2012
    Posts:
    170
    Is possible to make more bounces for who needs it for an advanced project? your plugin looks really great!
     
  49. TemplarGFX

    TemplarGFX

    Joined:
    Aug 21, 2014
    Posts:
    103
    Thanks for the very detailed response. You cleared everything up with my confusion! I did not get the opportunity to test this out last night, but I should today, and after reading your post, I am pretty sure I know how to resolve the issues I was seeings.
     
  50. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    9,369
    Thanks :)

    The 2ond bounces is the next logical step and is definitly first on the roadmap for extending the pack. I need to devise some methods to spread the 2ond bounces cleverly, so the system keeps its performance and usuability intact though and use it in many sample scenes, in order to guarantee a smooth solution, so will be a process until i get that right.

    The system does need some extra balancing depending on the scale of your world, but once you have it for a specific scale you can easilly adapt it everywhere. At least that was my experience when making the demos.

    I will also try to provide a custom inspector for next versions, that will allow debuging in editor mode too, to make things even faster and easier.

    Another thing i plan to do is provide a step by step setup procedure with images from the settings and steps involed to adjust the effect, when the scale changes from the presets in the prefabs. Maybe even provide 3 prefabs for each case in different scales, that would be cool to have too :)

    Also dont forget to leave a review :), it will help the pack grow much faster.
     
    Last edited: Sep 4, 2014
unityunity