Modular Bricks – LEGO Shader for Unity

A great way to add LEGO-like personality to your Unity project

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

Features

  • 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.

1 of 3
1 of 4

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).

Join discussion

Comments 0

    You might also like

    We need your consent

    We use cookies on this website to make your browsing experience better. By using the site you agree to our use of cookies.Learn more