-->
3 min read
This texturing workflow expands on the previous work of creating a custom terrain solver. Here I will outline my general strategy to create proper UV coordinates for and asset with over 4M triangles. Afterwards, I will cover the generation of a pigmentation map used to build an albedo map. As a last step I will cover how the use of masks to automate some parts of the texturing process using Houdini and Marmoset. The idea is to prepare the model and deliver the asset to an artist so they can continue the texturing process.
There is already software specialized1 in the creation of UV coordinates for meshes with a high polygon count. But for the sake of reducing complexity I am doing as much work inside Houdini. To handle the creation of the UVs on these meshes my strategy consists of:
In the image above an operator distributes a number of points over the surface of the mesh, the user can paint or manipulate the boundaries of the uv shell to get an approximated shape, after a solver expands the boundaries of the each shell, this search is made over a low resolution mesh. Finally the uvs are created and transferred to the high resolution mesh.
Using plain masks and triplanar shaders is a starting point, but the result can become repetitive. Here is a test of just using one material input without any pigmentation or color variation on top of the projected material.
Taking advantage of the extra data generated by the terrain solver, a color map is generated to enhance the albedo texture.
In this example strokes are generated following the direction of the erosion map, afterwards they are clustered by color variation and rasterized into a single texture map.
As an example for a more photorealistic asset I created 5 triplanar mapped materials. The textures for these materials were re-mixed using content from FAB/Bridge. The process consist of blending two height maps and using the result as a mask to blend all the other channels, like: albedo, specular, etc…
The blending of the was done using Copernicus with a custom but simple OpenCL node
To avoid manually exporting each map manually a basic TOP network was used to automate the process
-- Juan