Question about Mipmaps in jme3

Hi

I’m looking to improve and optimise my scene. One thing I’m not sure about is mipmapping - I have a few questions,


  • I’m using imported ogre models from Blender - are the mipmaps automatically generated inside jme3?


  • if so - then your texture should be in a square such as 512x512 or 256x256 etc - mine aren’t, so will I have to change this?


  • Blender has a button for mipmaps - should I export mipmaps from here?


  • if jme3 generates mipmaps for me, then do I have to create and assign all textures to models inside jme3 - rather than imported models with textures already assigned.


  • in general what’s the practice for using mipmaps,



    thanks.

Well:

if you sue a format different to dds, jem will conver tthe texture to either a one with same ratio as the soruce (modern graficcards) or scale it to the next 2x2 for older (nad it looks often ugly)



Mipmaps are generated in that case I would say. with the minimase magnify filter ( you can also set them manually on a texture object)



Alternativly you could use DDS format

there you can specify manually the images for each size however it only supports 2x2 textures.



Also mipmaps are not for optimizing of performanc, the main idea is,



if I have a object occupying 10x10 pixel with a texutre of size 200x200 and use the naive apporach of just selecting the next pixel I get kinda random swimming results , however if I then use the mipmap with 16x16 the result is much better as the randomness decreases.



You however also lose much details in this process (like clear lines are blurred if you use a interpolating mipmapfilter(the most primitive just works identically to have none at all)) but for this effect you can use anisitropic filtering



http://en.wikipedia.org/wiki/Bilinear_filtering (a good article showing you the differences of a few mipmap technologies)





Mipmaps could also be used to set the wanted texture quality ( like hardware vram useage) opengl only uploads the used textures to the grafficcard(in the used mipmaplevel) ((hard simplyfied for understanding)) however since the driver settings can override your application settings it is not a reliable way to do this things

2 Likes

Thanks very much for that information…

jME3 uses mipmaps automatically unless you tell it not to. It will generate them for any textures (inside model or manually loaded or w/e).

And yes it is preferable to use power-of-2 textures even if your GPU supports the other kind, reason is that its usually faster and better.

thanks, I was worried I had to implement manually.