Youre wrong. No ghosted and scrolled bitmaps.
It just for every pixel checks height difference (along x and y axis) then this differences added to pixel coordinates gives new pixel position and that pixel is being copied from original bitmap
take a look at pseudo code:
+ Code Snippetfor x=1 to width
for y=1 to height
difference_x = height_map(x-1, y) - height_map(x, y)
difference_y = height_map(x, y-1) - height_map(x, y)
color = get pixel from bitmap(x+difference_x, y+difference_y)
put pixel on screen(x, y, color)
next y
next x