Raytrace Lightmaps (formerly Lighting In A Bottle) is an editor tool for creating lightmaps. It focuses on quality, interactivity and workflow. It has native components and so is window 64 bit initially. If there is interest in a mac version or the tool in general, a version for OS X will be my top priority. This tool has been in development for quite a while and leverages significant experience with concurrency, UI and physically based rendering for film.
Not only is the quality significantly better than the unity default lightmapping, the workflow and interactivity are vastly more fluid and elegant:
-Mapsrender and update live directly on 3D objects and in a window of the map, complete with an overlay of the UVs for the selected objects.
-UV Atlases can be created with one button within the given resolution (no more tweaking enlighten texels per unit to hopefully get the right size image or to get UVs to fill the map efficiently).
-Geometry can also be subdivided at lightmap render time so that the shading is identical to a much higher resolution (smoother) object.
There are also many tools to work with larger scenes such as the ability to select any object larger or smaller, the ability to copy UV scale offsets from one object to another, the ability to select objects that donāt have a lightmap and much more.
I have probably still left something out so let me know if you have any questions!
Here is an illustration of subdividing a sphere only at lightmap generation time. This gives the shading of the smooth sphere while only the low res sphere + lightmap is needed at run time. Doing this can keep the game lightweight with fantastic quality.
I earmarked this asset a while back. Good to see itās still getting attention!
I know youāve already said this is an editor tool right now. Is there a possibility of being able to bake lightmaps at runtime? That would be a huge boon for generating lightmaps for procedurally-generated scene geometry. Enlighten obviously does not support runtime lightmap baking either.
Do you have any plan to make a Linux version as well, when youāll release an OSX build?
I was just thinking about baking in Blender as I was found that GI in Unity never really work for me. So Iām much willing to try this product if it will be available on Linux in future.
Anyway, it looks amazing and thanks for making such a nice work!
The version on the store (at the time of this post) only uses area lights. That being said point lights (actually sphere lights since all physical lights need surface area) are something I have already had working before and are at the top of the list. I used the range of the point light as the size of the sphere, so the wire sphere guide around the light in Unity shows you where the surface is. This seemed intuitive to me, though keep in mind that it means the size ends up small relative to the scene instead of large enough to contain parts of the scene like a typical real time point light.
Environment lights I think are also useful although I donāt want to speak to when they would make it in without taking a good look at everything I need to do to make them work (importance sampling, possibly texture mapped lighting, etc).
Distant lights I personally feel are the least useful since the same effect (or better) can often be achieved with a bright but small area light pulled away from the scene. They are also a bit of an unknown for me compared to the other two (for physically based lighting a distant light would mean a solid angle of brightness on the inside of an infinite sphere). If there is demand I will, of course, figure it out.
These are my experiences from a significant amount of lighting for film visual effects while physically based lighting was starting to be usable (about 8 years ago). We had all of these lights at our disposal but really only ended up using area lights with a dim environment light (infinite sphere) to fill in the rest since we were unable to use any bounce light.
Let me know what you think, and I will let you know when point lights have been submitted to the asset store.
I bought your asset and have some play with it. Must say finally a cool baking plugin
I have some questions.
If i have baked a scene with your tool how do I make them work with reflection probes? Now when I add a reflection probe and hit bake probe the baking with your tool is gone.
Every mesh has to have his own Index right? So lets say I have a couple of identical pillars next to each other they cannot share the same index right because they will get all the same baked light map from it. They must be different to get a separate light map for each pillar right?
I made a scene and added 80 meshes to it each with there own index to test the render out and I found that it is rendering a max of 46. This is what I saw in the render settings. Every index after 46 was completely white and not rendered. But I looks like it is saving a exr file for it. Maybe iām doing something wrong
I hadnāt previously taken the idea seriously because I worry about the results not being useful in a game due to noise or time. So far though Iāve had a few people mention it to me which has been a fair amount of focus proportional to the feedback Iāve gotten. It is technically possible and in fact Iām fairly proud of the simplicity and elegance of the API interface to the .DLL / shared library. If people definitely want it and feel they are able to use it, I may be able to work with them to make it possible (which likely means more polished C# wrapper functions, documentation and possibly attention to licensing).
Let me know the specifics with as much detail as possible as well as your impressions after using the tool and I can calibrate to how much work it might take.
Thanks, @LightingInABottle ! I must admit Iām not super technical (I dropped out of computer science as my university major after two years ), so Iām not sure Iāll be able to provide all the detail you need. My basic use case, in the hypothetical world where Raytrace lightmaps could be used at runtime, would roughly be like this:
Iād like to use something like procedural dungeon/scene generation tool to instantiate scene mesh geometry and object placement at runtime. Lights that represent the sun and smaller lights, such as lamps, would be created as part of this step.
The player would explore and interact with the scene after it is loaded. The scene geometry and lights would be static, but the playerās avatar and other dynamic objects (non-player people or animals, for example) would move through the scene. Additional dynamic lights may be created as well, say a character holding a torch, for example.
I donāt have hard requirements on how āimpressiveā the lightmap results would need to be in this situation. Iām more interested in seeing what is feasible to bake for quality vs quantity/size of the lightmap in the several seconds a player would expect to wait while a scene is generating/loading. Certainly, if lightmaps can be generated in pieces in the background and prioritized by proximity to the main camera, that would be even more fantastic.
Hope that makes sense and isnāt too āpie in the sky.ā
Yes, I would love to make a Linux version. Iāve used Linux personally and professionally, and avoid creating anything that is not cross platform. That being said I plan on prioritizing it according to demand, possibly with quite a bit of fudge room since it does actually bother me to have programs only exist on one platform.
I understand that you (and probably everyone sells any software) should prioritize their platform support plans according to demand.
I just wondered the planned OSX version would mean anything to the possibility for Linux support as well, as both platforms often share the similar features and limitations.
Anyway, I think itād be safe to assume from your post that youād probably release a Linux version as well, if itās really something very easily achieved by making an OSX version, so Iām glad that I have something to hope for, at least. Thanks
Now that you have reminded me of that, I will look in to what it will take. It may not be difficult to implement, though arbitrary geometry can wind up being very noisy. Even so I agree that it would be nice to have the option available and could lead to very cool environment lighting.
When you press bake with Unity, it wipes out all the lightmap data in the GUI and Iām actually not sure if there is a way to make enlighten isolate light probe generation (Iām not an expert on enlighten by any stretch). Your maps are safe on disk in their high quality form and can be reloaded. Right now this might take restarting Unity. I am going to look into this and if it is needed I will make a āReload Mapsā button. Since this is a UI wart I consider it a high priority.
Every mesh can have itās own index although this would be atypical usage. For your identical pillars you have two options.
-The first is to give them the same index, then press one of the pack UVs buttons to automatically lay out the scale offsets of each mesh. You can give them the same index quickly by selecting them and pressing the ā+ā button on the map that you want them to use.
-The second option is to also give them all the same index, but this time use the āPropogate Scales, Offsets, and Indices From First Selectedā button. This will let you give them all the same lighting by making their lightmap the same, and their scales and offsets identical as well. If you render like this will them all on, the light map will be an average of all the pillars. If you set all but one pillar to No Render, you will be able to trace from just one pillar while they all receive the same lighting. This can give you fast baking and high resolution lighting due to re-use.
I donāt think you are doing anything wrong (though that many maps may not be what you want). This sounds like a bug that I will need to reproduce and fix. There is a slim chance that I wonāt be able to reproduce the bug in which case Iāll try to get in contact with you, but I havenāt done a test with this many maps yet, so Iām guessing it is just a matter of trying. I will let you know what I find, hopefully it goes without saying that bugs are a higher priority than features.
Let me know if you this is clear or if you have any more questions in general. Getting feedback will let me refine the tool considerably. Iām thinking now that laying out the UV atlases is important enough to put a button prominently displayed on each map.
Just dropped in to say that this lightmapper delivers higher quality than even Unityās new progressive baker, and that is impressive. I know I will be using this addon instead of Unityās new internal. Props to this dev for delivering higher quality and a workflow not possible with Unityās internal option.
1.6 is now released and on the store. It adds sphere lights (unity point lights) and an easy āAuto UV Atlasā button along with interface refinements and bug fixes.
It doesnāt seem to pad/dilute the lightmaps nearly enough. I fear this might lead to dark lines when looking at lightmaps from far away. Do you plan on addressing this issue?