CMYK Halftone - Unity Asset Store - Nephasto

A reprographic techniques (CMYK and RGB) used in papers and comics.

🕹️ Demo  🛒 Store


Once installed, select the camera in your scene and add the ‘CMYK Halftone’ component.


And you will see something like this:


With ‘Strength’ (1) you can change the general intensity of the effect, if it is 0 the effect will be deactivated.

In ‘Mode’ (2) you can select what ‘Oil Paint’ affects. The first mode is ‘Screen’ and if you use it the effect will be applied to the entire screen (excluding the interface). If you only want it to affect objects that are in certain layers you just have to select ‘Layers’ and choose the layers:


If you want to change the intensity of the effect according to the depth of the scene, choose the ‘Distance’ mode. The range starts at the ‘Near’ plane of the camera and ends at the ‘Far’ plane.


If you see some precision lapses in ‘Layer’ or ‘Distance’ modes it may be due to precision problems with the depth buffer. You can fix it by adjusting your camera’s ‘Far’ value or ‘Depth threshold’ in ‘Advanced settings’ (10).

The next thing you can select is the type of algorithm (3) that the effect will use. The first is ‘CMYK’ and it is the most similar to the technique used in newspapers and comics. The other mode is ‘RGB’ and with it you will get colors more similar to the originals.


You have several controls to adjust the grain, such as its size (4), angle of the pattern (5), the influence of color (6) and sensitivity (7). You can also select how the colors are mixed (that of the effect and that of the original image) in ‘Blend ops’ (8).

Finally you can adjust the final color by activating ‘Color’ (9).


All the code is inside the namespaceNephasto.CMYKHalftoneAsset’. The first thing you should do is import the namespace:

 using Nephasto.CMYKHalftone;


If ‘myCamera’ is a valid camera and you want to add the effect to it, you can do something like this:

 CMYKHalftone cmykHalftone = mycamera.gameObject.AddComponent<CMYKHalftone>();


For more information you can check the comments of the code and the attached demo.

Any questions or suggestions you have, I will be happy to answer you in