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
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
. 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
In the particle settings, go down to Render
and change Render As
. 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
, 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
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
* and crank up Number
to something like 2000 -- this
is 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
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
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.
you need to make sure one of the objects in your selection is the active
object, or BoolTool will give you an error.
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.
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!