The following page contains various examples of technical art, procedural generation and tools production.
The software used in these examples is Blender, Maya, Houdini, Substance Painter and Unreal Engine. Any scripting used on these projects was written in python.
Greebling / sci-fi panels using blenders Geometry Nodes
This star destroyer model is a blend of traditional hard surface modelling techniques combined with Geometry nodes for the finer details.
The Geometry Node Trees are used to generate greebles and sci-fi details on ships and other objects.
There are 3 node trees that work together to achieve the final result.
|Subdivision + extrusion|
Automatic geometry scattering from a collection of prebuilt
Large panels outlining by boolean with scattered cubes.
Brickify tool in Houdini
This tool allows the user to generate a brick version of any provided polygon mesh. This project was primarily built to learn about Houdini's node system.
The Node tree provides editable parameters to control the brick size and layer depth, height is automatically calculated from the bounding box of the mesh.
Distance dependent subdivision for efficient rendering of landscapes in EEVEE
Whilst rendering backgrounds for a sci-fi scene I was finding that the terrain was significantly effecting rendering times and viewport responsiveness.
In order to achieve adequate detail close to the camera I needed high subdivisions, but this detail was wasted further from the lens.
To solve this I took the idea of dynamic subdivision often employed by game engines and subdivied the terrain based on the distance to the camera. This was achieved using Blender's geometry nodes.
Substance Painter for Texture Generation
In this project I used substance painter to procedurally texture a wipeout inspired racing vehicle.
Facial Expressions - Maya / Autodesk Character GeneratorA Python script that generated a set of full facial expressions from pre-built blend shapes.
The blend shapes were created using Autodesk character generator. The tools also contained a function allowing artists to create a custom expression then add it to the list of expressions that would be generated, this allowed us to easily build up a library of potential expressions.