Це CSG - конструктивна суцільна геометрія (хоча в цьому випадку це руйнівно, строго кажучи), якщо ви хочете зробити більше досліджень щодо того, як алгоритми насправді працюють.
Стандартний підхід полягає у використанні двох існуючих сіток A&B (будинок та віднятий "вибуховий" об'єм) для створення третьої "сітки" (графіка), де дві площини сітки та ребра перетинаються, C - що описує область вони діляться. У 2D:
/ \
/ \
/ A \
| |
| /-|-\
| |C| |
--- ----- | ------- G
| B|
\---/
A - будинок, B - об'єм вибуху, C - зона з'єднання / перетину між A і B. G - земля.
Математика / логіка, що стоїть за нею, не є тривіальною, оскільки існує багато крайніх випадків, з якими можна вирішити, і половина або більше цього завдання - це просто визнання, який із можливих типів графіків результатів є спеціальними випадками, на які потрібно звернути увагу в коді. Я бачив проблему, яку описували ветерани на gamedev.net як "дуже важку проблему", і я можу вам сказати, що ви намагаєтеся навіть у 2D, і навіть з помірним ступенем успіху, коли лише пару крайових випадків не вдалося, що це не маленьке завдання.
Простішим способом може бути використання алгоритму розкладання багатокутника та використання геометрії, яка створюється як основа для руйнування геометрії.