The upcoming Copter-3.4 release will include terrain following support for mission commands using either Google earth altitude data or a Laser Range Finder. This is a demonstration video shot at a ski hill near my home in Karuizawa Japan of this new feature.
For this test I used a venerable 3DR IRIS with a PulsedLight Lidar Lite. This lidar is difficult to find but actually I recommend the sensors from Lightware (like the SF10) which, although they are quite a bit more expensive, are much more reliable and offer a greater range.
With this new feature, the pilot can input a mission with altitudes specified as either Terrain altitudes (i.e. altitude above the terrain), Absolute altitudes (i.e. 1300m) or the regular Alt-Above-Home that we've always supported.
In case you're wondering how we decide whether to use google earth data vs lidar, if the vehicle has a lidar attached it will use it, if not, and the mission specifies terrain altitudes, google earth data will be used (Note: the ground station must support sending the terrain data to the vehicle which Mission Planner and MAVProxy certainly do but I'm less sure about Tower, APPlanner2 and QGroundControl).
This was actually the third or fourth test flight of the feature. Some of the others are below with varying levels of success :-).
The changes are under peer review and should end up in master within a few days.
The dataflash log of the flight can be found here.