Replace completly random noise by Blue noisen, giving a better aspect. Also randomize the distance in the sample direction to cover the whole distance even with 1 sample. Using another blue noise for this. Replace spiral samples (that had tendency to align if the number of samples was near the chosen constant) with Hammersley samples that have good coverage even for low number of samples. Use a UBO instead of Texture (a bit less latency) making things a tiny bit faster. Move the noise data to the SceneLayerData, because each render layer can have a different sample count.
Separate material handling inside another file. Make use of enums to identify shader variations. Group all 64*64 LUTs into one array texture. Only update world probe if world changes.