Além das outras respostas, há algumas coisas que você pode fazer para acelerar isso, se quiser fazer uma pequena contabilidade, no que diz respeito à "coleta" de vários pixels em blocos de "estado semelhante conhecido". Por exemplo, você pode armazenar a altura da parte mais alta do terreno, para ter como certo que o míssil não atingirá nada enquanto estiver acima disso. Você também pode armazenar a altura do menor espaço "aéreo", para saber que, se o míssil chegar a essa altitude, ele deve ter atingido alguma coisa (embora isso possa ser melhor usado como verificação de sanidade). Indo além disso, você pode armazenar retângulos que representam áreas que são todo o terreno e outros retângulos que são todos do ar, mas que podem ser mais trabalhosos do que valor.
Por fim, o melhor método provavelmente será "armazenar a altura de cada coluna do terreno" e depois apenas calcular a altura do míssil a cada passo do caminho. Não posso falar com jogos mais modernos, mas acredito que, quando você fez uma "caverna" em Scorched Earth, o terreno acima dessa caverna caiu direto, sem deixar saliências. Se você quiser saliências, o trabalho será um pouco maior, mas será uma extensão dessa ideia básica. (Dica: comece a ideia básica trabalhando primeiro!)
Como seu terreno é presumivelmente completamente arbitrário, não há atalhos. Mesmo que você tenha forçado seu terreno a ser um spline ou algo assim, isso ficará aborrecido quando você começar a destruí-lo e os testes de interseção de spline de linha forem iterativos e não perfeitos ou exaustivos e sem sentido lentos para o seu tipo de problema.