Here's a nifty trick I stumbled across and then fleshed out a bit more, which I think will be of use to a lot of the community. Props to YouTuber Ryan Devenney and
this video for inspiration.
Greebles. If you're modeling a spaceship, chances are you're going to need some greebles at some point. While precise replication of an existing studio model may demand exacting modeling of each little cube, pipe, and hemisphere dotted across a ship's surface,
most of the time that level of exacting replication isn't necessary. That's where this technique comes in handy.
First, a demonstration of the general principle.
I. General Purpose Tutorial
1. Base object
Create a cylinder. This is your hypothetical starship hull. It could be a cube or a plane just as well, but doing it with a cylinder proves this technique works in more than just easy cases!
2. Make greeble objects
Now, create some other objects. These will be your greebles. They can be whatever you want. Make some boxes, with varying scales. Make an icosphere. Make another cylinder. Anything you like. Don't spent more than 30 seconds on any of them. The point (for the moment) is not building a crazy greeble library (though this technique can be applied to one!). I moved the pivot points/origins on some of these objects to be on their "bottom" face. The only thing I
strongly recommend is that you not make the "bottom" of each object coplanar with the others,
relative to their origins. Vary them a bunch. We'll touch on why later.
3. Collect 'em all!
Add all of these objects to a Collection (Ctrl G, by default). Call it something memorable.
4. A hairy situation
Back on your cylinder, go to the
Particle Settings tab of the
Object Properties panel. Click
[+] to add a particle system and change it from
Emitter to
Hair. Yes, Hair. We're going to adjust some
Emission settings later, but you can leave them as-is for now.
Do turn on
Advanced and (then)
]Rotation, however.
In the particle settings, go down to
Render and change
Render As to
Collection. Under the now-present
Collection submenu, choose your Greeble collection. You'll immediately see some cool stuff, but make sure you turn on:
Pick Random (so objects are chosen at random from the collection),
Object Rotation (so you can rotate your greeble objects to reorient, if needed), and
Object Scale (so that you can scale them and see that respected). Go back up to
Rotation and set
Orientation Axis to
Normal, so that our greebles are oriented to our object's face. The rest of the settings can be left at default.
Phase can be fun, as can
Randomize Phase.
Randomize itself is not as useful because it leads to chaotic greebles, but play around with it to your heart's content.
Having done that, you may also want to rotate some of your greebles at this juncture!
If you want to adjust the proportion of the objects, so that some appear more often than others, you can do that under the
Use Count section after checking the checkbox. If you have one object you only want to appear once for every 100 objects, you can set it to 1 and then evenly divide 99 amongst the others available, for example. Maybe I want my icosphere and smokestack greebles to be relatively rare, so I'll set them to 1 and the rest to 5.
You may have noticed that we just have a band of greebles along our cylinder right now. That's governed both by our cylinder geometry and the
Source settings under
Emission. We could just subdivide our cylinder to get more greeble bands, but instead, let's change
Distribution from
Jittered to
Random* and crank up
Number to something like 2000 --
thisis why you keep your initial objects simple! You can also adjust
Hair Length (which governs object scale) if needed.
Segments can just be 2 (the minimum), since we're not actually trying to use the Hair system to do Hair here.
* (Sidebar: you
can use
Jittered and play around with
Particles/Face and
Jittering Amount to get nice-looking distributions, as well, and for some seed surfaces this may be the exact right thing to do. For this example,
Random worked better.)
4. Make it real
Alright, now we've got this virtual greeble surface geometry. How do we make it
real? Flip over to the
Modifiers tab and you'll find a modifier for our ParticleSettings, with a handy
[ Convert ] button on it. Push it! ...and then wait a while for the "hair" greebles to bake into a single object. Unfortunately, this appears to be a single-threaded process, so it can take some time.
Eventually, you'll find yourself staring at a
whole bunch of selected objects (2000, to be exact!). Cool!
Once you've done this,
remove the particle system from the Cylinder object!
5. Mass-Booleans (Optional)
But wait...trying to mess around with 2000 objects sounds
awful. Can we do anything about that? We can, and our saving grace here is the
BoolTool addon that comes bundled with Blender. BoolTool is aimed at making boolean operations slicker. It's still the basic boolean modifier operations under the hood, but it's a nicer interface for certain operations...including mass-applying boolean operations to several objects at once!
How you approach this depends largely on your system. With a beefy enough system, you (probably)
could select all 2K greeble objects and run
BoolTool > AutoBoolean > Union, then walk away for a few hours while it churned through everything. For my part, even with 2K objects, I was inclined to pick smaller batches to do at a time, starting with just 10 and then working up until I found a number that felt like a decent balance of "Blender is just busy" and "...did Blender crash?" responsiveness. 50 took about 20 seconds; 100 about a minute. I settled somewhere between 100 and 200. The other potential issue here is that if one boolean operation starts causing nonmanifold geometry that propagates boolean errors forward, the entire operation will end up with a garbage result, so doing them in smaller batches lets you catch this earlier.
Note 1: you need to make sure one of the objects in your selection is the
active object, or BoolTool will give you an error.
Note 2: Boolean operations hate overlapping faces (and objects with malformed/inconsistent/wrong-facing normals!), which is why I advised not making any of your greeble objects have coplanar faces relative to their respective origins! If you find your greeble objects are resulting in terrible boolean results, one trick you can try is using
Object > Transform > Randomize Transform with all of your greeble objects selected, and restrict the randomization to location and/or scale, keeping the variations very small. This will jitter the faces enough per-object that the boolean operation should complete OK, without drastically affecting the placement of your greebles.
Note 3: It's not
strictly necessary to boolean all of them together, and in some cases you may not want to, but the next step is made easier by doing so, and if you intend to apply a geometry bevel (as opposed to shader bevel) to your greebles, having them be a single object will make those beveled edges look nicer.
6. Detail applied
One benefit to combining everything into one object -- although, admittedly, BoolTool would allow you to do this without having to combine everything, too -- is that you can then
further carve up your greebles to fit them to specific places on your geometry, which in turn also makes them take on additional unique shapes on top of what they've already got.
II. Practical Example
To put my money where my mouth is, here's an example of using this technique on a part of
my Coronado model. The sensor wells were looking a little bare with just the big greeble objects in place; too plain. To fix that, I chose a small subset of the faces on which I wanted additional surface detail and duplicated + separated them out to their own object. I applied the method above, then created further boolean objects from the larger original surfaces in order to isolate the greebling detail to just locations where I wanted it.
Hope this is useful to you!