I wanted to know if anyone was familiar with the use of Skydome textures instead of Cubemap textures for skyboxes/spheres? At my company, we have traditionally used cubemap textures for our skyboxes as they are simple to render from DCC tools (Terragen, Max, etc.). However, I am unconvinced that they are a good usage of texture space/resolution, as cubemaps are not square and the top and bottom of the cubes unjustifiably receive equal pixel coverage.
I find that the Skydome textures give much better pixel coverage to the horizon area, which is ideal for our project, and the texture, while not square, is much more reasonable. Also, editing and compositing other elements into the Skydome textures is much easier.
The problem is that I can’t seem to find any established pipelines for converting 6-cube rendered textures into a skydome texture. The current “best” method i’ve found is documented here: http://www.outpt.co.uk/how-to-convert-a-skybox-to-a-skydome/
this method involves 3 different programs and it “smacks” of loss. The final step is to take it back into photoshop and fix black seam pixels =O
I wanted to pick the collective brain and see if anyone has found a direct pipeline for converting cubemap textures into skydome textures with the least amount of loss.
Also, skydomes allow you to use vertex colour, to adjust the hue of the sky in a much “smoother” way than on a cube, so you can actually animate the colour depending on time of day for example.
We used a technique whereby the texture was slowly shifted along the U, this gave the impression that clouds were moving, which I don’t believe is possible with a cube, or will not give as good a result… I think.
All the games I’ve worked on so far over the last decade have used skydomes. They work on all platforms, even the old school ones like the PSOne and as you say save a lot of memory since you only really need a long thin strip.
You can render skydome textures with Vue. Lovely organic environments and skies you can get from it. It’ll deform the poles properly, but that’s not actually necessary if they’re behind scenery as they normally would be in a game.
Other than that I’ve just used photos. You don’t need a whole 360 degree panorama all the time, just take a long thin image and make it wrap. Cloud lighting might be a problem if it wraps at a point where the light changes abruptly and full panoramas are ideal of course.
There’s several places you can get full panorama images. Marcel’s got a load on CGTextures-
Another cool thing you can do with skydomes is have a seond UV channel mapped from the top and blend that out at the edges, then you can use this to do things like make clouds scroll across above your head. There’s lots of cool sky stuff going on with domes in Gears of War for instance.
I considered Vue, but the quality of cloud/atmosphere out of terragen 2 seems much more natural looking. At least from the samples that I’ve seen.
I tried importing my cubemap from Terragen into Max and doing a “panorama render”. This worked surprisingly well, but the result is not nearly as sharp as HDR Shop results… However HDR Shop creates some awful border-pixel noise that has to be hand cleaned up.
I’m currently using cubemaps…but they don’t require much editing and for some reason Sega weren’t keen on animated skies. I’ve also used cubemaps for rendered backgrounds in a 3D puzzle game, which worked out quite well, but they have their limitations as has been mentioned. Spheres are much easier to animate, either UV scrolling or just rotating another geometry layer. UV mapping them can be tricky though. Use multiple layers, or cubemap them on a tessellated cube and sphereize it.
The final step is to take it back into photoshop and fix black seam pixels.
Before you open your cross texture in HDRShop, open the image in PhotoShop (or whatever program you are using) and duplicate the very edge pixel on each of the four quadrants over one pixel into the blank edge space. This will prevent any seam pixels from appearing.
The issue is that during the transformation, rounding errors cause the pixel grabbed to include some pixels past the very edge of the cross, and these then ‘bleed’ into the final image. So if the blank area in the four quadrants is black, you will get a slight curve of black mixed into the texture along the warp path. Duplicating the edge pixels of the cross into the blank space in all four quadrants eliminates the error since the pixel grabbed is always relevant (thanks to DGUnreal for pointing this out a while ago).
I’ve updated the tutorial to reflect this step, but will further clarify it there later. Unfortunately lack of time sometimes prevents me from giving these articles further attention.
I agree that any conversion process is lossy, much better to be able to render them as skydomes in the first instance. Despite this, it did the trick for me and I hope the article gives you a little mileage with your projects. If you come across any better methods or have any additional feedback, I’d be happy to hear about it.
It isn’t really free though, you have to agree to the license to get that d/l link.
… use the Software as follows solely for a Non-Commercial Purpose … “Non-Commercial Purpose” means use of the Software solely for education or research. “Non-Commercial Purpose” excludes, without limitation, any use of the Software for, as part of, or in any way in connection with a product (including software) or service which is sold, offered for sale, licensed, leased, loaned or rented. …
So even if you’re doing unpaid modding of a commercial game, it’s still not legit to use HDRShop.
That’s quite interesting Eric. I hadn’t previously considered that if I were releasing an additional map for a game, that this would be contributing towards a commercial purpose. I’ll take that into consideration.
I think this topic has been derailed just a tad, there are several alternate panorama solutions out there besides HDRshope.
check out Hugin for panorama stitching: http://hugin.sourceforge.net/
Regarding Panoramas out of Terragen specifically, I believe that a “near-future” release of Terragen 2 will contain native panorama rendering.