Here I'll show a technique I came up with that lets StereoKit draw all the UI surfaces in a single draw call! Since StereoKit targets standalone Mixed Reality hardware as first class citizens, I'm always searching for the most efficient way of doing everything, while still providing flexibility to developers!
Flat shading's harsh edges and flat colors have never been something I find visually appealing, but I always feel like there's something nice still hidden in there! Well, I finally found a way to soften the harshness of it all, and I really, really love the results!
The key is blended normals! Take flat shading normals, and blend them with the usual vertex normals! This will preserve the hard edges created by the flat shading, but also add in some of the smoothness of traditional gouraud! Add in some sliders for tweaking, and you have yourself a beautiful retro/modern hybrid approach to lighting.
In Callisto, I needed to add some motion to the scene, some visual activity to make the place seem alive! Since it's technically a fairly barren ice moon, with more snow than life, it made sense to add something to make it look windier.
I quickly settled on a cartoonish looking wind swirl, which you can see above! It looks cool, it's easily recognizable, and it's super easy to implement quickly! I didn't even need to write a custom shader for this, as it's accomplished entirely through scrolling the UVs on the material.
Now that we've talked about what the project is, I'll show you some details on how I implemented it! I'll also share some shader code too, in case you're interested in doing something similar.
If you haven't read the previous post, you'll be interested in catching that here. It talks about the overall concept of the project, and has some cool details in it too :)