// point wrangle v@up = @N; matrix3 m = maketransform(v@dir, v@N); vector axis = v@up; @angle = radians(fit01(rand(@build_id),ch('min'),ch('max'))); rotate(m, @angle, axis); p@orient = quaternion(m);
// prim wrangle int pts[] = primpoints(0, @primnum); vector normal = point(0, "N", pts[0]); if (normal.y > 0)s@type = "roof"; else if (normal.y < 0)s@type='floor'; if(normal.y==0)s@type='wall'; if(@type=='wall' && normal.x==1 || normal.x==-1)@type='wall_x'; if(@type=='wall' && normal.z==1 || normal.z==-1)@type='wall_z';
create a couple of window variants for your "copy to points" node
which will be the first and last door i will ever model
cutter tool that aligns itself to the longest edge of a poly. useful for brick walls, rooftops, upres messy topology etc.
i can't be bothered at every step to think about where stuff should be saved - which was the initial reason to have a rop with a pre defined path structure. the waypoint name and hda were initially from qlib but grew over the years into its own thing. so i re built it from scratch - removed most of the python code, cleaned it up to be more specific, rather than something that does it all. volume compression, attribute cleanup etc...
was in need of cable bundles that i could lay out on a rather complicated shape. i wanted to place them in specific areas. so this tool workes from a modellers perspective where you lay them out one by one opposed to "fill this area with cables". at the time i just wanted static cables that i could place efficiently - turns out that i animated this thing, so this tool got a bit more complex.
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.
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.
playing around with lops and karma... more favela pics in the main section
2 model variations. use the path attribute for importing into lops
2 sample materials included
seed slider randomizes parameters between a user defined range. using this for the favela buildings - isolate walls that need a window, scatter points onto the measured poly, divide the area size by the window count, copy stamp the hda onto the points, source points control seed, max width and height parms.
cutter tool that aligns itself to the longest edge of a poly. useful for brick walls, rooftops, upres messy topology etc. i have seen more stable nodes, but it was good enough to bricker an entire city... roughly 400 buildings.