Suppose you want a nice rounded box mesh. You know how to create a mesh for a tesselated box. You know how to get a nice sphere mesh from a tesselated box mesh - you just project the box's points to a sphere:
p' = normalize(p)
What about a rounded box? How can we take a tessellated box mesh and project it nicely to a rounded box? For a box spanning [-1, 1], with a rounding radius of r, you simply:
p_box = clamp(p, -vec3(1 - r), vec3(1 - r))
p' = p_box + r * normalize(p - p_box)
Clamp the point to a smaller box, project the remainder to a sphere, reconstruct. Note that, while I say 'vec3' here, it's good for 2D as well (or however many Ds you need).
I write this down both for myself, and since I didn't find anything by searching (yes, I'm a bit embarrassed that I tried searching this first...)
Been fine-tuning the math this month. After more than three years, I really did finally get them For a while there I wasn't sure I ever would. Now on to ships...
Superior to a linear interface in literally every way. This is the beginning of the end for you, scrollbars, listboxes, treeviews, and all you other ridiculous little controls
I guess I'm prepared to admit that, after finally getting everything tweaked properly...linear lighting does look darn good.
Kind of amazing how what amounts to little more than a sqrt in the lighting falloff is...so influential to the eye's perception of correctness..!
NOTE: Aberration is too aggressive.
A much more intuitive way to visualize the data. And appropriate, considering the game's context
Area of "star" is proportional to memory footprint. The connectivity is reflective of the structure of the data. Cool stuff...someday I'll do the same with the code rather than just the data. That'll be fantastic.
In-Engine Data Map
In-Engine Data Map (Closeup)
Edit: and a few more just for show This is a pretty deep visualization of a ship, going all the way down to the attached hardpoints (thrusters, weapons, power generator) and most of the data therein. Amazing how beautiful and structured the data is.
Hard not to be proud of a c++ engine that lets you look inside of it with no boilerplate code
Runtime Reflection in the LT Engine (on the right)
Really a shame that I didn't post about any of the recent graphical improvements Gotta hop back on the bandwagon at some point though!
Searching for the perfect place to call home. Not that it would matter, since I haven't been saving the seeds. It's nice to think that maybe someday I could fly my ship right down through one of these atmospheres, pitch a tent and spend a year exploring. It will be a happy day when I finally do implement seamless landing. Maybe in a year or two
Procedural Planet (Home?)
I think the last one is my favorite
I think Earth-like planets are pretty much done for now. Still need to fix the distortion in those clouds, though. Maybe add a little variation to the clouds as well.
A while ago I said I wasn't going to get caught up in planets. I lied. Oh well :/
Better scattering, better surface functions, better storage of textures (using cubemaps now instead of cylindrical maps for less distortion), better clouds, and finally some "real" bumpmapping via dynamic heightmap marching. Overall, pretty big improvement in visual appeal! Still needs more interesting/detailed color.
New Procedural Planets
Too addicted to these things. Trying for a bit of a sharper look now.
Procedural Volumetric Nebula (Clouds?)