I figured it out it was the noise generation function, and also a little added variable i shouldent, so i just used my new simplex noise class, and got rid of the redundant variable and hey presto

. The only thing was that it bloody took 4 hours of adding NAN exceptions to functions and tracing it back to the right line of code causing the problem. The funny thing was it was only troughing this out if i used a heightmap, if i used a heightmap generated using fractals, it just works, cant be bothered to figure out why it works perfectly now. I have though moved most distance calculation variables to doubles, i want the acuracy and to be ohnest at the ground i get around 120fps not moving and about 40 - 60 moving, but ofcource the problem with quadtrees, its the updating, i need to find a way to speed this up.
cant use vertex and index buffers they just take too dam long to create, cant create them at loadtime or memory will go nuts. I only use 1 set of index buffers so this helps. anyways im just rambling now, thanx for the help

.