Jump to content

How can they solve the massive texture problems?


Recommended Posts

After seeing that many flames in the past I've registered to say that big images can be split up into smaller, manageable chunks of texture. As far as tiling goes you could have unique hand drawn areas that can connect to other areas at intersections for dungeons!

Link to comment
Share on other sites

I did some quick calculations, based on wild guesses about the size and number of areas, overhead required for animated objects and so on. What I came up with was an estimate of 6-10GB for the backgrounds.

 

For animated objects (characters, monsters and such) you need the usual textures and such, but they would be smaller. Still, overall we might be looking at a total game size of 15GB or so.

 

That's still a reasonable size to fit on a set of DVDs.

 

Our slightly-above-average dungeon levels contain ~1 gig of render data, uncompressed.

Link to comment
Share on other sites

 

I did some quick calculations, based on wild guesses about the size and number of areas, overhead required for animated objects and so on. What I came up with was an estimate of 6-10GB for the backgrounds.

 

For animated objects (characters, monsters and such) you need the usual textures and such, but they would be smaller. Still, overall we might be looking at a total game size of 15GB or so.

 

That's still a reasonable size to fit on a set of DVDs.

 

Our slightly-above-average dungeon levels contain ~1 gig of render data, uncompressed.

 

 

~1 gig uncompressed per level of dungeon, or for the whole dungeon (with an average how many levels)?

The KS Collector's Edition does not include the Collector's Book.

Which game hook brought you to Project Eternity and interests you the most?

PE will not have co-op/multiplayer, console, or tablet support (sources): [0] [1] [2] [3] [4] [5] [6] [7]

Write your own romance mods because there won't be any in PE.

"But what is an evil? Is it like water or like a hedgehog or night or lumpy?" -(Digger)

"Most o' you wanderers are but a quarter moon away from lunacy at the best o' times." -Alvanhendar (Baldur's Gate 1)

Link to comment
Share on other sites

 

 

~1 gig uncompressed per level of dungeon, or for the whole dungeon (with an average how many levels)?

 

 

For a single level.  The number of levels in a dungeon isn't necessarily relevant, but the number of levels in the game is.  This is going to be a large game with a lot of maps.

 

That number does include all renders, btw (final, diffuse, specular, etc.).

  • Like 5
Link to comment
Share on other sites

For a single level.  The number of levels in a dungeon isn't necessarily relevant, but the number of levels in the game is.  This is going to be a large game with a lot of maps.

 

That number does include all renders, btw (final, diffuse, specular, etc.).

 

 

Okay... so how good is compression? :p

Because to my knowledge, you can compress a texture down to maybe 15% of its uncompressed size, i.e. roughly 7 times smaller. In order to be downloadable the game shouldn't be bigger than 10 GB so that would give us 7 x 10 = 70 maps.

That doesn't sound like much at all, and we didn't even consider that music, sounds and voice acting need a lot of space too...

 

That said my calculation is probably completely wrong.

 

EDIT: Actually it sounds about right, though I guess the game could be bigger than 10 GB. I just hope it won't be too much, with my ****ty Wifi connection it takes ages to download 10 GB.

Edited by Fearabbit
Link to comment
Share on other sites

 

For a single level.  The number of levels in a dungeon isn't necessarily relevant, but the number of levels in the game is.  This is going to be a large game with a lot of maps.

 

That number does include all renders, btw (final, diffuse, specular, etc.).

 

 

Okay... so how good is compression? :p

Because to my knowledge, you can compress a texture down to maybe 15% of its uncompressed size, i.e. roughly 7 times smaller. In order to be downloadable the game shouldn't be bigger than 10 GB so that would give us 7 x 10 = 70 maps.

That doesn't sound like much at all, and we didn't even consider that music, sounds and voice acting need a lot of space too...

 

That said my calculation is probably completely wrong.

 

EDIT: Actually it sounds about right, though I guess the game could be bigger than 10 GB. I just hope it won't be too much, with my ****ty Wifi connection it takes ages to download 10 GB.

 

 

Honestly, I think you can get away with 25-30 gig for a download.

 

Storage is cheap, and ever increasing.  And bandwidth is cheap, and even regions that still sell service with caps have had significant increases in their caps over the last several years as broadband for media streaming has become expected customer behavior.

Link to comment
Share on other sites

 

For a single level.  The number of levels in a dungeon isn't necessarily relevant, but the number of levels in the game is.  This is going to be a large game with a lot of maps.

 

 

EDIT: Actually it sounds about right, though I guess the game could be bigger than 10 GB. 

 

 

Largest game downloads right now are a bit over 30 GB.

50 GB for PE doesn't sound impossible, breaking 100 GB's would probably give some free press for being the biggast eva.

(but going past 50GB would likely start limiting purchases and I kind of hope it stays below that) 

Link to comment
Share on other sites

This is not a console game.

 

Baldur's Gate had 5 CDs.

I don't mind  if Project Eternity will have 10 DVDs.

  After my realization that White March has the same XP reward problem, I don't even have the drive to launch game anymore because I hated so much reaching Twin Elms with a level cap in vanilla PoE that I don't wish to relive that experience.

Link to comment
Share on other sites

Image data can easily be compressed at 10:1 without a noticeable drop in quality (see the great applets here, and keep in mind that the .bmp versions would be ~4.5Mb), so if an uncompressed level is ~1Gb, then ~100Mb/map doesn't seem out the question. As well as that, the low-res textures have about a quarter of the pixel count of the high-res ones, so they should be ~25Mb/map.

Link to comment
Share on other sites

Image data can easily be compressed at 10:1 without a noticeable drop in quality (see the great applets here, and keep in mind that the .bmp versions would be ~4.5Mb), so if an uncompressed level is ~1Gb, then ~100Mb/map doesn't seem out the question. As well as that, the low-res textures have about a quarter of the pixel count of the high-res ones, so they should be ~25Mb/map.

 

Two concerns:

1. The uncompressed files might have to contain multiple layers of information. For example, the alpha channel of (some of) the image files might be used to store information about the shininess of the surface. In that case you cannot achieve the same level of compression.

2. The pictures in the link already are very blurry. And it is not actually the gradients that cause problems, but the hard lines and edges between two colors. Especially screens that have very clear color schemes will show artifacts more easily.

 

The textures in Oblivion are compressed to 23% of their original size at best (i.e. the ones that don't contain additional information). I don't know what's possible in the engine Obsidian is using, but I wouldn't hold my breath for 10:1 compression.

Edited by Fearabbit
Link to comment
Share on other sites

they need a FLAC for image files

A lossless compression format? There are loads, of which the most well known are probably PNG and lossless JPEG. They only manage 2:1 ratios though, so are only useful when the file is going to be edited somewhere down the line. If recipients are just looking at it, may as well use a lossy format with a high enough quality factor that no-one can tell. Edited by coffeetable
Link to comment
Share on other sites

Two concerns:

1. The uncompressed files might have to contain multiple layers of information. For example, the alpha channel of (some of) the image files might be used to store information about the shininess of the surface. In that case you cannot achieve the same level of compression.

This shouldn't be a problem when you're designing the game. If you've got data that couldn't endure JPEG compression, pull it out to it's own file and stick it through lossless compression. That said, a lot of the non-art render data should be perfectly amenable to lossy compression.

 

2. The pictures in the link already are very blurry. And it is not actually the gradients that cause problems, but the hard lines and edges between two colors. Especially screens that have very clear color schemes will show artifacts more easily.

Are we looking at the same link? The suspension bridge has the hardest lines, and I don't see any artifacts appear until Q = 70, and that's a 300kb JPEG compared to a 4.5Mb bitmap.

 

e: Actually we know it's acceptable because the IWD image posted on the first page is a ~30Mb bitmap, but appeared on the game disk as a 4Mb JPEG.

 

The textures in Oblivion are compressed to 23% of their original size. I don't know what's possible in the engine Obsidian is using, but I wouldn't hold my breath for 10:1 compression.

Texture compression is a different beast to photograph (which is for our intents and purposes what PE's backgrounds are) compression. Textures are much smaller for one, but the big difference is that you need random, fast access to any point in the image.

 

I'm suspicious of a 23% reduction though. Any old texture compression alg should be able to get 2:1 at least. Are you comparing the compressed textures to losslessly compressed ones? Or ones that have simply been resaved in a lossless format?

Edited by coffeetable
Link to comment
Share on other sites

 

Two concerns:

1. The uncompressed files might have to contain multiple layers of information. For example, the alpha channel of (some of) the image files might be used to store information about the shininess of the surface. In that case you cannot achieve the same level of compression.

This shouldn't be a problem when you're designing the game. If you've got data that couldn't endure JPEG compression, pull it out to it's own file and stick it through lossless compression. That said, a lot of the non-art render data should be perfectly amenable to lossy compression.

 

2. The pictures in the link already are very blurry. And it is not actually the gradients that cause problems, but the hard lines and edges between two colors. Especially screens that have very clear color schemes will show artifacts more easily.

Are we looking at the same link? The suspension bridge has the hardest lines, and I don't see any artifacts appear until Q = 70, and that's a 300kb JPEG compared to a 4.5Mb bitmap.

 

e: Actually we know it's acceptable because the IWD image posted on the first page is a ~30Mb bitmap, but appeared on the game disk as a 4Mb JPEG.

 

The textures in Oblivion are compressed to 23% of their original size. I don't know what's possible in the engine Obsidian is using, but I wouldn't hold my breath for 10:1 compression.

Texture compression is a different beast to photograph (which is for our intents and purposes what PE's backgrounds are) compression. Textures are much smaller for one, but the big difference is that you need random, fast access to any point in the image.

 

I'm suspicious of a 23% reduction though. Any old texture compression alg should be able to get 2:1 at least. Are you comparing the compressed textures to losslessly compressed ones? Or ones that have simply been resaved in a lossless format?

 

 

1. No you can't. You can't pull out the alpha layer of an image. It stores just as much information as the actual image does and you can't take it away that easily. An image is nothing but data, if you do not compress that data then the overall size will be even bigger.

2. The bridge does not have "the hardest lines". If you paint a red circle on white background and save that with 60% JPG compression, you'll know what I'm talking about. Ugly, easily visible artifacts will appear even at comparatively lossless compressions.

3. Textures are a different beast, yes - you need a lot more of them in one single screen. So they need to be optimized even more, because otherwise your VRAM just won't be able to handle it. Which isn't a problem for Project Eternity.

4. 23% the size of the original image. Not 23% reduction. I'm talking about a 100:23 compression here, not 100:77.

 

These are things I know because I know a little bit about this stuff. For example I know that any compression is basically a Fourier transformation where the higher frequencies are cut off, resulting in a loss of detail especially when it comes to hard edges.

I also know that because of this, an image that uses a very small palette of colors (like the backgrounds from Icewind Dale, which are mostly dark or white and blue) will be much easier to compress than one that uses the full range of 24 bit of available colors.

 

What I do not know is: How the technology has advanced since 2006 and what kind of compression Project Eternity will use. Also whether there's actually any data stored in the alpha channel, whether they use normal maps, and how bad the artifacts actually are with the backgrounds they have created.

All I'm saying is that a compression to 10% the size is a bit optimistic, because it is purely based on the possible compression for a simple JPEG photography with lots of smooth edges. And because I've never seen a game use JPEGs as textures and I'm pretty sure there's a good reason for it.

Link to comment
Share on other sites

1. No you can't. You can't pull out the alpha layer of an image. It stores just as much information as the actual image does and you can't take it away that easily. An image is nothing but data, if you do not compress that data then the overall size will be even bigger.

Of course you can pull the alpha layer out. A bitmap is just an array with a cell for each pixel, and (for 32-bit colour) four bytes per cell (R, G, B and A). It's almost trivial to copy the RGB channels to a 24-bit image and the alpha to a separate 8-bit one.

 

A naive approach of lossily compressing the colour channels (24 bits/pixel @ ~10:1) and losslessly compressing the alpha channel (8 bits/pixel @ ~2:1) only buys you a 5:1 compression ratio, but that's a mile better than losslessly compressing the whole thing.

 

2. The bridge does not have "the hardest lines". If you paint a red circle on white background and save that with 60% JPG compression, you'll know what I'm talking about. Ugly, easily visible artifacts will appear even at comparatively lossless compressions.

They're the hardest lines you'll see often in photographs, which are the domain we're talking about (as they're the closest common analogue to PE's backgrounds). JPEG was designed for photo compression, and in that job it does exceptionally well. I don't know why you're even arguing this, because the IE games all used Q = 60ish JPEG backgrounds and they were fine.

 

3. Textures are a different beast, yes - you need a lot more of them in one single screen. So they need to be optimized even more, because otherwise your VRAM just won't be able to handle it. Which isn't a problem for Project Eternity.

I don't think you understand texture compression algorithms.

I also know that because of this, an image that uses a very small palette of colors (like the backgrounds from Icewind Dale, which are mostly dark or white and blue) will be much easier to compress than one that uses the full range of 24 bit of available colors.

 

These are things I know because I know a little bit about this stuff. For example I know that any compression is basically a Fourier transformation where the higher frequencies are cut off, resulting in a loss of detail especially when it comes to hard edges.

And you don't understand compression algorithms as a whole either. Some algorithms rely on DFT, but there are many other types too. And why would the IWD palette matter? For one most algorithms compressing >24 bit colour are ignorant about how muted the palette is (it's how "noisy" the image is that matters), and for two every IE game used JPEG backgrounds and got 10:1 compression ratios too, I just chose the IWD image because it was posted earlier in the thread.

 

What I do not know is: How the technology has advanced since 2006 and what kind of compression Project Eternity will use. Also whether there's actually any data stored in the alpha channel, whether they use normal maps, and how bad the artifacts actually are with the backgrounds they have created.

All I'm saying is that a compression to 10% the size is a bit optimistic, because it is purely based on the possible compression for a simple JPEG photography with lots of smooth edges. And because I've never seen a game use JPEGs as textures and I'm pretty sure there's a good reason for it.

The state of the art has advanced but everyone is still using JPEG anyway (because it's really good), the IE games used JPEG and got 10:1, and the IE games could use JPEG because backgrounds aren't textures. Edited by coffeetable
Link to comment
Share on other sites

 

Of course you can pull the alpha layer out. A bitmap is just an array with a cell for each pixel, and (for 32-bit colour) four bytes per cell (R, G, B and A). It's almost trivial to copy the RGB channels to a 24-bit image and the alpha to a separate 8-bit one.

 

 

Oh for the love of... yes of course you can do it, I was trying to say that it would create problems somewhere else. My point was that you can not take the alpha layer away, then have your 10:1 compression as if the data in the alpha layer suddenly disappeared. Like you said yourself you'd have to use 2:1 compression on the alpha layer, increasing the size of the compressed image. That's exactly what I said - you said 10:1 is possible, I said "ah, but there's an alpha channel that might cause problems".

 

Anyway, I have no interest in having this discussion with someone who, instead of saying "actually it works like this", prefers saying "apparently you have no idea what you're talking about, and I'm not gonna tell you".

I wasn't trying to take your 10:1 compression away, just saying I was skeptical about it.

Link to comment
Share on other sites

This is where multiple distribution networks would be great. Torrenting these games and then purchasing a license for each a la a game key or something. I don't think GOG will be able to serve that many people dling the game if it is that big.

My blog is where I'm keeping a record of all of my suggestions and bug mentions.

http://hormalakh.blogspot.com/  UPDATED 9/26/2014

My DXdiag:

http://hormalakh.blogspot.com/2014/08/beta-begins-v257.html

Link to comment
Share on other sites

This is where multiple distribution networks would be great. Torrenting these games and then purchasing a license for each a la a game key or something. I don't think GOG will be able to serve that many people dling the game if it is that big.

 

Good in principle. However, torrenting seems to be a very dirty word. A politically correct way to say it might be... "crowd-distributed"? Or supporter-uploaded? Backer-throttled? Please use my bandwidth, no, I'm not stealing the thing -ing? Maybe just plain old (and not as silly sounding) peer-to-peer.

 

P2P also gets the evil eye but if Blizzard can use it for their paid for games then it's probably allowed?

 

Come to think of it, Kickstarter ought to start some tracker for legal p2p distribution (without any mention of "torrent" of course). Kickstarted distribution. A legal tracker with a an integrated interface for licence key purchasing and all the support of the community should do quite well.

Link to comment
Share on other sites

  • 3 weeks later...
  • 2 months later...

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
×
×
  • Create New...