I've been creating various camouflage patterns using Cycles material nodes. Now I want to create a digital camouflage pattern like the one below.

Digital Camouflage

My first thought was to pixelate a noise pattern. I've tried to do so but haven't been able to find a way to. So my question is:

Is it possible to pixelate a procedural texture such as noise? Or is there another way I could create this pattern using cycles nodes?

Thanks :)

  • $\begingroup$ Have you tried plugging a noise texture into both inputs of a checker texture? $\endgroup$ – Christy James Jan 30 '15 at 14:18
  • $\begingroup$ All that is giving me is two noise patterns checkered. Still not pixelated. $\endgroup$ – Johnson Martin Jan 30 '15 at 14:33
  • $\begingroup$ would an OSL approach be ok? something like: blenderartists.org/forum/… $\endgroup$ – zeffii Jan 30 '15 at 14:56
  • $\begingroup$ I've never done any OSL shaders. But I've been looking into learning them. If necessary it would be ok. $\endgroup$ – Johnson Martin Jan 30 '15 at 15:00

This is done with rounding the mapping vectors.

enter image description here

The resolution for X and Y can be set with value nodes.

It will work for any texture (for 3D texture just copy the rounding nodes into the Z channel) and you have separate controls for X and Y resolutions.

enter image description here

If you also surround the Multi-Round-Divide nodes with Add and Subtract you can change the center point of effect (add and subtract the same number..)

  • $\begingroup$ Wow! Thank you very very much! Works perfectly! Now I'm going to have to study this to see "How" it works. $\endgroup$ – Johnson Martin Jan 30 '15 at 15:06
  • $\begingroup$ You should upload a picture @Jerryno $\endgroup$ – BlendingJake Jan 30 '15 at 15:09
  • $\begingroup$ @RegusMartin You may want to check out this answer, it explains how texture coordinates work. $\endgroup$ – PGmath Jan 30 '15 at 15:36
  • $\begingroup$ @PGmath Nice explanation! That should be added to the Wiki for the Texture Coordinates node. $\endgroup$ – Johnson Martin Jan 30 '15 at 16:23
  • $\begingroup$ If only we could blur... but this is a great explanation. I wonder if you can stretch the aspect of the boxes to eliminate the half size boxes on the sides? $\endgroup$ – 3pointedit May 22 '15 at 6:46

Update for Blender 2.81+ Versions

You can now do this much easier by using the Vector Math Node. Just set it to Snap and insert it in front of the Image Texture Node like seen in the Screenshot. The values of the second Vector Input can be used to control the resolution on each axis. Divide 1 by any value to get better control over the resolution.

Vector Snap to control texture resolution

You can also control X and Y resolution separately by arranging the Nodes like this:

enter image description here

  • 1
    $\begingroup$ ...New function! I guess you could use floor(), by dividing the coordinate instead of 1... $\endgroup$ – Robin Betts Jan 18 '20 at 11:00

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.