Sites Inria

Version française

3D printing

Mediathena - 22/07/2019

An algorithm for creating high-contrast irregular patterns

Plate with a sample of a striped surface produced using Procedural Phasor Noise Plate with a sample of a striped surface produced using Procedural Phasor Noise - © Inria/T.Tricard

How can we digitally recreate the unevenness of tree bark, sand or roughcasting in such a way that they appear natural? The answer comes from the MFX (Inria Nancy-Grand Est and Loria) and Maverick (Inria Grenoble) project teams, who worked together to develop an innovative algorithm capable of generating such patterns on surfaces. An upgrade on the previous standard in the field (Gabor Noise), Procedural Phasor Noise is set to be unveiled at the international conference SIGGRAPH 2019, and will enable users to generate complex patterns with previously unachievable levels of control. Designed for 3D printing, it will also make it easier to manufacture composite materials whose physical properties may vary depending on the direction.

Depicting a surface as being entirely uniform is unrealistic: no surface is either completely smooth or completely monochromatic. In order to create a realistic representation of materials such as bark, wood or roughcasting, random patterns are required along the surfaces in question.

Although it is possible to paint  these effects by hand, drawing each surface pixel, artists also rely on algorithms to produce the patterns more efficiently. The results, however, are not always satisfactory. At SIGGRAPH 2019 scientists from two project teams, MFX, a joint undertaking involving Inria Nancy-Grand Est and Loria, and Maverick, from Inria Grenoble, will unveil a novel  “procedural” pattern generation algorithm, capable of synthesizing a greater range of random patterns along the surface of objects modelled in 3D.

Generating patterns on the fly

In 2009 Sylvain Lefebvre, Inria research director and in charge of MFX, was involved in the development of Gabor Noise, an algorithm capable of generating patterns “on the fly”. This first version could be used to create pattern structures in the form of waves, the orientation of which could be changed as required along any preferential axes. The spacing between the stripes and the way in which they would alternate would vary depending on the directions and on the combinations of the different wave orientations. This pattern structure was then applied to the surface in order to vary its colours and to give it a particular texture. Through this, it was for instance possible to generate random waves on a surface before colouring  them with shades of beige and brown in order to recreate the grains of a wooden panel.

Gabor Noise was a major innovation in that it made it possible to create a wider variety of random patterns for “procedural textures”, i.e. textures taken from a “procedure” or a series of steps to be performed on a pixel in order to obtain a specific colour. This type of algorithm takes up very little storage memory, making it highly practical. Applied to high resolution images - particularly in the case of animated films - the benefits of Gabor Noise in terms of storage memory, combined with the way in which it enabled precise control over the patterns produced, made it a tool of choice for computer graphic designers.

Taking things a step further

There were, however, still a few stumbling blocks. The amplitude of the waves was not uniform, for example, and in places could  become abnormally low, thus affecting the contrast. What’s more, with Gabor Noise, it was not possible to control the geometric profile of the waves (which were always in the shape of sine waves), placing limits on the different types of patterns that could be created.

In order to free themselves of these constraints, Inria researchers have developed a new algorithm, Procedural Phasor Noise, which separates amplitude and phase during the process of generating noise waves. With this new approach, it is now possible to obtain high-contrast, uniform patterns with a degree of certainty, based on oscillations tightly controlled in terms of their profile, their orientation and their size.

For a negligible memory cost of 400 lines of code, this software can be used to produce effects on the fly that are more natural, making it ideal for the graphic modelling of stripes, sandy surfaces, tree bark or cracks on objects ”,explains Sylvain Lefebvre.“Procedural Phasor Noise has another useful and completely new feature: it lets you reshape the profile of the waves produced, meaning they can be changed to anything like sine waves, square waves or triangle waves. This paves the way for new applications, particularly for additive manufacturing via 3D printing”.

Indeed, this same noise function lets you model parts having varying levels of directional roughness on their surfaces, or produce parts with patterns of alternating materials, resulting in objects with specific mechanical properties. One of the very first applications tested by the researchers involved designing composite laminates with variable elasticity, firstly by generating patterns using Procedural Phasor Noise and then by matching flexible or rigid materials to ‘high’ and ‘low’ areas within the wavelets.

This type of material can be used on the sole of a running shoe, for example, but this is not the only possible application. When it comes to 3D printing, this new method opens up a whole host of possibilities, and we’re keen to start exploring them. ” explains Sylvain Lefebvre. All sorts of 3D-printed parts are conceivable.

Keywords: Gabor noise Phasor noise Impression 3D Siggraph2019 Algorithme