procedural texture masking

8. Jan 2020

was planning on transfering some texture painting techniques to houdini for a while now which i never did because i like the realtime feedback that you get from 3d painting applications.

but it also takes some time to get to the point where you can start painting. cleaning geometry for export, generating utility maps, exporting the end result can take some time. which is fine for hero objects, not so great for entire cities or complex mechanical objects. on top of that i rarely need a brush for the base setup, if its a hero object i might touch it up in the end.

the speed increase from mantra to karma is pretty nice. slowly packaging up small hda's. i am still shifting stuff around, besides... not all stock nodes work yet with karma, displacements are also still an issue.

basic workflow

so the masks do not use any uv's. they are based on normals, world position, occlusion, curvature and thickness. this lets you construct general purpose shaders on light testing geometry - like a shaderball - and apply the material to a different asset. works nicely with similar looking objects - coming from a shaderball and applying it to a house might be a bit extrem tough...

diffuse

  • base diffuse layers: metal, wood, fabric etc
  • secondary diffuse layer: paint, text, aging, rust, grunge
  • masks define specific features: leaks, mold, grunge, paint chipping
  • mix between base and secondary colors using the masks
  • apply wear and tear grunge patterns ontop
  • mask out parts that reveil the base material (scratches, chipping, etc)

roughness and metallic channels

  • mix relevant layers using blending modes and / or masks

so the masks do not use any uv's. they are based on normals, world position, occlusion, curvature and thickness. this lets you construct general purpose shaders on light testing geometry - like a shaderball - and apply the material to a different asset.

works nicely with similar looking objects - coming from a shaderball and applying it to a house might be a bit extrem tough... the favela houses are not subdivided, the curvature harsh and mostly flat... your results may vary. the main pitfalls are the texture map scaling settings - if you are using uv based texture maps - and parameters like curvature threshold, occlusion distance and the sorts might need adjustments.

the favela houses are not subdivided, the curvature harsh and mostly flat... your results may vary. the main pitfalls are the texture map scaling settings - if you are using uv based texture maps - and parameters like curvature threshold, occlusion distance and the sorts might need adjustments.

resources

imagemagick documentation: layer blend math

layer blend chart

criss turner blog: domain distortion examples, grade / fit node explained

blog sculptings