• entries
    232
  • comments
    1462
  • views
    956448

Detail textures, step 1

Sign in to follow this  
Ysaneya

346 views

So here we are. I've started to implement detail textures. It's extremely early, and i've actually broken some other parts of the code :) So, i was hesitating a bit to post it, but i thought the end result was "good enough" to show.



As usual, the conditions are very different from the last set of screenshots. The atmosphere doesn't look the same and it's not the same location. But if you look closely at the ground, you'll notice it's now textured. I'm using a set of texture layers and a technique called texture splatting. However, instead of assigning weights per vertex ( the standard way of doing splatting ), i'm assigning them.. per pixel.

This isn't much visible in that screenshot, for a simple reason: as i'm early in my tests, i'm only using.. 4 layers. That's right, only 4: water, grass, forest and snow. Of course i plan to add more layers for more variety.. i think i'll go up to 12 layers. In addition, in this screenshot, i've disabled the per-slope texturing. It's only altitude based. Taking into account the slope, i think the variety and realism of the terrain will be increased a lot. Finally, i still have to tweak the lighting to match the terrain sharpness better.

The best thing ? Per-pixel texture splatting comes out to be free as far as performance is concerned, since i'm only using it at texture generation time (ie. once every N frames), and the textures are then cached for the "normal" rendering.

The addition of detail textures immediately gives a better understanding of the scales of the "features". For example, in the "above" screenshot, the two mountains look more like hills. In fact, they are many kilometers high! The new screenshot with detail textures shows mountains which are pretty much the same size, but now you really feel high in the sky, instead of being a few meters above the ground only..

With vegetation and clouds casting shadows, i think the terrain engine will be pretty close to what you could find in a flight simulator.

In a few days, i'll test a non Earth-like planet with the textures Betelgeuze made.
Sign in to follow this  


8 Comments


Recommended Comments

Wow, your planets keep looking more and more amazing!

One thing I've been meaning to ask is what you actually plan on doing with these procedurally generated planets (or is it just for making the most awesome planets you can?)

Just curious!

Share this comment


Link to comment
Quote:
For example, in the "above" screenshot, the two mountains look more like hills. In fact, they are many kilometers high!

I actually thought they were big mountains anyway [smile]

Is the normal-mapping now per-pixel reflecting the "roughness" of your new textures?

Keep up the good work!
Jack

Share this comment


Link to comment
Dude I have to ask this... it's been bugging me for a while.

All of this stuff is great. Looks fantastic and is superb. However, how will this be more than just a cool tech demo? How practical is it to put all of this stuff into a real game? Won't loading times be HORRENDOUS? And if you're doing al ot of this stuff per-pixel, wouldn't it be hard on the system to render all the time?

Graphics aren't all that a game has to worry about. AI, Models of everything, gameplay, etc... Won't you be taking away from all that stuff just to have realistic looking terrain?

Share this comment


Link to comment
Quote:
Graphics aren't all that a game has to worry about. AI, Models of everything, gameplay, etc... Won't you be taking away from all that stuff just to have realistic looking terrain?

Although I think it would be practical for a real-time game, I have to admit that I've thought about this too. I've NEVER been able to write a graphics engine and build a game around it. Too many game related issues pop-up that weren't accounted for in the graphics implementation. Now, for this reason, I stick to writing the game and working with placeholder graphics. If Ysaneya can pull this off, it will utterly shatter everything I've thought I knew about game programming. *shivers* [looksaround]

Share this comment


Link to comment
I'm not sure what sort of game Ysaneya has planned for this, but everytime I see all these great terrain engines it reminds me how much I really want to create my own remake of Magic Carpet...

Share this comment


Link to comment
Quote:
One thing I've been meaning to ask is what you actually plan on doing with these procedurally generated planets (or is it just for making the most awesome planets you can?)


No, as incredible as it sounds, i actually plan to make a game from it :) A sci-fi, procedural Elite-alike MMOG. Link to the website with more infos is at the top of the page, in the header of the journal.

Quote:
Is the normal-mapping now per-pixel reflecting the "roughness" of your new textures?


No, not yet.

Quote:
All of this stuff is great. Looks fantastic and is superb. However, how will this be more than just a cool tech demo? How practical is it to put all of this stuff into a real game? Won't loading times be HORRENDOUS? And if you're doing al ot of this stuff per-pixel, wouldn't it be hard on the system to render all the time?


There is no loading times, since everything so far is generated procedurally on-the-fly. Actually i'm lying a bit: there is some waiting time (to generate the global heightfield and texture for the planet), up to 30 seconds. But it's not optimized yet, and i plan to do most of this work in a separate thread in the future.

About performance: there's no performance hit "all the time", simply because i'm only using per-pixel procedural texturing once every N frames. At the fastest camera speeds at ground level, N is still tens of frames. At the "normal" and slowest camera speeds, N can be less than once per second.

The "normal" rendering is just rendering a single, diffuse texture. Well, there's more to it (blending with its parent, atmosphere, etc.. ) but as far as procedural texturing is concerned, it is free for the normal rendering (ie. 99% of the time). If i have time, i'll write an article about this technique one day. I'm sure i can cope up with a good-sounding name.. what about per-pixel procedural texture splatting ?

Quote:
Although I think it would be practical for a real-time game, I have to admit that I've thought about this too. I've NEVER been able to write a graphics engine and build a game around it. Too many game related issues pop-up that weren't accounted for in the graphics implementation.


Yes, that's a danger. But don't let all my graphics work fool you: i'm doing more than graphics work, i'm doing a complete game engine. I've already started to work on the universe generator, the navigation physics, the database, the networking, etc.. Granted, there's no "game" at the moment, but i have two years to develop it.

Share this comment


Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now