Answer to the first question
Yes
Answer to the second question
Each mipmap level has exactly half the width and height of the mipmap level above it. So for mipmap level n the dimensions are w·2-n and h·2-n where w and h are the size of level 0.
It can be easily programmed by recalling that bit shifting (the >>
and <<
operators in C like languages) are power of 2 operators. So a << n
= a·2n and a >> n
= a·2-n
Answer to the third qiestion
Yes, but the quality of the minification filter used by the particular OpenGL implementation may not meet one's demands.