Recently I was screwing around with frontier: elite 2/frontier: first encounters procedural generation and it lead to some interesting results.
I started by reimplementing what JongWare already done 11-12 years ago – whole generation was dissected, so reimplementing it in c# was relatively easy. http://www.jongware.com/galaxy1.html
Original generation via JongWare's own viewer, accurate to FFE
Same sector in unity3d
Next I moved it to shader. Funny thing but Unity CG supports all the bitmasks and bitshifts you can think of.
After that came actually original part – improving on original generation.
Here’s how that go – first thing which i needed to do was throwing out most of the manual interpolation and noiser code and making my own versions of it. With some struggle – that was done.
Original noise distribution, okay for slopes, fails miserably with >=255 brightness at center of the galaxy
My own is in reverse - slopes are a crappier, but tops more position reliant hence they are more distributed.
Additionally high-power parts had an issue with final distribution, and the code itself was producing repetitive results
After adding more noise-power +coordinate reliant shuffling and doing more shuffle steps (just one more to be more specific) – that got fixed.
And finally the whole thing
After that, for posterity sake, I made a star field demo which uses this method. You can poke it here
https://smoke-th.itch.io/starfield
With Update 1.1 i added background galactic volume