Hi everyone,
As some of you may know, one of my major complaints with Fan-Ages, is that they graphically don't look half as good as Cyan's Ages. That's to be expected, since fans may not know or may not want to bother with increasing visual quality in their Ages. I'm not criticizing, I fully understand how much work it is, especially on Plasma and with the current tools.
The problem is, it's these Ages that are often the most interesting to visit because of their size and the number of things to do in them. For instance: Elodea isn't top-notch when it comes to visual quality, however it's still one of the most populars currently.
And it's quite a shame: size is often incompatible with beauty, while maybe we could do something about it.
What I had in mind was to automate some things for Age authors.
In the case of light, currently the authors have to setup light sources, manually select each object, and bake the light, before exporting. However, because of a single modification in a mesh, they may have to rebuild light for their whole scene... And when we're talking about lightmaps, the setup for a scene is completely different from the export setup. In the best case, you have one light setup for baking, and another for exporting (as in Relativity).
Now, because of how Plasma/Blender/PyPRP work, it's impossible to have the scene be automatically baked and exported, as engines like Source or Unreal do. Plus, you can't enhance an Age yourself if you don't have the Blender file.
As for letting Plasma do the lighting... Well the result is often a disaster, performance-heavy, and you don't even have features like shadows (well, it exists, but they are so not realistic and performance-heavy that you can only use them for avatars).
However, since doing things in Blender is not the easiest solution, I thought it could be cool if we could edit the Age after it's exported. Say, press a big, friendly button named "Make Age Better", that automatically builds light, without requiring to know anything about how light baking works.
I therefore wrote a basic lighting system, to bake light for Elodea... and Dulcamara kindly accepted that I share comparisons pictures with you !
Elodea was a good choice - it features a very interesting terrain with plains, mountains, beaches, caves, etc, which are really worth enhancing !
You will notice I made the distant fog blue, which looks even better.
In these screenshots, I used an algorithm of mine to bake light of a single sun onto the vertices' color layer --which is fortunately not used by most Age authors-- resulting in more realistic light, with absolutely no performance cost, and no additional memory required.
Since it would not look good in caves, and would be completely useless in Ages with no sun at all, I then wrote another algorithm to bake ambient occlusion. The result was surprisingly good for an algorithm I made up myself. Although baking for Elodea came up from a minute to two hours ! Heh, it may be accurate, but it's slow. I'm not an expert when it comes to mathematics and optimisation after all
Well, here is how it looks with AO:
With this, Elodea is even more interesting than it originally was, in my opinion. Tweaking the mist helped a lot. I also fixed the physics so they are no longer bumpy (a real relief), tweaked the engine to render in 16/9, and even fixed the sky animation so it doesn't reset each minute.
Writing the program itself was not too long either - a few hours of work in total.
So, what do you all think ? I will probably release the tool sometime, although for now I'd like to improve the interface and make things like sun/AO intensity customizable. Maybe add shadows cast by big objects such as mountains. Oh, and make AO baking a bit faster too. Meanwhile, I would be quite interested in knowing what you think about it.