Parallel algorithm for viewshed analysis on a modern GPU