
2023-2024
Undergraduate Student Capstone
Technical Artist (Shaders, Materials, Procedural Modeling)
Unity, HLSL, Blender, Python
One of challenge of our game was converting our very large, open greybox levels into final levels with final environmental assets. The solution I came up with was to create a pipeline that let us export these models into Blender.

Level 1 Greybox

Level 3 Greybox

Early Samples of Generator

Later Generator

Transferring the rock features from one mesh to another

Converting a level

Converting a level

Replacing greybox with final assets in Unity
The Pipeline was built to work with Unity's Probuilder, with an exporter exporting from there and then importing into Blender.
In Blender, I designed it so an artist had a scene with "templates," models with modifiers that already had specific settings applied to them, pick one they like and transfer it over to their imported level greybox. The intent is that the entire level can be done at once.
I set up the use of noise algorithms so that it modifiers would only use 2D and 3D Worldspace noise, this had the effect of ensuring that meshes right next to each other would share the same noise, making the rocks generated more similar allowing for more natural transitions between meshes.

Sample Screenshot of a Finalized Level
I designed the generator to work well with Blender's cavity shader and wrote my own version of it in Unity as a post-processing effect. It helps to add character to the rocks and assists with our more stylized look.

Generated rocks interacting with the Cavity shader
A last feature I had for the rocks was in the materials. And this material I made was applied not only to the generated rocks but to the models our 3D artist made as well.
Notably, it had an elevation feature, that changed the colors used on the rock over height, adding some more variety to a texture that would otherwise be repeated over and over.



