panda3d how create planet with relief ?

From what I (think I) understand, heightmap implementations in Panda are designed for 2D surfaces only, including ShaderTerrainMesh at this point in time. For spherical terrains you may have to write your own code (that is what I ended up doing so far, anyway).

You have to decide on a mapping method though to translate 2D UV coordinates from the textures, including the heightmap, into a spherical surface. Each method has pros and cons and don’t forget what kind of UVs you will be having to work with, with whichever method you choose.

Most folks seem to recommend the spherified cube / cube sphere method. It is said to have the advantages of minimally distorted texture mappings that are relatively easy to work with in 2D texture space (emphasis on ‘relatively’). Each of the “square” sides can be implemented as a quad tree for culling as well.

For physics geometry, I think you have to use triangle meshes for collision detection. No other method is flexible enough, as far as I can tell. You should also think carefully before choosing ODE over Bullet physics. Bullet is significantly faster at certain types of collision tests and is more actively developed and (in my limited experience) better maintained. But in the past, others have said ODE has more thorough documentation (not sure if that is still true though).