Isn't it possible to do this with the cube model itself without having to specially modify the skybox textures themselves?
Can you map the adjacent textures using the model itself?
I know it's hard to imagine - here's a diagram I came up with to help explain. Basically using the UV mapping, the adjacent textures are mapped to the plane outside of where it intersects the other ones.
So it would do what is accomplished in the texture editing, but with the model itself using UV editing. Each face of the model hear would end up looking like a modified skybox texture if it were alone. The planes intersect where each texture crosses over into the new one.
Would this have the same problem or not? The player wouldn't see outside of the box anyways.
EDIT: Whoops, looks like I left out a top face. Oh well, it still conveys the point.
That's what I tried first on model level. Having six planes with each having dimensions of 4.096 units, then moving them inward so that each plane was at distance 2.040 from the center.
It didn't work, the engine rendered each of the faces since transparency on skyboxes requires object hierarchy being set up correctly, and since the parts of the planes "out of the box" were part of the same level of hierarchy as the "visible" parts of the faces, it rendered the parts that were supposed to be hidden, and results were even more hideous than just having the seams.
I guess it would be possible to just use a black border, but I suspect that would result in similar seam issues as the original problem with cube shaped skyboxen.
I then presented my research results in IRC, asked for a way to cut away the parts of the planes that were outside the cube, and was informed that it could be done by adjusting the mapping. blowfish then provided me the model posted in the beginning of the thread. Essentially, this is one way of explaining how the model mapping works, except the parts of the maps that are outside the cube are simply not rendered.
Not only that but you would still have to modify the textures
exactly the same way that is used in the model posted in the OP... unless I understood something completely wrong from your explanation.