If it is "P3" then the image is given as ASCII text, the numerical value of each pixel ranges from 0 to the maximum value given in the header. The lines should not be longer than 70 characters.
If the PPM magic identifier is "P6" then the image data is stored in byte format, one byte per colour component r,g,b. Comments can only occur before the last field of the header and only one byte may appear after the last header field, normally a carriage return or line feed.
Note that "P6" PPM files can only be used for single byte colours. This format is identical to the above except it stores greyscale information, that is, one value per pixel instead of 3 r,g,b. The only difference in the header section is the magic identifiers which are "P2" and "P5", these correspond to the ASCII and binary form of the data respectively.
Traditionally "0" refers to white while "1" refers to black. The header is identical to PPM and PGM format except there is no third header line the maximum pixel value doesn't have any meaning. The magic identifier for PBM is "P1".
The package also includes simple tools for manipu- lating portable bitmaps. The package consists of four upwardly compatible sections: pbm Supports monochrome bitmaps 1 bit per pixel. Reads either pbm or pgm formats and writes pgm format. Reads either pbm, pgm, or ppm formats, writes ppm format. Reads either pbm, pgm, or ppm formats, and generally writes the same type as it read whenever a pnm tool makes an exception and "promotes" a file to a higher format, it informs the user.
The following are all valid PPM headers. Header example 1 P6 Header example 2 P6 A comment Header example 3 P3 the image width the image height A comment The format of the image data itself depends on the magic PPM identifier. While not required by the format specification it is a standard convention to store the image in top to bottom, left to right order.
The components are stored in the "usual" order, red - green - blue. PGM This format is identical to the above except it stores greyscale information, that is, one value per pixel instead of 3 r,g,b. Diffuse This is surprisingly bad. Firstly you can see how the DXT compression has done a good job with all of the texture with the exception of the star decals.
Unless you are using an alpha channel, there's mostly no point in choosing anything other than DXT1 unless you specify via code, the default format that the compiler compresses textures to is DXT1. Specular This is actually not too bad. Small, single colour details will often show the kind of compression artefacts that the arrows point too, but this is often not so big a deal. Where I have found the most issues is with the house colour channel of the specular map especially the Nod specular map.
Normal Where DXT compression is truly rubbish is with normal maps. They almost never fail to wreck them in some manner. The above is typical of what DXT compression does to a normal map. Has well has the random destruction of diagonal lines, it can also randomly wreck even straight lines. The arrow that has the letter A in brackets close by, is pointing out another common compression artefact issue. These darker blobs will show up quite strongly in the specular map, provided that the right or wrong!
The best way to avoid noticing the normal map issues that DXT compression causes is to not look for it in the first place! Once you know what to look for you will spot it readily on the texture and in turn you will spot it easily in game. Which is to say that it recreates your texture using less colours Diffuse No issues with the star decal!
A look at the above and you can overall see how much lower quality the texture is in the darker area. You can see banding in various areas of the texture, I highlighted one easily spotted area, and because of the file size kb this is simply not worthwhile for this type of texture. Indeed I struggle to think of a situation where this format would be useful. I suppose if you had a very cartoon like texture that did not have a lot of colour variation, and DXT compression was destroying it with colour bleed and artefacts, then maybe this could be useful?
Specular The above specular is not making use of the blue channel at all has you can probably tell, and because of how noisy the texture is, it is difficult to tell if there is any banding issues. There is a slight hue difference, with the 24bit TGA being slightly more orange, which would indicate that there is a difference in the green channel between the and the TGA. So let us investigate that further. Specular Green channel What the hell is that? Again that is surprisingly bad.
It must be said that I could still hardly make out any difference in the red channel probably due to the noise , but that is a destruction of the green channel! I can see nothing to recommend using this format for the specular map at all.
Normal Pretty poor has expected, yet it is important to note that it does not destroy diagonals, unlike DXT compression. There is also once again a slight overall hue shift, so this will not do for normal maps at all. It does not help that the lighting is at a different angle for the uncompressed 32bit image X8R8G8B8 , but you can still get a quick look at the differences of the formats it helps if you are viewing their original size.
For example you can see how awful DXT compressed normal panel lines are and all the specular compression artefacts they add. You can see how the format creates a texture with less detail in terms of colour variation. Some notes about the above list. There is no point ever using DXT3 in my opinion has the only thing it provides is worse alpha channel support.
Here it is important to specify on your texture xml code that you want DXT5 specifically If you leave it up to the compiler it will probably choose DXT5 if it detects an 8bit alpha. For whatever bizarre reason, the engine developers did not include the R8G8B8 format which would have created a smaller 1,kb file size then the X8G8R8B8 file, which essentially waste 8bits.
If you go to x the file size jumps to 5,kb! Generally speaking you want to be using DXT1 most of the time, using DXT1A if you are going to use the alpha channel to make certain parts of your model invisible alpha test option , or DXT5 if you are using the alpha channels with greyscale.
The 32bit uncompressed formats are a luxury whose use you would want to limit for special items has a small mod maker I admit that I use far more than I really should!
0コメント