Не помню тонкостей именно б3д, в общем случае алгоритм такой:
- берём вертекс буффер в массив;
- удаляем из массива ненужные вершины;
- то же самое делаем с индекс буффером;
- присваиваем сурфейсу обратно вершинный и индексный буфферы.
Здесь же пожно сделать маленький хак - не удалять вертексы, а помечать их как удалённые, полностью скрывать, а когда потребуется - призывать в другом месте. Способы скрывания - от альфы вершин до переноса координат вершин в далекие края.
Другой возможный хак - отложенное удаление. Делаем как в верхнем случае скрытие вершин, и раз в X тактов помеченные на удаление (желательно в том такте, где нет большой нагрузки, допустим, делать это всё после основной игровой логики и предварительно замеряв время выполнения этой логики. Потом замерянное время выполнения сравниваем со среднестатистическим значением за последние 1000 кадров (навскидку), и если условия благоприятные (малое время выполнеия логики) - модифицируем сурфейс системы частиц) собственно удаляем.
P.S.
Пора мне завязывать со вложенными мыслями... Жалко нельзя в формате MindMap ответы писать))