The castle project is a tool I produced where geometry generation, and also texturing masks are produced procedurally. I wanted to see if all the procedural tools can be fitted to work together seamlessly to construct 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 for the cliff element that adapts to the building geometry, engulfing the architectural structure in various amounts.
Procedural variations for interior architectural elements, that have different stairs seed, columns, height, and damage amount.
II     UV Manipulation
Having UV shells with no random rotations and specific direction (ex: top to bottom) is necessary when using textures that have specific orientations, like bricks, leaks, or wood grain. I produced this tool to rotate the UV shells in a specific direction automatically.
In the below image we can see what randomly oriented UV shells look like with wood grain texture in Substance Painter
While texturing software like Substance Painter has solutions for this problem like tri-planar projection, this solution produces additional issues.
We can see in the image below: 
- with green: the artifacts of the tri-planar projection - the interpolation of the different projection planes.
- with red: the texture has continuity in 3d space which cause the wood knots to have continuity on different boards. This problem can be solved with additional work in 3d software before exporting the model by adding different vertex colors on every board and in 2d texturing software, by creating additional materials with texture offset based on different vertex colors. However, the additional work in 3d and 2d software decreases productivity.
In the below image we can see that by using UV projection and avoiding tri-planar projection and having UV shells with correct vertical orientation everything looks correct. Rotating UV shells in the correct direction is a fast 1-click solution with my tool.
III     Leaks Solver
The Leaks solver is a tool I have created to paint leaks in a fast and procedural workflow. 
The tool can take hundreds of input geometry simultaneously, as brushes to project colors, each brush can have different opacity, color, velocity, and longevity.

In the video below the solver has different turbulences.
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 produce leak data for non-connected geometry, while the particle brushes in Substance Painter are buggy at best in producing leaks for the non-connected polygons.
The solver is actually a color transportation system, which has RGB data, while the particle brushes in Substance Painter can produce only black and white masks. The advantage of using RGB data is that colors can mix themselves, producing complexity, and the tones are more integrated into the general look.
IV     Procedural Masks
01 - Timber Frame Mask
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
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 computes the local relative position, thus 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 the geometry topology and is producing different size/shape bricks that are usually placed on corners or around windows and doors.
V     Substance Designer

You may also like

Back to Top