
Some people asked in the Polycount thread how these Homeworld spheres (see this Article) were created. Let’s do it together! What we’ll use here are modding tools. I have no idea how near these are to the original Relic workflow.
Download
Download this mod tool collection and use the command line tool “HW2BGBuilder”. There’s also “HW2 – Spookysoft – HOD Tool 1.5.0.1” but it didn’t work out very well for me.
HOD Viewer
For viewing your .HOD file you should use “CFHodEdit 3.1.5” (open your .HOD, then at the bottom of the program scroll to the lat tab “Miscellaneous” and press “HOD Preview”).
Let’s go!
Ok, first we create a test .TGA to see what we can expect. I would say, this should work well (1024×512, 24bit):

Create a shortcut to the HW2BGBuilder.exe and drag & drop your texture on it. Let it calculate some stuff and then hit “Space” to start the process and feel like a Matrix hacker while numbers run down the command line.

And this is how it looks in “CFHodEdit”. You can clearly see the UV layout of the sphere. Now we know three things:
- Don’t add detail at the top/bottom of the texture because it gets stretched a lot.
- The left/right side of the texture has to fit to each other to avoid a visible seem.
- The colors are brighter than in the original texture, more about this later.


Regarding the last point: in Homeworld they painted only smooth gradients where the poles of the sphere are and avoid any visible stretching. Also, the vertices are pretty rare in these areas, which leads to smooth vertex color gradients. Take a look at the geometry around the pole:
I think this is just awesome. Because of the limitation to use detail only on the horizontal areas, you achieve that the player (hopefully) never looses his orientation.
Now, let’s use a “real” texture. But before that, we have to decrease the output level from 255 to 128 (Photoshop > Image > Adjustments > Levels).


After the creation process you’ll find a “_ref.TGA” which is an edge map the program uses for the sphere creation. I think this looks fascinating. I think the quads are the parts which the program calculates after each other.

And this is how it looks in the viewer. Especially at the top of the big mountain you can see some color bleeding. I didn’t play around with the settings of the “HW2BGBuilder”. Maybe there’s space for improvements, but in general I think the result is pretty good.

The resolution of your source texture has an impact on the sphere intersections and on the course of the polycount.


My last point will be a bit technical. Please correct me if I’m explaining it wrong. There is a good point why I said “Bye” to mathematics and went the way of graphics. :)
- 1 Pixel needs 24 Bit/3 Bytes to be saved (RGB, every channel has 8 Bit)
- 1 Vertex needs a position (XYZ) and a vertex color (RGB)
This means, if your source texture contains too massive contrast and detail everywhere, you would get more data than when you use a texture. But the Homeworld backgrounds consist mostly of colors and gradients, and only sometimes more detail. So for this purpose, this optimization is awesome.
While writing this article, there were discussions going on how to achieve this poly reduction in zBrush:
- Computron posted his results here.
- And poopinmymouth posted a great link where the creator tool is explained with all its parameters.