Thanks for responding. I've been looking into it more and it seems it's just a limitation of how GPUs are designed for parallel processing, not anything specific to Godot. Yes compute shaders would probably work, but I think that is overkill for this effect. In any case, I found some code in the GPU Pro 3 book that does what I need. It's an approximation, and I don't even fully understand how it works, but it does seem to work okay.