PlanetStitch
PlanetStitch is very basic tool to quickly assemble frames of animation that are rendered by Blender. It then offers a preview of the planet animation and the option to save the resulting texture.
Download
Head over to PS's GitHub release page for downloads: https://github.com/OutpostUniverse/OphdPlanetStitch/releases
Getting Started
Blender Scene
This scene file is used to render the individual frames of animation for planets. This document will stay be updated with changes to the file as necessary. To change the planet texture click on the Sphere, then head to Materials and then use the file chooser to choose a sphere map texture. Press Ctrl+F12 to render the animation. All frames will be saved to a folder named 'out' alongside the blender file.
Generating The Texture
After you've rendered all 256 frames of animation, you can fire up PlanetStitch and click on the “Load Folder…” button. Select the folder from the dialog window that appears that has the rendered frames. PlanetStich will show a loading spinner while it's processing all frames of animation.
Depending on your hardware this will take anywhere from a few seconds to a few minutes (Windows GDI+ functions are really really slow, can't help that without using additional dependencies). Once processed you'll see the planet animation preview. From here you can click on Save Atlas to save the planet texture.
Previewing The Texture Atlas
After the planet animation preview has loaded, you can double click on the planet to open up the Texture Preview window. This will allow you to scroll around to see the entirety of the generated texture.
This is really only useful for verifying that all frames of animation have been properly loaded and blitted to the texture.
Asset Requirements & Assumptions
This tool is specifically designed to be used for OutpostHD to generate planet animation texture's for the game. This it expects a few things from you:
- That you're running Windows 10 or higher (it may work on 7 and 8 but I haven't tried it)
- That .NET Framework 4.7.2 is installed – the installer will automatically download and install this for you
- That it's provided with a set of PNG files that are 128×128 pixels in dimension
- That you do not provide more than 256 images
- That the sequence of frames is in alpha-numeric order
If you really want to use your own tool to generate the set of animation frames expected, fine. It will only work with PNG files (it's hard coded that way and I don't plan to change that).
The output file will always be 2048×2048 pixels in dimension.
Notes, Quirks & Known Issues
Notes
This is a quick and dirty tool, it's not fancy and it doesn't try to save you from yourself. It doesn't do much in the way of error handling. It will complain and barf if you try to make it do things it's not designed to do. It has exactly one purpose, to arrange the frames of animation for planets because there are 256 frames of animation and assembling that by hand is tedious and time consuming. Sure this could probably be done with imagemagick and a batch script but eh, this was more fun.
Quirks
It takes way longer than is really necessary to assemble the texture atlas. As stated above, this is because I'm using built in Windows GDI+ commands to do it. GDI+ is stupid slow but it's really easy to work with and doesn't require a bunch of other dependencies and learning curves. So be patient. It'll get there!
Known Issues
Sometimes after loading the animation frames it doesn't close all the file handles. I don't know why it does this. You can either wait for the garbage collector to do it's thing or just restart the app.
FAQ
Q: Is the source code available?
Yes: https://github.com/OutpostUniverse/OphdPlanetStitch
Q: Will you add Feature X for me?
No. This is a specifically purposed application. If you want to add features grab the code and add it yourself. If you want to have it included in the official release you can create a Pull Request on GitHub.
Q: Wouldn't this work also for structure animation?
Yes. When we start getting the structure animations going I'll update this application to handle that as well.
Q: I found a bug, what should I do?
Let me know on Discord or the Forums and steps to reproduce.