Jump to content
  • Advertisement
Sign in to follow this  
luridcortex

Space/Galaxy Rendering Techniques

This topic is 4777 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hi all, Could anyone who has any experience with rendering outer-space environments please respond with any techniques/tips/pointers. I am interested in how games like EVE online and others render thier environments. At the most basic level I guess they obviously use some sort of skybox, but how do make sure everything moves smoothly with the player? What about rendering stars, and "milkyway" type effects? I look forward to reading your replies!

Share this post


Link to post
Share on other sites
Advertisement
Guest Anonymous Poster
Here's a very old article (think DOS days) with some tips on rendering a starfield. Despite its age, it still applies today, and is very short and simple. Something it doesn't seem to mention is that not all stars are white, and some twinkle. You could do something fairly simple like this using 3D point and line primitives. (The lines would be reserved for FTL speeds.) On today's hardware, you could set the stars up as a fixed VBO and use a very simple shader to handle dimming, twinkling, and perhaps even motion blur (by shifting the second point in a line primitive based on relative location and speed). That would keep you from having to hit the CPU to do it.

http://freespace.virgin.net/hugo.elias/graphics/x_stars.htm

You would most likely use a skybox for anything that was too far away to appear to be moving. I haven't played EVE Online, but when I look at screenshots, a lot of things look like they could be in a static sky box or similar backdrop. A lot of it looks artist-generated as well. The last thing to do would be to search for articles on rendering for a camera inside a nebula. A nebula is large enough that most of it would be so far away that it would be put into a static sky box. The rest could probably be rendered with billboards, like clouds but with much less detail needed (because they're so large).

One more thing to remember is that your Z-buffer is severely limited in space-based games. If you try to render something even 10000.0 km away, which is an extremely short distance in space, you will have a very hard time rendering things up close without a lot of Z-fighting. When I look at Eve Online, I get the feeling that either the ships are monstrous in size, or the planets are very small. I'm believe this was partly due to Z-buffer precision, as drawing things on vastly different scales with a Z-buffer is nearly impossible to do without problems.

Share this post


Link to post
Share on other sites
To make a nebula (like those in Homeworld) you'll need a skybox with some nice textures. They probably had artists doing the texturing but you can use a procedural approach. In a 3D modelerer, create a sphere and place the camera inside it. Texture the sphere with a procedural texture (perlin noise maybe) and make sure it wraps. Then change the camera to point to the six views needed for a skybox and render. You can then paint some other things onto the textures like far away galxies.

For the stars far away i recommend you use points and generate the stars randomly to be evenly distributed onto a sphere. Either that or get data from the BSC (bright star catalog) and use it.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

Participate in the game development conversation and more when you create an account on GameDev.net!

Sign me up!