I'm working on a terrain engine that implements the geometry clipmaps, the thing is, i'm wondering what is the best way to build up the height/diffuse/normal maps? currently I have a separate thread reading my files to build the maps, which are only height and diffuse, then re-creating the ID3D11Texture2D every time, I have 2 copies of each map to swap between them while one is being filled, and my normal are generated in the pixel shader from the height map (taking 4 samples for each pixel).
now the question is, should it be done like that? should I be calling some ID3D11Device::CreateTexture2D and their SRV's every while? would it be more efficient to have my textures dynamic and have the thread only read the file and fills in some memory then the main threads Maps and Unmaps the textures according to the read data? and how about the normal map, should it be extracted from the height map in the pixel shader or at the clipmap update?
Finally, since i'm using D3D11, is the tessellated terrain a better implementation to go with? I tried a sample by NVidia by looks like it's not as fast as it should be - I had around 50 FPS with only the terrain on screen so I supposed it was disappointing.