So this last sprint was crazy. I’d been noticing for a few sprints now that our art simply just wasnt where I believed it should be given the state of our game. Everytime I’d come into work on the project it felt like there’d been no changes or additions to the art of the game. So I decided, after contacting the rest of the art team, to do some quick overhauls of materials in order to make the game look more presentable.
After Clearing my intended changes with the art team, the first thing I did was implement Subsurface Scattering to all the materials that were made of, um, “flesh” and –since this is a game about being stuck inside a giant, planet sized space whale– that ended up being a lot. What this ended up doing was adding a lot more depth to the flesh of the walls and interiors of the spaces. That is part of the benifit of having an art style thats made up of gradient patterns; it creates an interesting clash between our low-poly, gradient artstyle and the more accurate lighting. Its almost comic-booky, or at least very stylized. Its one of my favorite parts of shader work, if you let the material do the work for you, you can ease up on some of the texturing side. (Actually this leads me to a side note where one of the art-styles I floated as a possibility was writing a custom fragment shader that would quantize shadows based off of a supplied LUT creating crosshatched shadowing on materials. This plan fell through when I realized that Unreal doesnt expose light vectors in its material editor– that and I didn’t know how to convert my GLSL knowledge to HLSL code)
Actually that picture brings me to the other big material-side change I implemented: Emmissives! I freaking love emmissives, they can add so much to a scene. The idea was that I would add pulsing emmissives on the mushroom spots and lighter parts of the “plant”. There was a bit of an issue: I didnt want the mushrooms all glowing in phase with each other; but both types of mushrooms shared a single texture. So I booted up photoshop and masked out each of the spots on the mushrooms to their own channels. from there I multiplied each of them by their own original spot color, times an emmissive Max. I then lerped in between those two values based off of the sine of current game time, giving us two different glowing mushrooms off of the same texturesheet, that pulse intermittently.
I also took advantage of the new subsurface scattering by adding in an area light to give the walls of the level a bit more of an ominous fleshy glow.
I also made a vfx for when the player Air-Slams (a move that knocks away most projectiles and launches physics objects). It was a pretty fun problem to solve. I knew I wanted a sort of ripple effect away from the player, so there had to be a refraction shader involved. What I ended up doing was taking a very low poly sphere, inverting the normals of the mesh to turn it inside out, and then built a refraction shader that could be manipulated with dynamic parameters. The result is pretty nifty:
I also did some standard coding stuff, fixes, and improved implementations but that’s not as fun to talk about