Skip to main content
GameDev.net gamedev.net
🔒 Locked

textures textures textures :)

Started by pressgreen Jul 18, 2012 at 7:50 PM 8 replies 2.2k views
Original Post
pressgreen
pressgreen
ok i want to start making a game. i have my geometry raring to go. i just need to texture them which i can, but before proceeding i would like to ask you guys what is the most legit texture file type being used in most legit games? like jpeg, ppm, tga for example. what the verdict? thanks
J-GREEN

Greenpanoply
Waterlimon
Waterlimon
afaik jpeg uses lossy compression so thats probably bad for most ame graphics.

what about png?
o3o
FLeBlanc
FLeBlanc
.DDS is sort of an industry standard. Supports compression + mipmaps. Other than that, I see .TGA widely used, as well as .PNG.
21st Century Moose
21st Century Moose
DDS is good, yes. It's lossy for sure, but like FLeBlanc said it can contain a full mipmap chain, and you can load it directly into your GPU's video RAM via the appropriate API calls without needing to go through any intermediate software stages.
Direct3D has need of instancing, but we do not. We have plenty of glVertexAttrib calls. 
omercan1993
omercan1993
I suggest also DDS or PNG. But maybe you can use something else... DDS and PNG are not the only ones, but the compfortables and often used ones in the industrie
Postie
Postie
The dds format can be uploaded in a compressed state and decompressed by the graphics hardware, whereas .png will need to be decompressed at the cpu/graphics driver end and uploaded as raw bitmap data, which consumes more bandwidth.

That said, I'm currently using .png, as it is easier to manipulate during development. When I'm closer to release I'll convert them all to .dds and see if it makes a difference to performance at all.
[size="2"]Currently working on an open world survival RPG - For info check out my Development blog:[size="2"] ByteWrangler
lemming77
lemming77

DDS is good, yes. It's lossy for sure, but like FLeBlanc said it can contain a full mipmap chain, and you can load it directly into your GPU's video RAM via the appropriate API calls without needing to go through any intermediate software stages.


DDS isn't necessarily lossy. DXT compression is lossy, but with DDS images, you have the option of using either that or storing them in an uncompressed format.

I'd recommend experimenting with it a bit, as with some maps, this compression isn't a problem, and in others it is. For instance, DXT compressed normal maps tend to have quite ugly artefacts when used in game, but it's much less significant in DXT compressed albedo maps.
Nik02
Nik02
The benefit of compressed DDS is that it saves memory - thus saving bus bandwith - and that can give you a major performance boost. Modern hardware can very efficiently decompress the data on the fly during sampling.

DDS can, of course, contain uncompressed data too, in case you want to maintain perfect fidelity in some art.
Niko Suni
21st Century Moose
21st Century Moose

[quote name='mhagain' timestamp='1342644613' post='4960647']
DDS is good, yes. It's lossy for sure, but like FLeBlanc said it can contain a full mipmap chain, and you can load it directly into your GPU's video RAM via the appropriate API calls without needing to go through any intermediate software stages.


DDS isn't necessarily lossy. DXT compression is lossy, but with DDS images, you have the option of using either that or storing them in an uncompressed format. smile.png

I'd recommend experimenting with it a bit, as with some maps, this compression isn't a problem, and in others it is. For instance, DXT compressed normal maps tend to have quite ugly artefacts when used in game, but it's much less significant in DXT compressed albedo maps.
[/quote]
True that, and good advice.
Direct3D has need of instancing, but we do not. We have plenty of glVertexAttrib calls. 
_the_phantom_
_the_phantom_
Generally speaking you want to keep your source data in a non-lossy format - PNG and TGA are popular formats.

After that DDS is a simple container format to use which, as others have said, can contain DXT/BC compressed data as well as uncompressed data (such as RGBA8, L8 and other formats), mipmap chains, cube maps and 3D textures. The texture data in this container format can just be passed directly to the GPU and used 'as is' which is why it is used in professional development (note: they might not use DDS as is. For example our pipeline takes a TGA source data, compresses it to DDS and then runs a final step which splits it into a 'header' and 'data' file. The former is used to contain information about the texture, the latter is the texture data).

As to what compression is used on what texture; well that depends on the texture itself. Some might work well with DXT1 (BC1), others need DXT5 (BC3) and if you are targetting DX11 you can use the newer BC (block compression) formats. One of which has a higher quality mode and the other supports HDR data (BC6 and BC7). Normal maps can be compressed with varying quality depending on your requirements.

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.