• Advertisement
Sign in to follow this  

Whats up with large scale textures in games?

This topic is 3831 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

OK I seen that the new games coming out soon in the future are going to support mega textures. So now we can do this in games? What was the hard part about creating mega textures in the first place? Yeah sure the Doom3 engine when it first came out was a hit because of it graphics and dynamic shadows, but now we are moving into mega textures? Can someone explane to me why it must take so much power just to create a mega texture if you get rid of the high graphics and bump mapping. I do know it takes the game longer to load, but why are we now just moving onto this technology?

Share this post


Link to post
Share on other sites
Advertisement
I think the reason we are just getting into it now is because the amount of memory on video cards and in systems is finally able to hold all the data without murdering performance.

Share this post


Link to post
Share on other sites
We're getting into it now because now we can use shaders to handle virtualized textures.

There's also native hardware support for it in SM4 cards.

Share this post


Link to post
Share on other sites
Quote:
Original post by ajm113
Can someone explane to me why it must take so much power just to create a mega texture if you get rid of the high graphics and bump mapping.
Because id's "megatextures" are in excess of 20 GB. (That won't even fit on two dual layer DVDs without compression.)

Share this post


Link to post
Share on other sites
So umm, how difficult would it be to implement megatextres in a graphics engine?

John Carmack was geeking out about how awesome it was when he finally managed it, so I assume it's something even experienced programmers might find hard to implement.

Share this post


Link to post
Share on other sites
Supposedly it's streamed on-the-fly (it's something like 32000x32000), using a fragment program to do a lot of the heavy lifting (i.e. what areas of the image to use). The engine just sees it at one giant texture, the fragment program is the important bit. It uses a very small amount of graphics memory, since the entire texture isn't loaded into RAM at once.

Terrain itself is still encoded manually in the map, but supposedly the megatexture can contain information on the different types of terrain.

In other words, it's entirely possible without being a huge performance hit, if you can be clever about it.

See here and here.

Share this post


Link to post
Share on other sites
Personally, I don't understand the appeal of such texturing techniques - it has to cost a ton to create such large textures, and you can achieve virtually the same effects using a few levels of detail textures at a much much smaller resolution and memory footprint.

Share this post


Link to post
Share on other sites
A/ using lots of detail textures is gonna look worse
B/ its gonna be slower in FPS also

i believe the new version of megatexture uses 128k * 128k sized textures
i wonder how many dvds the games are gonna require?

Share this post


Link to post
Share on other sites
Quote:
Original post by zedz
A/ using lots of detail textures is gonna look worse[...]
Only very slightly, at least compared to every demo of megatextures I've seen. To me, it seems silly to have hundreds of megabytes of grass textures when grass is grass. One small grass texture (say 512*512) combined with two detail textures (each the same resolution, but one at 1:64 scale and one at 64:1 scale) will look good except from very, very far away. (I'm talking about ground textures and not blades of grass)
Quote:
[...]B/ its gonna be slower in FPS also
I don't see how this is possible, since detail textures take much less memory and won't need to be swapped out nearly as much, so bandwidth use will be lower, cache hits higher, etc.

Share this post


Link to post
Share on other sites
He propably has spent a lot of late evenings optimising it. Even if you have small textures, I belive they are duplicated so that it really makes up one large texture after all. I don't know how John really got it to work, but he is propably streaming it in bits...

Share this post


Link to post
Share on other sites
Quote:
Original post by Extrarius
To me, it seems silly to have hundreds of megabytes of grass textures when grass is grass. One small grass texture (say 512*512) combined with two detail textures (each the same resolution, but one at 1:64 scale and one at 64:1 scale) will look good except from very, very far away.

Is it not possible to tile texture coordinates and re-sample the same small (grassy) part of the mega-texture? Or does each vertex need a unique texture coordinate? It does seem a waste if you can't re-use tex-coords.

Share this post


Link to post
Share on other sites
Quote:
I don't see how this is possible, since detail textures take much less memory and won't need to be swapped out nearly as much, so bandwidth use will be lower, cache hits higher, etc.
with mesgatexture u only sample the one texture, otherway u have to sample multiple textures + combine them.
i can see artists really loving unique texturing (much easier)

Share this post


Link to post
Share on other sites
Quote:
Original post by dmatter
Quote:
Original post by Extrarius
To me, it seems silly to have hundreds of megabytes of grass textures when grass is grass. One small grass texture (say 512*512) combined with two detail textures (each the same resolution, but one at 1:64 scale and one at 64:1 scale) will look good except from very, very far away.

Is it not possible to tile texture coordinates and re-sample the same small (grassy) part of the mega-texture? Or does each vertex need a unique texture coordinate? It does seem a waste if you can't re-use tex-coords.
If you re-use tex-coords in such a manner, what are the benefits of a megatexture in the first place? My understanding was that the point was to have as much unique texture as possible. If you don't mind using 'standard' (by which I mean well-known but AFAIK not-often used well) methods for grass, why not use them for rock, wood, skin, etc? Where do you draw the line, and what benefits do you gain from doing so?

Share this post


Link to post
Share on other sites
Quote:
Original post by zedz
Quote:
I don't see how this is possible, since detail textures take much less memory and won't need to be swapped out nearly as much, so bandwidth use will be lower, cache hits higher, etc.
with mesgatexture u only sample the one texture, otherway u have to sample multiple textures + combine them.
i can see artists really loving unique texturing (much easier)

I doubt that a few additions and texture lookups in a shader will offset the massive work required to load and stream a 32k x 32k texture.

Share this post


Link to post
Share on other sites
Quote:
Original post by zedz
Quote:
I don't see how this is possible, since detail textures take much less memory and won't need to be swapped out nearly as much, so bandwidth use will be lower, cache hits higher, etc.
with mesgatexture u only sample the one texture, otherway u have to sample multiple textures + combine them.[...]
Since graphics cards are designed to do exactly that, I don't see how it'd be slower than reading from slower memory.
Quote:
[...]i can see artists really loving unique texturing (much easier)
From the perspective of being straightforward to create, maybe, but having to create hundreds of times as much texture has to slow the process down somewhat.

Share this post


Link to post
Share on other sites
Quote:
Original post by zedz
Quote:
I don't see how this is possible, since detail textures take much less memory and won't need to be swapped out nearly as much, so bandwidth use will be lower, cache hits higher, etc.
with mesgatexture u only sample the one texture, otherway u have to sample multiple textures + combine them.
i can see artists really loving unique texturing (much easier)


I'm not sure they will be loving it, it very much depends on the pipeline and tools

Share this post


Link to post
Share on other sites
Quote:
Original post by Extrarius
Quote:
Original post by zedz
Quote:
I don't see how this is possible, since detail textures take much less memory and won't need to be swapped out nearly as much, so bandwidth use will be lower, cache hits higher, etc.
with mesgatexture u only sample the one texture, otherway u have to sample multiple textures + combine them.[...]
Since graphics cards are designed to do exactly that, I don't see how it'd be slower than reading from slower memory.
Quote:
[...]i can see artists really loving unique texturing (much easier)
From the perspective of being straightforward to create, maybe, but having to create hundreds of times as much texture has to slow the process down somewhat.

IIRC iD said they have some kind of tool to autogenerate the initial terrain texture based off of reference textures (grass, rock, etc.) and terrain slope/height/etc. That'd give you quality identical to texture splatting + detail textures. Then the artists start from that to paint on the unique detail.

Share this post


Link to post
Share on other sites
Quote:
Original post by OrangyTang
[...]IIRC iD said they have some kind of tool to autogenerate the initial terrain texture based off of reference textures (grass, rock, etc.) and terrain slope/height/etc. That'd give you quality identical to texture splatting + detail textures. Then the artists start from that to paint on the unique detail.
I'd love to see a diff image between the autogenerated texture and the final result of the artist's modifications. It would definitely help me understand why they're an improvement over the 'standard'(well-known but rarely well used) techniques.

Share this post


Link to post
Share on other sites
its not gonna be that hard to create a 32x32 or 128x128 sized texture
yould start off with either

A/ some texture generated with terragen or similar program (id no doubt have written one)
B/ actual satellite/plane photos of landscape

and then let the artist sex them up ( if necessary )

Quote:
I doubt that a few additions and texture lookups in a shader will offset the massive work required to load and stream a 32k x 32k texture.
i remember reading somewhere that is not as intensive as it first appears, also the engine streams in data at a distance at a lower resolution (thus requiring even less texture memory with unique texturing than standard methods)

Share this post


Link to post
Share on other sites
I think the main advantage of unique texturing is when you add layers on top of what you'd get from splatting etc... Roads/tire tracks, walk paths, water erosion patterns in gullies, bomb craters etc. A lot of these can be procedural as opposed to "hand-drawn" too, the point is you can add absolutely anything you can think of onto the surface without any performance penalty; the layering can be infinitely deep when it's not done in real-time. A real-time splatting system doesn't scale as well, it's limited by how many texturing units the video card has and how many texturing passes you can afford.

Share this post


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

  • Advertisement