How to make procedural Blender rocks for Factorio ore sprites?

Place to get help with not working mods / modding interface.
Kaban4ik
Burner Inserter
Burner Inserter
Posts: 10
Joined: Wed Aug 20, 2025 12:59 pm
Contact:

How to make procedural Blender rocks for Factorio ore sprites?

Post by Kaban4ik »

The question is exactly what is in the topic: How to make procedural Blender rocks for Factorio ore sprites?
Gizzmohammer
Burner Inserter
Burner Inserter
Posts: 18
Joined: Wed May 07, 2025 1:55 am
Contact:

Re: How to make procedural Blender rocks for Factorio ore sprites?

Post by Gizzmohammer »

I can help with this!

Do you have experience with Shader Nodes and/or geometry nodes in Blender?

The short version is:

Step 1: set up camera to be orthographic at a 45 degree angle, add some lighting and create a ground plane set to "shadow catcher"

Step 3: Add a UV sphere to be a Rock, and create Shader Node that adds random displacement

Step 4: Add a circle to spawn rocks on, and create a Geometry Node that adds instances of your rock to the circle, with random position, size, rotation etc.

Step 5: Animate your Geometry Node so it goes from low richness to high richness over 64 frames. (I usually change the scale of the instances)

Step 6: render your animation into individual frames, and convert those frames into a SpriteSheet.

Feel free to DM me, I'm happy to help!
Kaban4ik
Burner Inserter
Burner Inserter
Posts: 10
Joined: Wed Aug 20, 2025 12:59 pm
Contact:

Re: How to make procedural Blender rocks for Factorio ore sprites?

Post by Kaban4ik »

Thanks very much for your help!
I've found out most of that by watching some guides on Geometry Nodes on Youtube. But there is a thing that I can not solve and it seems like there is no guides on such topic: How could I make different variations of rocks in each instance? How could I distribute rocks over the surface procedurally, while keeping them in appropriate distance (without overlaping)?

I've attached my .blend file to the reply. I would greatly appreciate your help.

P.S. I know, that none will hardly look at my low resolution ore texture in a futile attempt to figure out what kind of a nearly 4k rock model was used during rendering of this sprite - the single one, or many procedurally generated variations, but I do it more out of curiosity and to develop my own skills than to improve the appearance of the final product.
Attachments
Ore V2.7z
Blender 3D Model
(107.99 KiB) Downloaded 15 times
Gizzmohammer
Burner Inserter
Burner Inserter
Posts: 18
Joined: Wed May 07, 2025 1:55 am
Contact:

Re: How to make procedural Blender rocks for Factorio ore sprites?

Post by Gizzmohammer »

I see the problem. Instances are designed to re-use the same geometry multiple times to speed up processing time. You can't have unique procedural rocks the way these nodes are set up.

If you want truly random rocks, here's a few possible solutions:
1) Instead of making a rock from scratch and then instancing it, you could set-up the geometry nodes to turn each point into a new rock directly.
2) you could use a shader node to turn the sphere into a rock shape, instead of a geometry node. Shaders can be unique across instances

if you want a quick cheat, here's what I did:

step 1) make a new collection, and copy/paste your stone objects a few times (as many as you want)
08-30-2025, 19-55-17.png
08-30-2025, 19-55-17.png (12.23 KiB) Viewed 366 times
step 2) adjust the settings of each stone copy so they are unique from each other
08-30-2025, 20-00-04.png
08-30-2025, 20-00-04.png (43.84 KiB) Viewed 366 times
Step 3) within the plane, Replace the "Ore V2 Geometry Node" with a "collection Info" node, and select "pick instances"
08-30-2025, 19-59-50.png
08-30-2025, 19-59-50.png (55.19 KiB) Viewed 366 times
Now there's a few different rocks for the plane to choose from, so it's a bit harder to tell when they repeat.


As for your second problem, that's an easy fix. Just use Poisson Disk instead of Random here:
08-30-2025, 20-05-18.png
08-30-2025, 20-05-18.png (20.76 KiB) Viewed 366 times
That lets you set a minimum distance between rocks

I think it looks pretty good!
08-30-2025, 20-05-46.png
08-30-2025, 20-05-46.png (70.79 KiB) Viewed 366 times
I attached the blender file too
Hope that helps!
Attachments
Ore V2-Gizzmohammer.zip
(214.06 KiB) Downloaded 9 times
Gizzmohammer
Burner Inserter
Burner Inserter
Posts: 18
Joined: Wed May 07, 2025 1:55 am
Contact:

Re: How to make procedural Blender rocks for Factorio ore sprites?

Post by Gizzmohammer »

got a little carried away, added a shader and animation to it as well
Attachments
08-30-2025, 21-04-34.png
08-30-2025, 21-04-34.png (48.83 KiB) Viewed 347 times
Ore V2-with-shader.zip
(240.39 KiB) Downloaded 11 times
Kaban4ik
Burner Inserter
Burner Inserter
Posts: 10
Joined: Wed Aug 20, 2025 12:59 pm
Contact:

Re: How to make procedural Blender rocks for Factorio ore sprites?

Post by Kaban4ik »

Thank you very much for your help!
I don't think I could have done it without your help.
Could you please tell me more about:
set-up the geometry nodes to turn each point into a new rock directly
.
Gizzmohammer
Burner Inserter
Burner Inserter
Posts: 18
Joined: Wed May 07, 2025 1:55 am
Contact:

Re: How to make procedural Blender rocks for Factorio ore sprites?

Post by Gizzmohammer »

The basic idea is that you can read and write the attributes of points (like radius, location etc) directly.

So instead of creating instances on the points, you would read the location of each point and move the rock there with a transform node, along with a random scale, rotation etc.

By reading the location of multiple points, the geo node should repeat the rock node multiple times instead of re-using the same rock.

Then use a join geometry node to combine all the rocks into one mesh

I'm away from my computer, and I haven't tested that tho. If it works, it's going to be a lot slower because you lose the speed benefits of instancing.
Kaban4ik
Burner Inserter
Burner Inserter
Posts: 10
Joined: Wed Aug 20, 2025 12:59 pm
Contact:

Re: How to make procedural Blender rocks for Factorio ore sprites?

Post by Kaban4ik »

Thank you for explaining your idea. I believe I understand the concept, but I don't know how to realize it in Geometry Nodes. I genuinely don't understand what nodes should I use to place procedural rocks on the points. Could you please share your solution when you have a moment?
Gizzmohammer
Burner Inserter
Burner Inserter
Posts: 18
Joined: Wed May 07, 2025 1:55 am
Contact:

Re: How to make procedural Blender rocks for Factorio ore sprites?

Post by Gizzmohammer »

There's probably better ways to do it, but this is what I did:

I used a repeating loop.
Each loop I select the next point, generate a new rock, move that rock to the point (along with random scale/rotation) and then add that rock to the geometry.
08-31-2025, 14-28-28.png
08-31-2025, 14-28-28.png (266.59 KiB) Viewed 218 times
08-31-2025, 14-39-54.png
08-31-2025, 14-39-54.png (318.03 KiB) Viewed 218 times
Blender file attached
Attachments
Ore V2 Fully Random.zip
(153.69 KiB) Downloaded 11 times
Kaban4ik
Burner Inserter
Burner Inserter
Posts: 10
Joined: Wed Aug 20, 2025 12:59 pm
Contact:

Re: How to make procedural Blender rocks for Factorio ore sprites?

Post by Kaban4ik »

Thanks, I truly appreciate your invaluable help!
I have the very last question: where did you learn how to create such complex models? Could you recommend any useful tutorials, books or other sources about modeling in Blender?
Gizzmohammer
Burner Inserter
Burner Inserter
Posts: 18
Joined: Wed May 07, 2025 1:55 am
Contact:

Re: How to make procedural Blender rocks for Factorio ore sprites?

Post by Gizzmohammer »

No worries! Happy to help :)

Best tutorials I've found are from CGMatter on YouTube. He taught me everything I know about shader nodes
Post Reply

Return to “Modding help”