Particle Planet
Particle Planet is my latest personal project. I created it with the idea to make it a series of tutorials about the entire project creation, so before starting the recording sessions I decided to make a quick project breakdown.
Full Tutorial here:
The Core
The idea for the core was to have this Icosahedron shape that will open and reveal the particle simulation.
To create the singles pieces, I needed some technique to end up with some clean topology for the bevels and Uvs.
So I started by merging the main loops of a single piece, which were all Tubes with a different point count, but all divisible by the same number, so by skinning the geometry I ended up with some good topology.
Then I used some group combinations to carve the polygons where I wanted my details and applied some UV and final Bevel.
For the back, I used a boolean with a sphere and then a simple Vex function to remove any unconnected point left by the boolean operation. Then I closed the back and used a Ray on the same sphere to correctly deform the back geometry, and applied some Uv to it.
Lastly, I applied some final beveling, and materials, and copied the pieces on the full geometry.
The source geometry is an Icosahedron, where I deleted the points and created a new one at the centre of each primitive. For the orientation, I used the primitive normals and created an Up vector pointing to another near point (in this case it worked because it's an equilateral triangle). For the scale, I just tweaked the scale of the initial loop (before the skinning).
Almost the entire Core animation is done inside the Point Vop.
Here I mixed the position with a new one, multiplied along the normals and with noise added. The Bias for the mix is taken from an Attribute driven by a Chop Network, where I created a simple linear animation and added a little noise to it to create some wiggle effect before the full opening. This attribute drives also the emission value for the incandescence material.
The glowing plexus is created with some Vex Code and then, inside a For Each, I created a simple setup to bend the single lines. Finally, I added the animation to make it rise from the rocks before the opening.
For the end animation, I just simulated the source core geometry with the SDF version of the base rock inside a super simple Dop Network, then copied the high core mesh on the resulting point.
The Core texturing was done in Substance Painter, on a single piece geometry. Nothing too complicated here, just some regular noises, masks and generators to have a decent texture. For the side and back part, I tried to recreate some Damascus Steel effect.
_______________________________________
The Rocks
For the Rocks, the concept I was looking for was a really stratified rock, and I wanted a setup which I could easily reuse for all the rocks in the scene, background included.
So first step was to create some main shape which I could change and end up with an entirely different rock. Then I scattered it on a line which determined the height of the rock, adding noise to the position, scale, and contour of the outline shapes.
Then I added some thickness and bevel, which are randomly decided between the different strata.
After it, I remeshed for the first time, plugging a boolean first, set to Union with no other input (this would fuse the inside of the mesh and avoid eventually holes in the interior).
Then I added some initial noise, just a couple of turbulent noises with different values to mix things up. I recomputed the normals and added another noise, filtered on the top part of the geometry. Then I scaled down the bottom part of the geometry with a group I created after the Remesh to reset any deformation on that particular part.
Base Rock is ready!

The next step was to subtract and add pieces to this rock, but I wanted to control this operation to happen mainly on the side of the rocks, so first I created some source mesh with a density attribute I could control.
I used this mesh to scatter some spheres which I deformed with a mountain node. I also added some random values to the Pscale and the Orientation of it; and after the scatter I added some horizontal noise to have more of that "strata" effect back.
Next, I needed some cracks on this rock.
I used the same density mesh to scatter some lines, added a little bit of noise to those, and used a Ray Sop to project those lines on the base rocks mesh, then also transferred the normals from it.
Then, inside a For Each, each line is skinned with a simple shape pointing inside the rock.
I converted everything to VDB, merged the subtraction rocks and the cracks with an SDF union and then subtracted those from the base rock with an SDF difference. Rock done.
Before converting back to polygon, I smoothed the VDB only on the subtraction parts, filtering those with some Intersection Analysis Sop.
As I said, I needed this to be fully procedural, so no Substance for the shader, it's all done in Houdini and Redshift this time.
The workflow is pretty standard and actually quite simple compared to a high-level procedural shader, but it does its job. I wasn't aiming for a fully realistic look, somewhat more in the middle of realistic and stylized.
So I ended up with a bunch of Maxon noises, combined and layered, and sometimes filtered with the Curvature. I used a regular bump map and no displacement since the mesh has already a really high polygon count.
The other two rocks I have in the scene are basically the same setup, just changed the parameter for the various noises, the starting shape and the height of it.
For the background environment, I needed to tweak the setup a little bit.
Until the Base Rock, it's pretty much the same except I deleted the part I wouldn't see from my Camera, to avoid unnecessary details.
Then I scattered the rocks two times, the first one to create some big additions to the cave, and the second one to create a good amount of variations on the floor. Then I used an SDF union with the Base Rock (which this time I had to extrude since I deleted some pieces and ended up with an open surface, no good for VDB).
I scattered the cracks (keeping in count also the big additions) and subtracted with an SDF difference from the previous VDB result.
Before converting all back to polygon, I culled all the unnecessary geometry and smoothed/reshaped it a little bit.
Finally, I merged it with the unseen part of the base rock, which was in low resolution.
Here's the full step process for the rocks:
The Particles
For the particles, the emitter is a simple sphere. Before feeding into the Dop network, I initialized some Density and V attributes with some animated noises and also a Stick attributed (also driven by a noise), which I needed later in the setup.
Inside the simulation, besides some standard Pop Force and Drag, the rest of the motion is decided by the other two Vops. In the first one, a certain Velocity is added to the particles, based on their distance from these curves, which I generated with a sphere and some noises. So the particles will be pushed in a horizontal orbit.
Then, in the second Vop, they are bound with some random amplitude to stick to the original sphere, using the previously initialized Stick attribute.
Finally, I added the animation for the scaling effect post-sim.
I created a simple camera animation and put some Area light to create good lightning. I wanted some light to resemble an opening from the ceiling of the cave, and I added some Volume Contribution to them.
I finally rendered my Beauty Pass with some AOVs and a Cryptomatte to composite it in Nuke. Nothing to highlight here, I've just scratched the surface of Nuke so it's a really straightforward, basic compositing setup.
That's it. Hope you enjoyed ^^
Particle Planet
Published:

Owner

Particle Planet

Particle Planet is my latest personal project. I created it with the idea to make it a series of tutorials about the entire project creation, so Read More

Published: