space graphics like eve-online

Blitz3D Forums/Blitz3D Programming/space graphics like eve-online

BerndWill(Posted 2004) [#1]
Hi everybody,

if you don't know EVE yet, check http://www.eve-online.com.
There you find wonderfull space panoramic pictures, consisting of background star fields, nebulae, suns, flares and nicely coloured clouds.

Can someone please linkt me to a space graphics tutorial, where I can learn how to make these kind of space graphics dynamically !? It does not have to be Blitzbasic based - any maths or algorithms tutorial will help me.

Thanks in advance !
Bernd


Regular K(Posted 2004) [#2]
Best thing to do is to find out how those graphics are made (bump-mapping, blah, blah, i dont know) then hunting on google for tutorials.


Picklesworth(Posted 2004) [#3]
I'm planning a space game.
I recommend spec mapping and a dynamic highly blurred reflection system to give a nice matt effect on ship hulls.
The great thing about space games is that you can make lots of nice high poly models and it won't hurt as much as in a planetary based game because there's not half as much environment to worry about.


BlackD(Posted 2004) [#4]
Making high-quality star backgrounds in Blitz is actually very difficult. Games like EVE-Online and Freelancer create a "large" looking space by changing the field of vision (FOV) of the camera, then adjusting zoom to bring the player location back into the middle of the view. This makes things a long way away look much larger, space much more expansive, and reduces the "curving" of planets and such at the edge of the screen.

Unfortunately, Blitz3D has no FOV manipulation. No matter how big you make the "sphere" that your player is located inside, simply turning you can see the warping of space around you curving at the edges of the screen, giving space a very "small", "enclosed" look.

The best method I've discovered of giving space a "huge" look is to NOT have an external sphere at all. Instead, make space out of sprites. Yes.. Sprites! :P Have starfield/nebula/galaxy etc sprites. Lots of different designs as well. Not a single sprite for each star, but for say, 100 stars. And it pans out in the engine like this:

- Set a fairly distant drawview, say 2000.
- Position the sprites all around the 360 degrees of freedom at this distance. You'll probably want to write a "scene-editor" to help you do this, rather than always hard-coding in their positions.
- All sprites must be facing the camera initially, but in a fixed, upright position, not "free". You don't want them to turn to face the camera as you turn.
- Pivot all the "space" sprites to the camera, although retaining 0,0,0 orientation, rather than camera orientation.
- As your player moves and turns, move the XYZ location of the sprites with the player in relation to the GLOBAL position, so they always stay the same distance from the player, but as you turn, they don't. Do NOT rotate them.
- Voila! You have a large looking space scene. :)

The smaller the sprites you use, the better the effect, as they "wrap-around" less at the edges of the screen, however the more you have the higher the perfomance cost. A couple of hundred at most. Or write a routine which cycles through all the sprites each refresh (assuming you're storing them as a type) and hideentity any that aren't in the camera view, and showeentity any that are. You might be able to fit a couple of hundred more in that way.

----

Now - as for cloud-fields etc that you can fly through - again, its a matter of sprites, though handled differently. I've never seen a space game using volumetric fog for dust clouds.. they're all simply multiple layers of alpha-transparencied sprites that only come into view when within a certain distance from the camera. When further away, they hide all those sprites and use a single simple sprite to show the whole dust cloud. As you approach, this single sprite is faded out and the individual sprites which make up the dust could are faded in. This is how virtually all space engines (including Eve-Online) handle things like dust-clouds.

And flares.. sprites and a simple math system.

Asteroid fields/nebulae/mines.. as above with dust-clouds.

For the most part, in fact, a space system is all sprites and particles. Exhaust trails, planet rings, gun laser bolts, missile trails, explosions, suns - these are all generally sprites/particles. The only meshes you use in a space scene are the ships, and the planets.

+BlackD


BerndWill(Posted 2004) [#5]
Just curious about the many different space panoramics you can find in these games:

Are all those thousands of different nebulae, mines, asteriod fields etc. packed into the game as prerendered sprites or dynamically calculated and rendererd when a level is started ?

Thansk, Bernd


Pongo(Posted 2004) [#6]

Unfortunately, Blitz3D has no FOV manipulation.



Actually you can adjust FOV by backing up the camera and using cameraZoom,... higher zoom levels will create a much flatter perpective. I always use this in my games as I find the default perspective to be too wide.


BlackD(Posted 2004) [#7]
@BerndWill - they're packed into the game. :) A few "demoscene" projects I've seen featuring space scenes generate them in runtime, but a faily simple series of nebula/dustclouds/asteroids will usually take a couple of minutes at least to render generate, and they still won't be nearly as pretty as eve-online. :)

+BlackD


BerndWill(Posted 2004) [#8]
So you say, these guys sit down dozens of weeks painting starfield pictures, clouds and nebulae ?

So, what tools / programs they use for making that cute pics ?

Thanks, Bernd


BlackD(Posted 2004) [#9]
err.. photoshop? There are no starfield/nebula generators. (except Universe, but that doesn't do what you want) :) Its simply a matter of knowing what you want it to look like and drawing it the hard way.


Pongo(Posted 2004) [#10]
Here are some good reference pics you may even be able to use. Check usage permissions before putting them directly into anything though

http://hubblesite.org/gallery/wallpaper/


Sunteam Software(Posted 2004) [#11]
Actually the method by which the development team of Eve Online created their nebulae's was to put different coloured paints into a fish tank (no fish in it of course) and then they swirled it around a bit and then took pictures. Pretty ingenious don't ya think :)


Shifty Geezer(Posted 2004) [#12]
Corel's Painter that came free with my Wacom graphics tablet makes creating Nebulae a doddle. Slap some colouts down and swirl them around...


_PJ_(Posted 2004) [#13]
I think most of eve-online's beautiful scenery came from the exquisite detail of the 'skybox', and high definition of the stars and plaents sprites. Effective use of sprites is paramount really.

For the skybox, open up your favourite art package. Take a blank, black/dark blue background.
USe a simple brush to swirl around some darkish red and dark blue. If possible, use a blend function to blend the colours together. Now take a much lighter piky/purple colour and dab in some spots at 'concentrated areas'. Also do the same with a light blue.

Now blur it to bits. Keep blurring. Blur more. Maybe add some 'same-as-background colour' spray around the edges. Blur some more.
And a little bit more blur. You may need to darken the whole image at this point.

I used a very basic system, of 3d meshes for asteroids, the Starfield sprite system from the Code Archives, and am goinng to add sprite-based dustclouds at a later date for finishing touches.

A couple of screenies are here


Here's some great tips from everybody's favourite Blitzers ;-)

http://www.blitzbasic.com/archive/posts.php?topic=14914


PetBom(Posted 2004) [#14]
@BerndWill

There was acually a feature article in EDGE magazine about CCP (The development company in Reykavijk) and EVE-online awhile back.

In the piece CCP described the method they used to create the backdrops. And I can tell you that it is very analouge! They have a large tank painted matte black inside. Into it they sprinkle, pour, spray and spaltter just about anything. (I'm writing this from memory, but I think they mentioned flour, youghurt and other stuff...) Then take panoramic photographs of the mess, digitizes it and clean up the photos in the computer and use them for the backdrops. Voila - EVE space! CCP claimed that this was the main reason for the distinct 'organic' style of space fetured in EVE.

I'm at work now an can't remember in what issue of EDGE it was (I'd say a year back or so), but I'll check as soon as I get home and report back tomorrow

(No, I'm not making this up!)

//PetBom


MSW(Posted 2004) [#15]

They have a large tank painted matte black inside. Into it they sprinkle, pour, spray and spaltter just about anything. (I'm writing this from memory, but I think they mentioned flour, youghurt and other stuff...) Then take panoramic photographs of the mess, digitizes it and clean up the photos in the computer and use them for the backdrops. Voila - EVE space! CCP claimed that this was the main reason for the distinct 'organic' style of space fetured in EVE.



Thats an old, old movie special effects trick...For example by mixing salt water and fresh water into a tank, the salt water naturanly sinks to the bottom with the fresh water sitting atop...pour in some paint, film it, and it can look like clouds hanging in the sky...tis how effects like storms and such have been done in movies.

Another thing you can try to get that "organic" look is to use regular photographs of people, nature and such...find some online or whatever...cut out the interesting parts in Photoshop...play around with contrast, brightness, saturation, even recoloring them...skew, resize, and distort them...then blur them, blending them together with the background through dodge, burn, additve, etc. blending modes.


_PJ_(Posted 2004) [#16]
Another good one, I used for some Alien-skin texture actually, was to take an image of microscopic bacteria/some part of a body etc., and play around with that a little...


PetBom(Posted 2004) [#17]
I checked my EDGE stack at home and found the article in #106 (January 2002).

From the article:


Edge is presented with the following sight: a slightly murky fishtank rests by the window, looking over sunny Reykjavik. Above it is affixed an expensive digital camera. Into this voluminous container, two of the teams artists are scooping foodstuffs: a layer of milk, Pollock styled splatters of jam, youghurt, long circles of golden syrup. They are being manipulated by a lengthy twig. When a suitably organic array is formed, a photo is taken. This image is then taken into Photoshop, manipulated and coloured appropiately and imported into the engine. And a beautiful, completely-random organic gas sphere is formed...



(The matte black thing was obviously added by my imagination. My memory is not what it used be...)

As for unconvetional textures, I've once scanned a pancacke fried in a teflon frying pan, to make a great alien skin.

//PetBom


_PJ_(Posted 2004) [#18]
mm jam, yoghurt, golden syrup......

oops sorry, I missed the point didnt I?!


PetBom(Posted 2004) [#19]
@Malice - Or maybe it was your lunch you missed :)


_PJ_(Posted 2004) [#20]
Hehe

Actually, I had a large, breakfast baguette today, (full of sausage, egg, bacon and some fried onion and tomato MMMMnnnnhh!) Also Mrs Malice gave some sarnies to take to work that I had to eat (Id be in trouble if I didnt) which also came with a little individual trifle-thingy and some choccy biscuits! ;-)

I do get looked after, actually!


Barliesque(Posted 2004) [#21]
Here are a couple more links to galleries of images of the real thing...

http://antwrp.gsfc.nasa.gov/apod/archivepix.html
http://heritage.stsci.edu/gallery/galindex.html
http://home.arcor-online.de/axel.mellinger/ (Map of the Milky Way)


podperson(Posted 2004) [#22]
If you want to create pretty nice quick space graphics and don't have a spare fish tank, the following photoshop filters are your friends:

1) Render clouds
2) Twirl
3) Ripple
4) Gaussian Blur
5) Motion Blur
6) Create Noise
7) Radial Blur

E.g. to create a quick galaxy:

1. Create a square image 512x512 or 1024x1024 (or some other power of two)
2. Render Clouds (note that render clouds creates tileable textures if the image is a square power of two).
3. With the gradient tool and the draw mode set to hard light, drag a white-to-black gradient from the centre to edge of the picture
4. Twirl the image (pick some reasonably large value and apply it multiple times to taste).
5. For extra credit, use the curves dialog to make it the appropriate "space is purplish blue" color.

Voila, instant milky way.

Quick star field:

1. Create noise (e.g. 10) -- try monochrome noise at about a level of 10. Repeat this until you have something that looks like a TV tuned to a non-existent channel.
2. Bring up the levels dialog, and adjust the black input level until space is mostly black. Adjust the white input level until your brightest stars are the right brightness. Then adjust the midlevel input until you're happy.

Voila, instant star field.


slenkar(Posted 2004) [#23]
how do you create 6 space textures that tile on a cube?

You could just make sure nothing like a nebula cloud crosses the seams I spose


BerndWill(Posted 2004) [#24]
Hi folks,

thanks very much for that uge big ideas !!!

One thing that still unclear is:
How do I get those picture onto the cube or sphere without seeing any corners at the edges ?

Thanks again for your creativity !
Bernd


Strider Centaur(Posted 2004) [#25]
Hmm why not use actual Hubble images as the basis for the graphics? You can't get more realistic than thos. :)

Also I like the sprite idea, but I would go one step furhter and exclude sprites that could not possibly be in view, this would allow for alot more sprites of smaller size and varying distances in the view, that would tend to give a truly paneramic effect.

If looking for real fast exclusion simply creat a type to hold the distant sprites positions, and a list of next slosest sprites, when you gen the map have the sprite list filled in, once you determine the max distance from any given sprite to the furthist possible sprite simply step through the list till the positions are out of range then stop. To the observer it would always look like they are in a giant bubble of stars, while in reality all they would be seeing is wedge.

And for planets, cant they just be big sprites that allways face the camera? I mean they are usually round and what not.


Now if someone would just write a space game where you could pilot your ship all the way to the planet surface, get out and explore, then fly off. That would be cool. Im guessing the reason no one does this is because of all the LOD work it would take.