I want to know how MPGeometry works? That is to say, how can it blend multi image layers? In MPGeometry::renderPrimitives(), I found a loop for these image layers, each called glDrawElelments() once. So my question is why there is no z-fighting?
MPGeometry renders image tiles in a multi-pass fashion. There is no Z-flighting because it is rendering the exact same geometry each pass (so the resulting depth values are identical) and the engine sets the depth testing function to GL_LEQUAL so that the Z test always passes. (This happens in MPTerrainEngineNode.) It then uses GL blending with pre-multiplied alpha to composite the layers.