I was trying to process a database of star data and export it to a texture which I could then use in a sky shader (instead of pre-rendering a cube map like a rational person), but Pillow does not seem to work well with color channels greater than 8 bits, so I thought... what if I just inline hundreds of kilobytes of data in an array? This isn't variable data. It doesn't need to be a uniform. It is not like the game is going to run long enough for these stars to move.
I have a feeling this won't work, but I want to see if it will almost work. The shader compiles and runs, though it is not yet processing this data. It takes a pretty long time to compile though. Every time I type in the Godot shader editor the CPU cooling fans spin up to maximum. The editor also seems to really hate text files where lines are 340,000 columns long
Update: It took about five minutes to render one frame, and then Godot crashed.
That's actually not a bad idea.
Pillow is basically the official unofficial image processing library for Python. I needed a script to sift through a dataset and sort it by criteria like magnitude (brightness) first before trimming it down (the full data set is like 140MB), so it just made sense to try to spit an image out of there. It's irrelevant though.
No matter how I get this data into the shader, the bottleneck is going to be iterating through this list for each pixel. I got it running with 1024 stars, but it turns into to a slide show at 4K. I'm sure this can be made to work in realtime, but a sky shader is probably not the technique. I might consider particles.
Anyway, it did get me some mediocre visuals