Help with 2-D grids and explosions

So im making a game with paintable surfaces in a grid format, each paintable surface is stored as a grid array (as in an array like:
{
{1,1,1,1,1},
{1,1,1,1,1},
{1,1,1,1,1},
}
) with the numbers meaning what color is at what position, so 0 would be teamless, 1 would be team 1, 2 would be team 2. Splatoon style. I wanted to do it like this so i could use Greedy Meshing to reduce lag. The issue is that these are not mapped to a grid but rather mapped to a part that then gets turned into a grid, and i want to make paint splash in a radius instead of a set point.

How would i go about making it so that the explosion will paint the grids, even grids it doesnt directly hit. (so like splash) in other words, how do i detect what points on each part this sphere is touching

You could just combine the grid into one giant 3d grid filled with points then use an algorithm like octrees to efficiently get the closest neighbors.

where would i find out how to do that?

and would that work with sloped surfaces?