Modular Bricks – LEGO Shader for Unity
Subscribe:  iCal  |  Google Calendar
7, Mar — 1, Jun
York US   26, Mar — 29, Mar
Boston US   28, Mar — 1, Apr
Anaheim US   29, Mar — 1, Apr
RALEIGH US   30, Mar — 1, Apr
Latest comments

Those animations look amazing!! Great job!

Very cool review of the making of Spellbreak. Would be even more cool to see some videos inside UE4 showing how they do a few very specific things unique to them.

This was so helpful for me. I'm hoping to adapt your tutorial to pull off something similar comparing modern satellite imagery with historical maps. No topo, so my steps should be simpler, but I'm a novice with Blender and you've really helped. Thanks!

Modular Bricks - LEGO Shader for Unity
22 March, 2017
Modular Bricks shader pack by Matei Giurgiu is a collection of geometry shaders, designed to create extra geometry on meshes in order to give them a modular interlocking aspect.

Get Modular Bricks


  • Different brick style: cubes or pipes.
  • Various shader variations: diffuse, PBL, emissive, transparent, vertex lit.
  • Amazing results with voxel art.
  • 60 seconds integration with MagicaVoxel Qubicle To Unity

Recently I have discovered a great tool for creating 3D models, it is called Magica Voxel. Basically, you build models using 3D blocks, which in geeky terms are voxels (volumetric pixels). Apart from a lot of tools for editing your voxels creations, Magica Voxel also offers a really powerful rendering engine which has various rendering effects such as drawing each voxel as a sphere or as a cylinder and doing a marching cubes effect on the voxel mesh. In my opinion, the most interesting effect is the one which draws each voxel as a Lego block.

This shader represents my effort to reproduce this effect in Unity without having to store the voxels separately. You simply import a mesh and the shader will draw the Lego cylinders on top of the geometry.  To achieve this effect, my shader is using an extra step in the rendering pipeline which was introduced since DirectX 10 and OpenGL 3.2. This extra step called the geometry stage is executed after the vertex stage and after the computations for the primitives. Therefore, the input for the geometry shader are geometry primitives (such as lines, triangles or point) and the output is a triangle stream. As a result, this specific stage gives the programmer the ability to create extra geometry and I have used this particular technique achieve the Lego effect.

Matei Giurgiu

The entire drawing process is handled by the GPU in the shader code, no compute shaders, no CPU overload. Just select the desired shader and the model will change its appearance. The radius or height of the pipe/cube can be customised in the shader properties. Works on mobile devices with OpenGL ES 3.1 + AEP (tested on Samsung Galaxy S7).

Leave a Reply