OpenGL es, controlling VM usage when generating and rendering MIP maps
Is it possible to create a MIP map in open gl es 1.x that only loads the texture resolution it is currently rendering?
So instead of loading all the textures resolutions from the largest to the smallest at once, have the mipmap only store the one it is currently rendering. Then have the gl load the new resolution textures as I zoom in and out. This way I could load many large textures onto a surface and zoom out to view them all at once without having any VM budget issues.
If gl doesn't have a way to do this, is it possible to override the onDraw function to determine w开发者_开发问答hat level of the mipmap is being requested to be rendered so I can manually load a new texture?
As far as I am aware, there is no functionality for that. When you define that a texture object has MipMaps then you have to fill all of them. If you dont then that counts as an error and undefined behaviour as a result - usually you get a black rendering when using that texture.
Even if you could do it, you wouldn't really want to; uploading data for texturing can be a slow process especially on mobile platform, so performance would suffer a lot. Finally MipMaps usually work with linear interpolation, blending between the different available resolutions of the texture data uploaded - at least two sizes would be required.
精彩评论