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.
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.
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.
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.
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.
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.
.