Además de las otras respuestas, hay algunas cosas que puede hacer para acelerar esto si desea hacer un poco de contabilidad con respecto a "recopilar" un montón de píxeles en bloques de "estado similar conocido". Por ejemplo, puede almacenar la altura de la pieza de terreno más alto, por lo que puede dar por sentado que el misil no golpeará nada mientras esté por encima de eso. También puede almacenar la altura del espacio "aéreo" más bajo, de modo que sabrá que si el misil llega a esa altitud, debe haber golpeado algo (aunque esto podría utilizarse mejor como un control de cordura). Yendo más allá de esto, podría almacenar rectángulos que representan áreas que son todo terreno y otros rectángulos que son todos aire, pero eso podría ser más trabajo que valor.
En última instancia, el mejor método probablemente será "almacenar la altura de cada columna de terreno" y luego simplemente calcular la altura del misil en cada paso de su camino. No puedo hablar con juegos más modernos, pero creo que cuando hiciste una "cueva" en Scorched Earth, el terreno sobre esa cueva cayó directamente, sin dejar salientes. Si desea sobresalir, el trabajo será un poco mayor, pero será una extensión de esta idea básica. (Sugerencia: ¡haga que la idea básica funcione primero!)
Dado que su terreno es presumiblemente completamente arbitrario, no hay atajos. Incluso si forzaste tu terreno a ser una spline o algo así, eso se alterará una vez que comiences a destruirlo y las pruebas de intersección de la línea-spline sean iterativas y no perfectas o exhaustivas e inusualmente lentas para tu tipo de problema.