The castle project is a tool I produced where geometry generation and texturing masks are created procedurally. I wanted to explore whether all the procedural tools could be integrated to work together seamlessly, constructing a cohesive result that follows a specific artistic direction.
I     Procedural Geometry
The castle tool can take various shapes as input for its main core seed geometry, including non-orthogonal (curved) shapes.
Variations of the cliff element adapt to the building geometry, engulfing the architectural structure in varying amounts.
Procedural variations for interior architectural elements that have different stair seeds, columns, heights, and damage amounts.
II     UV Manipulation
Having UV shells without random rotations and aligned in a specific direction (e.g., top to bottom) is essential when using textures with defined orientations, such as bricks, leaks, or wood grain. I created this tool to automatically rotate the UV shells in the desired direction.
In the image below, we can see how randomly oriented UV shells appear with a wood grain texture in Substance Painter.
"While texturing software like Substance Painter offers solutions to this problem, such as tri-planar projection, this approach introduces additional issues.
In the image below, we can observe the following:
  -   highlighted in green: artifacts from the tri-planar projection, caused by the interpolation between different projection planes.
  -   highlighted in red: the texture maintains continuity in 3D space, causing wood knots to appear continuous across different boards.
This issue can be resolved with extra work in 3D software before exporting the model, by assigning different vertex colors to each board. In 2D texturing software, additional materials can be created using texture offsets based on those vertex colors. However, this additional work in both 3D and 2D software reduces productivity."
In the image below, we can see that by using UV projection, avoiding tri-planar projection, and ensuring the UV shells have the correct vertical orientation, everything appears correct. Rotating UV shells in the proper direction is a quick, one-click solution with my tool.
III     Leaks Solver
The Leaks solver is a tool I created to paint leaks using a fast, procedural workflow. 
The tool can process hundreds of input geometries simultaneously as brushes for projecting colors. Each brush can have different opacity, color, velocity, and longevity.

In the video below, the solver demonstrates varying levels of turbulence.
This solver can write the flow information directly in the UV space for baking. 
Programs such as Substance Painter can use this flow information as masks or even the color transportation data.
The solver can easily generate leak data for non-connected geometry, whereas the particle brushes in Substance Painter are unreliable at best when producing leaks for non-connected polygons.
The solver is essentially a color transportation system that utilizes RGB data, whereas the particle brushes in Substance Painter can only generate black-and-white masks. The advantage of using RGB data is that colors can blend, creating greater complexity and producing tones that are more seamlessly integrated into the overall look.
IV     Procedural Masks
01 - Timber Frame Mask
Reference:
Implementation:
Initially, I used textures for the timber frame, however, I saw that texture placement looks odd:
- Around windows and doors (highlighted with red in the left image), 
- The wall corner has no support frame (highlighted with green in the left image). 
These errors are produced because the texture doesn't account for the existing geometry topology.

My procedural method of producing timber frames is always aware of geometry topology by placing support beams in wall corners, on level delimitation, and also surrounding windows and doors with reinforcement wood beams.
02 - Level Floor Mask
Reference:
03 - Level Gradient Mask
In order to follow the artistic vision with greater accuracy, this gradient level mask accounts for geometry topology - and it's following the offset of the block's height, as can be seen, in the left image. 
Using a tileable gradient and tri-planar projection wood produced uniform and misplaced levels.
04 - Element Gradient Mask
This gradient mask calculates the local relative position, producing a gradient for each element that can be used to apply dirt, moss, or leaks.
05 - Windows / Doors Mask
06 - Edge Bricks Mask
This mask accounts for geometry topology and produces bricks of varying sizes and shapes, typically placed on corners or around windows and doors.
V     Substance Designer

You may also like

Back to Top