Development:Orbital Planet Surfaces
Contents
General
This page summarizes concepts and approaches to creating planet surfaces as seen from orbit. Topics of atmospheric entry and close-to-surface planetary topology and atmospheric effects or planetary flight should be covered in a separate document.
Two main topics are covered in this document:
- Development of textured surfaces
- Development of procedural surfaces
References
References apply both to textured and procedural approaches if not stated otherwise.
Wiki References
Planets and Systems
- Listing and description of planet types: Manual:Planet_types
- Editing Systems using milky_way or system files: HowTo:Edit_Systems
Development Roadmap
- Improved planet textures (Higher quality/Fractal Enhanced?): Development:Roadmap#Aspects_for_consideration
Forum References
Texture Requirements
Development Tools
Examples, Including, Testing
- Orbital planet surfaces: gas giants
- Orbital planet surfaces
- Some New Planets
- stand clear. planets coming through
Submission Process
Development Needs and Tasks
Improvement Proposals
- Auto-Enhancing Textures
- Fractal Generation System
- More pretty stuff: atmospheres and planet surfaces
External References
Gas Giant Surfaces
- Jupiter Atmosphere
- Jupiter (planet)
- The Clouds of Jupiter
- Planetary Remote Sensing - Jupiter
- Atmospheres of the Gas Giants
- Solstation Jupiter
- The Cassini Instruments - Jupiter
Image References
Textured Surfaces
Texture Requirements
Image Resolution and Formats
The planet surface graphics format recommended for the game is currently 2048x1024 in png or jpg format.
The image ratio horizontal:vertical must be 2:1, since the texture is wrapped aroud the planet sphere horizontaly around 360 degrees and vertically around 180 degrees. Necesserily, in order for the surface not to appear distorted, your pixel ratio of the generated texture must be 1.0, i.e. a circle must show as a circle when viewing the texture in an image viewer.
The vertical and horizontal sizes should be a power of two (POT). Really, NPOT (non-power-of-two) textures are possible, but really, really, really troublesome. Don't use them. Just use POT. Love the POT. The POT is the mother, the POT is the father. Trust the POT.
That leaves few options:
- 1024x512
- 2048x1024
- 4096x2048
- 8192x4096
Keeping original high resolution image (e.g. 8192x4096 or 4096x2048) versions in stock helps maintaining quality and scalability as game development progresses or typical screen resolutions rise in the future with better hardware available to the players.
Most of the surface textures included in data4.x have a horizontal resolution of 1024 or below. Committed textures are classified as:
- DQ - Development Quality: textures with horizontal resolution of 1024 or below
- RQ - Release Quality: textures with horizontal resolution of 2048 or above
- CQ - Cinematographic Quality: textures with horizontal resolution of 2048 or above and high degree of realism
Image Properties
Naturally, the images should be seamless (tilable) so that seams are not visible on the rotating planet, neither on the stitch nor at the poles.
3d rendering software with unwrap functions is recommended, since it is extremely inefficient and troublesome to create seamless textures in 2d programs.
Planet textures required
[source: klauss]
- Diffuse color map as usual.
- Specular map as usual.
- Night map (with city lights) as usual.
- Cloudmap... not so usual. The cloudmap contains color in the color data - but base, unlit color. Until now, I couldn't find a case where the color portion of the texture wasn't uniform, so I might drop color "texture" for a uniform color "parameter" - but in any case, the texture contains the cloud's basic color in the color portion (fully white for earthish textures), and "thickness" in the alpha channel. What I did to create the current cloudmaps: transfer the color (grayscale) channel to the alpha channel, adjust its "dynamic distribution", kind-of gamma correction, to avoid saturation of the alpha channel as much as possible (it looks bad), and filled the color channel with white. Thickness means that - the thickness of clouds. It indirectly translates to their height. All clouds are based on the same level (they usually are in reality, minus some exceptions), and grow upwards as much as the alpha channel tells it to.
- Normalmap as usual (though normalmaps are presently not required, they aren't any different from unit normalmaps: RGB with normal data, Alpha with height data).
- Replacement of existing textures with a resolution below 2048x1024
- Replacement of existing textures that are ugly
Development Tools
2D Image Manipulation Programs
GIMP
Gimp is the GNU Image Manipulation Program. It is a freely distributed piece of software for such tasks as photo retouching, image composition and image authoring. It works on many operating systems, in many languages.
Gimp already comes with a great variety of scripts and the library can be extended with your own C, Perl, Python, or Script-Fu plug-ins.
A good starting point for e.g. gas giant texture maps is the 'Solid Noise' filter.
There is a way to make planetary twisters like Uranius or so, using the Gimp. First you must create the gas texture, and then apply the distort filter into Filters>Distortions>Deformation. Then set the deformation type to "counterclockwise swirl", and the make one or two swirls. This will geneare swirls at the surface.
On the other hand, if you like a huricane zone, like some gas planets at solar sistem, for example like the great red one at jupiter, you can do it very simply: first select a ecliptic small zone, who will be the future hurricane. Then apply the filter Filters>Distortions>Lens Crystal, and apply a bit crystal lens distortion. Then, deselect that selected zone, and apply Filters>Distortions>Deformation, and set the deformation to "move", and move the left and right sides of the eliptical form a bit, just to make the effect of undercloud.
3D Rendering Software
POV-Ray
POV-Ray (Persistence of Vision Raytracer) is a high-quality, totally free tool for creating stunning three-dimensional graphics. It is available in official versions for Windows, Mac OS/Mac OS X and i86 Linux. The source code is available for those wanting to do their own ports.
With its unique scripting approach and through a large base of available texture, pigment, and material functions there are almost unlimited possibilities to creating surface maps.
Maps can be exported by using a spherical camera setting: camera {spherical angle 360}
Blender
Blender is the open source software for 3D modeling, animation, rendering, post-production, interactive creation and playback. Available for all major operating systems under the GNU General Public License.
Scripts for blender can be created using Python. No application of blender for creation of planet surfaces is known to the author. Sumbissions are appreciated.
Including and Testing
Systems Substitution Testing
In the .systems file of the systems where you saved the game (data4.x/sectors/SectorName/), search for the planet that you want to test your texture on and replace the current texture in the 'file' statement with your texture, e.g.
- Take: <Planet name="Wiley" file="planets/rock.png" ...>
- Replace with: <Planet name="Wiley" file="planets/rocky_wiley.png" ...>
Selection Process
If you are not sure that your texture meets the basic requirements, then please open a forum topic posting your textures. Here's a summary of requirements:
- Format: png or jpg
- Ratio (horizontal:vertical): 2:1
- Resolution: min 2048x1024
- Tileable: horizontally and vertically
If a texture that you have created meets the above described requirements, then:
- Open a poll for a reasonable period of time (e.g. 2 weeks) and describe:
- which texture(s) you'd like to replace
- show which are the candidates
- describe briefly the method of creation
- If you'd like to replace more than one texture, describe how you would assign the favorites of the poll to the individual textures
- After a set period of time
- announce the winners
- and call the poll closed
- Then
- Submit the textures to svn
- or call somebody with write access to submit them.
Submission Process
Development Needs and Tasks
Proposed near-term development roadmap:
- Phase 1: Replace existing textures with at least 2048x1024 textures (release quality)
- Phase 2: Expand the set of textures to include more variety in milky_way.xml
- Phase 3: Develop cinematographic quality surface and atmosphere (cloud, weather) maps
List of tasks for textured surfaces: Development:2D_Images#Orbital_Planet_Surfaces
Procedural Surfaces
At the time of writing (June 2006) no known implementation of procedural orbital planet surfaces exists in Vega Strike.