Brick by brick

Made a brick wall thats waaayyy to detailed to put in game:

I did this after frustration from trying to make a brick wall just from a texture:

Which looks much much worse. This was also my first major step into using geometry nodes in blender (see: https://docs.blender.org/manual/en/latest/modeling/geometry_nodes/index.html) which essentially let you make parameterized geometry in blender. You can see the layout for the geometry nodes:

Essentially my version is a modified version of the stack exchange post here: https://blender.stackexchange.com/questions/311786/how-do-i-create-bricks-in-an-object-with-geometry-nodes

Looks like a lot but really there’s only Two parts (2nd part is repeated 3 times):

This first part just takes whatever geometry I defined (in this case a cube) converts to type of “volume” then makes a bunch of individual points in said volume.

Theses points are then passed into the “second” portion which is essentially this flow repeated a 3 times:

This essentially says “Make a cube of size 0.25m 0.12m 0.065m, copy and paste the cube on each of the points, offset the position of all of the points chosen by my selection array by 0.06m, and set the material of all of the cubes to the brick material”. The incoming “selection” line to the “set Position” node comes from here:

“Index” is set for each cube on creation from “Instance On points” so If I make 200 cubes each cube will be labeled [0 1 2 3 4 5 …. 199]. What the “Floored Modulo” node does is take that index value and return 0 if the value is even or 1 if the value is odd, so that means the “set Position” will only be applied on even indexes, this gives the brick offset on every other row effect.

The bottom two portions here are for the mortar in between the bricks:

These are just smaller bricks that I apply a different material to then shove in between each of the bricks.

Now the problem with this is the number of triangles:

To give a frame of reference the first person view models should be “high poly” and the assault rifle for the game is around 4000 triangles.

So this would cause heavy performance issues if I actually put it in a game. There are solutions for things like this such as LODs (Level of details: https://en.wikipedia.org/wiki/Level_of_detail_(computer_graphics) ) and Unreal’s Nanite (https://dev.epicgames.com/documentation/en-us/unreal-engine/nanite-virtualized-geometry-in-unreal-engine) both would essentially dynamically change the number of triangles as you move through the world. However, I’m not trying to make the most photo-realistic things in the world so I think I might try to remake a wall with some normal maps (https://en.wikipedia.org/wiki/Normal_mapping ) instead.

Here’s a spin render of the brick wall:

Give me early 2000s nvidia vibes:

Leave a Reply