Procedural Planets

I had a pretty exciting night with planet generation. I was trying to come up with some clever math hacks to circumvent having to use a 3D noise function, but in the end gave up and defaulted to the standard cylindrically-wrapped-3D-noise-texture approach. The results are very nice, but take too long (~6 seconds per planet). I've been working on a super fast Perlin implementation, but I don't know if it will be applicable to the 3D case (because of the insane amount of memory it would require). In all, I'm excited about these visuals, but concerned about how sustainable they are if I'm unable to come up with a way to cut down on the computation time.

I also took my shader from the recent scattering study and improved it a bit, resulting in what seems to be an appealing (although completely unrealistic) atmosphere.

At the very least, I seem to have finally nailed the proper color gradients for an attractive Earth-like planet.

Easy Profiling

I'm not generally one to write about "cool code" just for the sake of cool code, but I'm pretty excited about this. I had an idea for a super-simple profiling system today. It's not particularly innovative or hard to code (it only took about 30 minutes to implement), but the results are incredibly handy.

Here's my real-time profiler output:

The numbers just indicate the cumulative time (in seconds) spent in a given function. And here's what enabling profiling for a function looks like:

One meager line to automatically profile a function? Not too bad :)