TRITON
BACHELOR THESIS
​​​​​​​
The objective of this bachelor thesis, classified as an artistic-technical work, is to explore and develop a method for procedurally generating 3D spaceships, tailored for use and modification within Unreal Engine.
PROJECT INFO

Date
9th semester (2024) @ Game Design, HTW Berlin

Duration 
14 weeks

Technology
SideFX Houdini 20.4, Unreal Engine 5, Photoshop, Substance Designer, Substance Painter


My learnings
I had the opportunity to experiment extensively with procedural generation in Houdini by developing this procedural spaceship generator. I have become acquainted with the possibilities as well as the challenges, and I am now better equipped to assess when it is worthwhile to create a procedural tool for real productions, what to consider, and how much time the development would require.
Spaceship variations rendered in Houdini
WORKFLOW

Before starting the project, a Miro board was set up
for documentation, featuring an integrated Kanban
board and a calendar with defined milestones.
Additionally, the progress of each week‘s work
was continuously documented throughout the
entire project. This included research, questions,
approaches, and progress through screenshots and
videos.

It is important to acknowledge that the
spaceship generator is not designed to fulfill
every conceivable requirement. When creating a
spaceship for a video game, it must align with the
game‘s graphical style and specific requirements.
Nevertheless, the aim includes offering adjustable
polycounts and configuring the material setup for a
high level of flexibility.
The basic shape of the spaceships emerged as
the most critical factor in their creation. It was
essential to enable the generation of many different
and interesting shapes, though it was clear from
the outset that certain edge cases would not be
feasible. For instance, circular structures were
intentionally avoided in favor of more angular and
pointed shapes, aiming to lean toward the design
of fighter-class spacecraft. Breaking down the basic
forms of spaceships from my research led to the
initial ideas for implementation.
Based on this foundation, additional components
such as wings, engines, the cockpit, and detail
elements like weapons were meant to be added to
this base shape.
To assess the language of form of the crafted spaceships or their components, 
silhouettes were made as often as possible.
DEVELOPMENT


Base Shape

The generation process relies on combining basic geometric shapes, primarily
tubes and boxes, into a cohesive structure. To incorporate smaller detail
shapes, an additional loop was employed to attach elongated boxes to the
 base form. 
Since the initial shapes often overlap, boolean operations are employed to eliminate self-intersections and create a clean base form.
This raw shape is then smoothed to improve its overall appearance. However, at this stage, the result often still resembles a collection of separate shapes rather than a unified design. To address this, the entire mesh is segmented into smaller pieces using Voronoi noise, and each piece is individually smoothed.
The pieces are then recombined, resulting in a more cohesive and polished base structure.
Armor Generation

The armor design for the spaceship was inspired by a method presented in a
 talk by Akira Saito, utilizing Voronoi noise to segment the mesh into distinct 
sections.
Random points are distributed across the spaceship surface, and Voronoi 
noise is applied to divide the mesh accordingly. By ensuring symmetry during 
this process, the result is a series of intricate, sci-fi-inspired patterns.

To add further variation, some of the segments were selectively removed, 
leaving parts of the spaceship uncovered by armor. Additionally, the armor 
itself was divided into two separate layers, introducing further diversity in the 
material distribution and enhancing the overall design complexity.
Adding Details
Additional meshes like engines, a cockpit, or weaponry are generated or modeled and integrated into the spaceship design. 
Some of these meshes are embedded into the base structure, allowing armor to partially cover them for a more cohesive and layered appearance.
The placement of these additional objects is guided by specific parameters, with points distributed across the spaceship to determine their locations. Alternatively, a grid-like structure is overlaid using raycasts, enabling the objects to adapt seamlessly to the highly variable base shapes.


UVs and Materials

Several approaches were employed for UV 
unwrapping and material assignment. 
Handcrafted meshes were manually unwrapped and 
each was assigned a material that could be easily 
swapped in Unreal Engine for flexibility in design 
customization.
Procedural UVs were generated for components 
such as the armor, cockpit, and engines.

However, the base shape proved too variable for a 
practical solution within the available timeframe. A 
tri-planar mapping technique inside Unreal 
Engine was  the alternative for applying more 
complex materials to irregular geometries.

Other projects

Back to Top