I am just starting out with OpenGL, so I need a little help understanding how textures are loaded. When I look at the OpenGL manual, it gives a list of accepted image formats, e.g.
GL_UNSIGNED_BYTE_3_3_2
GL_UNSIGNED_SHORT_5_6_5
GL_UNSIGNED_SHORT_5_5_5_1
GL_UNSIGNED_INT_10_10_10_2
//and a few others...
- Can I have a RGB texture with a
GL_UNSIGNED_SHORT_8_8_8_8
, or do I have to pad the image so that it is RGBA (or maybe it doesn't matter either way...)? - What is the purpose of all the other internal formats (
GL_R16
orGL_RGBA32I
) if there is no corresponding image format type (like the ones listed above) to load that type of texture? - Oh, and one other question. Is there a maximum texture size? Or I guess, if there is no maximum size, is there an optimal size for how large textures can be?