Having this in `MaterialDescriptor` doesn't sit well with me, but neither did `effect` and `atmosphere` at the time either, and I accepted that. So I'll live with it for now, but I'm really thinking we need to rework materials a bit so they can pass arbitrary parameters down to the underlying shader. Its a nice project for another time.