A youtube video would be so great to watch for educational purposes. This has been the most detailed and user-friendly halftone node I've seen for blender, and I love that it works with Cycles. Thank you so much!
A downloadable CMYK print emulation
MRMO-Halftone is a Blender shader-based halftone offset printing emulation process that aims to evoke the "feel" of color halftone prints.
It converts the input texture from RGB to an approximated CMYK color model and overlays the four halftone "screens", resulting in an emulated halftone offset print.
It works in Eevee and Cycles render engines, and accepts image/video, as well as procedural texture input.
Note: as MRMO-Halftone is Blender material shader-based, this process works completely within Blender and can't be used outside of it (e.g. as a shader in various game engines).
It is not an add-on, does not require installation, and does not need any other add-ons to function, and it does not provide any new functionality to Blender. It is a process composed of material shader nodes, combined with an auto-resizing canvas-and-camera scene, and distributed as a .blend file.
The shader is contained within a single node group with exposed property sliders, and can easily be further reconfigured and customized.
Various properties are exposed in the main shader node, allowing for easy configuration of the basic parameters, such as customizing the halftone pattern dot randomness and rotation, simulating offset mismatch errors, customizing the CMYK "ink" colors etc.
The MRMO-Halftone "Basic" version includes the shader in a .blend scene, with basic configuration options.
The optional MRMO-Halftone "Deluxe" version includes the shader in a .blend scene, with several more advanced customization options, such as per-channel CMYK color multipliers and a handy pre-made, customizable procedural paper texture.
It's made to be as easy to use as possible, even for people new to Blender, the .blend scene includes a canvas and camera setup that automatically scales to the desired resolution; the only thing necessary to make it work is to plug in an image, set the rendering resolution and render the result!
Will this work on my PC?
-If Blender (at least version 3.1) works on your PC, then MRMO-Halftone should work too. It is relatively taxing on the hardware, so having a dedicated video card definitely helps run it faster!
MRMO-Halftone was tested on Blender versions up to 3.1.2. It is recommended you update your Blender version to at least 3.1.2 to ensure the process is working as intended.
"Low quality" update for MRMO-Halftone "Deluxe"!
The "Deluxe" version now features additional parameters to tune, including:
-Sun exposure and paper structure-based ink fading
-Ink color inconsistency
-"Specks" without ink
*Update V1.1s: "Express" update for MRMO-Halftone "Deluxe"!
The "Deluxe" version now comes with a simplified-controls "Express" variant as a separate .blend scene. This version features very few controls for more ease-of-use and getting rapid results using the new "quality" parameter.
*Update V1.21: "Physical" update for MRMO-Halftone "Deluxe"!
The "Deluxe" (and "Express") versions now feature normal and displacement texture based lighting setup, adjustable using the new "paper crumpling" property. (This makes the download size bigger due to the included textures!)
The update also features per-ink specks and dark specks, input texture scaling and several modified property values.
*Update V1.23: Better halftone pattern and more!
All versions of MRMO-Halftone now feature a better halftone pattern, and the old "Halftone Pattern Brightness" adjustment is now retooled to "Dot Gain". The dots in the halftone pattern can now overlap better, providing better and customizable ink coverage.
The halftone pattern rotation was reworked to feature better default angles.
A "Soften" adjustment was also added, to help break the hard halftone pattern edges, especially when processing pixel art.
The Input Image node group also features some adjustment parameters to help tune the input image before it's sent to the shader process.
*Update V1.23b: a couple of fixes and tweaks
I fixed the issue where the halftone pattern scale would not be calculated correctly for vertical-aspect images/canvas.
I also changed the default rendering resolution scale to 100% to prevent accidentally rendering extremely large resolution results.
*Update V1.24: "Enrich dark tones"!
The "Deluxe" (and "Express") versions now feature an option to "enrich" the dark tones of the image by adding cyan, magenta and yellow inks to the key ink. This can help produce deeper, richer dark tones.
The "Paper Structure Fade" slider should now provide a much more even fading across its value range.
Note: the "basic" version of the process is and always will be free. The "Deluxe" version is slightly more complex, with extra options, as a paid extra for people who want to support my work, or want to use the process commercially.
"Basic" version license: MRMO-Halftone "Basic" version can be used in non-commercial projects of any kind, excluding those relating to or containing non-fungible tokens ("NFT") or blockchain-related projects. You can modify it to suit your needs. You may not redistribute, or resell it, even if modified. Credit is not necessary, but very much appreciated.
"Deluxe" version license: MRMO-Halftone "Deluxe" version can be used in both non-commercial and commercial projects of any kind, excluding those relating to or containing non-fungible tokens ("NFT") or blockchain-related projects. You can modify it to suit your needs. You may not redistribute, or resell it, even if modified. Credit is not necessary, but very much appreciated.
I'd love to see what you create using MRMO-Halftone! I'm on Twitter so feel free to show me your work there!
Click download now to get access to the following files:
- "Enrich" dark tones!Aug 08, 2022
- A couple of fixes and tweaksMay 30, 2022
- Better halftone pattern and more!May 26, 2022
- "Physical" update!May 22, 2022
- Basic usage tutorial and tips!May 21, 2022
- A tip for processing pixel art using MRMO-Halftone!May 20, 2022
- "Express" update!May 17, 2022
- "Low quality" update!May 17, 2022
Log in with itch.io to leave a comment.
This is amazing! I've been playing with it a lot and I can't get enough. One thing I don't seem to be able to do: Is there a way to set the paper/background alpha transparency in any way? After getting into the 4th or 5th node layer I thought it might be easier to just ask.
Hey! The way the process works is by calculating separate C, M, Y and K values using the input image, and mixing an appropriate amount of "inks" on top of a "paper" backdrop, very similar to how actual printing works. You could get the "inks" value separately, but as there's no "white", any bright areas would result in transparency (the process basically overlays this result on top of a "paper" texture).
You could get around this by mixing the entire shader with a transparent shader using the input image's alpha as factor, like so:
The alpha obtained this way is not perfect, though.
Another, more complicated way would be to introduce a "fifth ink", based on the alpha instead of colors, which would make the transparency "halftoned" too; this would require modifying the halftone subprocess group to have an additional "alpha" output, and using that as the mix shader factor instead. This would also definitely fall outside of the scope I designed the process for :)
Thanks so much for the answer. Indeed the transparency looks a bit weird with this method, but your explanation was really helpful and the nodes are starting to make more sense as I delve deeper. Just editing the interpolation type of the texture changes the end result completely.
I'll experiment with the setup to see if I can find ways to accomplish transparency and post it here if anyone needs it. Thanks for making this tool, it's a joy.
Any introduction help of how can I integrate this in a Unity project?
Depends on how you want to do it; the shader process is completely contained within Blender and does not work outside of it, so you wouldn't be able to use it realtime in Unity. You can render assets as textures in Blender, save them as images and use the result in Unity.
Awesome tool! When trying the Paper Crumpling my version doesn't look like yours, though, more like dark cloudy noise. Is there something I'm missing? Thanks!
i have that too. i couldn't figure out why his examples of the paper crumpling looked cleaner
Hey! This requires me to do some troubleshooting, could you please share your basic hardware specs? Also, what OS and Blender version you're using?
At a first glance, this looks like a Blender issue of some sort, I've tested the process on the lowest-end hardware I could find that still can run Blender 3.x (an i5 laptop from 2015 with integrated graphics, running Windows 10), and after chugging along compiling shaders for almost a minute, it produced the correct result :/
Also, if you enter the shader node, and connect the "Light Normal" to the Group Output, what does the result look like?
Also, does changing the values in the "Lighting Setup" node do anything? I've managed to reproduce your result by setting all three light intensities to 0, which leads me to believe there's something wrong with how Blender does calculations there.
Hello! I'm using windows 10, Blender 3.0.0
Plugging the light normal in directly just gives me a black square.
Changing values in the lighting setup node doesn't do anything.
Actually, I do see a paper displacement and paper normal in the render, but I guess the normal isn't in the final result? Also not sure why it doesn't show up in the editor either.
Thank you for helping me troubleshoot this; I've downloaded Blender v.3.0.0 and it is indeed a Blender version related issue.
In the "Normal Paper Texture" node group, these nodes are not connected properly if opened with older Blender versions, due to Map Range node being updated to support Vector inputs.
If you're unable to use a newer Blender version with MRMO-Halftone, you can bridge the missing connection like so:
This should allow you to use the "Paper Crumpling" feature, as it should now generate a valid output.
first of all, this is awesome. it looks really good.
second point is if it would be possible to auto detect the aspect ration of the input image because it's default state works well on landscape images, but throw something in with more vertical space and you have to go in and adjust your sizes so you don't end up with a distorted mess.
Hey! I've identified the problem, and will try to implement a solution as soon as I can!
The halftone pattern scale is not calculated correctly for vertical-oriented image textures, and I think I know how to fix it :)
This is truly amazing. The results are stunning
When I press f12 to render, the render is tiny and pixelated, what is wrong?
Be sure to set the resolution along with scaling here!
(For example, 320x200 resolution with 400% scaling will produce a 1280x800 render!)
Can we have instructions, I am having trouble bringing images in.
When I open the file is just grey.
Yes, I'm in the process of making instructions! For now, here's this simplified version :)
To preview the result, switch to "rendered" view:
Select the InputImage node and hit "Tab" to enter (but I see you already did this :)
Clear the included default texture:
Load your own texture:
Set the rendering resolution and scaling here:
Hit "F12" to render, Alt-S to save the resulting render (or "image->save as").
"Esc" should return you from the rendered result to the original preview viewport.
It is not easy for those not familiar with Blender nodes. Struggled myself before figuring it out...
Select the "Input Image" node, hit Tab to edit the group.
Then you can use the "Image Texture" node in the middle to select your source image.
With the Basic license can I use this for advertising, or should I purchase the Deluxe version? (Just genuinely not sure where advertising falls in the commercial/non-commercial space)
Without knowing the context, I couldn't really say. Depends on what the advertising is for :)
1. Are you getting paid to make the advertisement?
2. Are you making it for a commercial entity (i.e. a business)?
3. Is it advertising something that is intended to make money?
If you answered yes to any of those questions, I'm pretty sure the answer would be that it is commercial use, legally speaking. Of course, the creator can always choose to allow you to use it even if your use is commercial in nature
i like the look very halftone indeed. keep making amazing tools like this
Another amazing tool! Keep up the great work, this is awesome!