Logo
Toggle Menu
  • home
  • blog
  • about
    • about this site
    • contact
    • privacy policy
  • cinema 4d
    • plugins
    • creating c4d plugins
    • plugin cookbook
    • software
  • models
    • nodes
    • plants 1
    • other models - 1
    • other models - 2
  • osl
    • writing osl shaders
    • osl shaders for download

More Noise, Please

We need more Noise

No, not the eardrum-breaking kind, nor even noise in renders. I'm thinking of 'noises' as used in shaders and various other operations to generate patterns or random variation. Cinema 4D contains one of the best noise shaders around. As old hands will remember, this was originally part of a suite of shaders and materials called 'Smells Like Almonds' from the company Bhodinut. Many or all of these were incorporated directly into C4D, so as well as the Noise shader there are several materials (not channel shaders) such as Cheen, Nukei and so on which are still present in the latest version of Cinema but which can't be used in Redshift, only the standard renderer. There are other shaders too, such as the Falloff shader and Fusion, which also formed part of that suite.

Interestingly, there are few other noise shaders available for Cinema. There were some good noises in the old Darktree shader system and Biomekk produced a large set of shaders, including noise shaders, in a plugin called Enhance:C4D. Very sadly, neither of these are available any more. Other render engines may have their own shader systems including noise shaders; for example, Cycles 4D from Insydium has its own noise shaders. However, there are few, if any, other dedicated shader systems for any C4D user currently available.

Third-party noise?

If we want to expand the noises we can use, the only option would be to look for third-party noise libraries that could be incorporated into Cinema. If you search for 'C++ noise library' on Google, you get a lot of hits but the results fall into three categories:

  • yet another implementation of Perlin noise
  • specific noise algorithms, such as Worley noise
  • actual libraries of noise functions

And if we look at the last of those, almost all refer back to a library called 'libnoise'. This was developed some years ago - it seems that it stopped development around 2008 - but it is still available and still highly regarded.

Libnoise

I don't know if this has ever been incorporated into a shader for C4D. The Bhodinut noise either predates it or appeared at the same time, but whether it is based on libnoise is impossible to say. The same is true for other shader systems or render engines. But if it hasn't, then it might be worth a look to see whether it can offer C4D users some additional noises. Although the number of noise algorithms included is small, it also contains a variety of functions (that it calls 'modules') which can modify and transform the output.

How could we do this? The original libnoise was intended to build a DLL which programmers would then load into their own software. This isn't useful here. For one thing, it was intended for use in Windows, and the pre-built binary is a 32-bit DLL at that (so would have to be rebuilt) and secondly it could only be used by someone writing a shader. However, the full source code for libnoise is available and perhaps it could be incorporated into a shader directly?

It turns out that this is indeed possible. Libnoise generates true 3D noise, so it can be applied to a 3D object and, like the inbuilt C4D noise, the result is seamless when rendered. The number of noise algorithms is small though - Perlin, Billow, Voronoi and Ridged Multifractal are the main ones, though there are some interesting patterns such as Cylinders and Spheres which are quite nice though I'm not sure I'd call them 'noise'. The usual range of parameters such as the seed value, octaves, lacunarity and so on are available, along with others such as noise quality and persistence. Some early experimentation shows that these work very well in a C4D shader and there are some advantages over the inbuilt noise - for terrain generation, libnoise seems to generate more realistic results.

But libnoise can do something else. It can produce 2D texture maps in addition to procedural noise. These can be flat or spherical, and might be useful when a bitmap is needed rather than a procedural shader. This isn't something that should be done from a shader. To generate these maps really needs a separate, dialog-based plugin.

There is one disadvantage. Libnoise can combine multiple noise modules (those are the individual components that make up the library) to obtain more complex results. Take a look at the examples in the libnoise documentation to see what I mean. One is a complex planetary surface that looks superb and uses over 100 modules to generate it!

Cinema can combine modules, to a relatively small extent, using a Layer shader and two or more libnoise shaders, but the original library was intended for use by programmers who would combine modules to produce individual, hand-tailored applications to generate the desired result. This isn't possible in a C4D shader. It would be possible if a material node for Redshift could be produced because that would allow any number of modules to be linked. Unfortunately that isn't possible now and may never be.

One thing we can do is add more modules to the library. This is relatively easy once the library is incorporated into a C4D shader. As long as you have a noise algorithm, it should be possible to add it to libnoise. This is worth investigating and I might add some more modules at a later date.

Anyway, an early look would indicate that libnoise, despite its age, still has something to offer. I'm currently incorporating the libnoise algorithms into a shader, then when that is done I might add the noise map generator as well. Meanwhile, here are some example renders from the alpha version of the shader:

  • perlin_default
  • billow_default
  • cylinders_freq10_turb200_scale500
  • perlin_default_displacement
  • voronoi_remap_turb18
  • spheres_remap_turb30_freq10
  • perlin_abs_persist0_8
  • tn_billow_remap_lac1_5_persist0_8
  • rmf_abs_freq_2
  • perlin_default
    Default Perlin noise
  • billow_default
    Default Billow noise, coloured gradient
  • cylinders_freq10_turb200_scale500
    Cylinder noise, 200% turbulence, scale 500%
  • perlin_default_displacement
    Perlin noise with displacement
  • voronoi_remap_turb18
    Voronoi noise, remapped output, 18% turbulence
  • spheres_remap_turb30_freq10
    Spheres, remapped output, 30% turbulence, frequency 10
  • perlin_abs_persist0_8
    Perlin noise, absolute output values, persistence 0.8
  • tn_billow_remap_lac1_5_persist0_8
    Billow, remapped output, lacunarity 1.5, persistence 0.8
  • rmf_abs_freq_2
    Ridged multi, absolute output values, frequency 2

 

Page last updated January 18th 2025

Blog articles

More Noise, please (January 18th 2026)

Using GIT in VS 2022 (December 26th 2025)

Handling missing plugins (December 12th 2025)

Plugin compatibility with R2026 (November 24th 2025)

Affinity is now free! (November 3rd 2025)

World Creator 2025.1 (October 10th 2025)

So that was Cinema R2026? (September 19th 2025)

How to browse 3D assets (August 24th 2025)

Using Unity assets in Cinema 4D (August 15th 2025)

Plant Factory->Cinema 4D->World Creator (August 12th 2025)

Viewing glTF files (August 9th 2025)

Tessellation part 2 (August 5th 2025)

Shader writing with OSL - 3 (July 11th 2025)

Tessellation (June 23rd 2025)

Creating plants for C4D (June 15th 2025)

Adobe alternatives (May 28th 2025)

Using Graswald assets in C4D (May 7th 2025)

Which Mac for plugin development? (May 3rd 2025)

Why do plugin writers do it? (April 11th 2025)

Updating StarScape (February 26th 2025)

Using Cinema 4D shaders in Redshift (January 31st 2025)

PHP and MySQL (December 19th 2024)

Shader writing with OSL - 2 (November 11th 2024)

Shader writing with OSL (October 29th 2024)

StarScape (September 25th 2024)

Converting plugins from C4D 2024 to 2025 (September 16th 2024)

Cinema 4D 2025 and macOS plugins (September 15th 2025)

© 2021-2025 Microbion. All Rights Reserved.