Crosshatching with Eevee

Blender 2.8 isn’t even Beta and it already has me hooked! Eevee will (IMHO) open the flood­gates for NPR and all kinds of cool styles. This time I worked on a cross hatch­ing material. 

The tech­nique is based on this paper from Princeton/Microsoft Research. The gist of it is mak­ing sev­er­al tex­tures to rep­re­sent the dif­fer­ent lev­els of shad­ing and map them to the light­ing in the object. Well, guess who has a shad­er-to-rgb node now? We can grab the illu­mi­na­tion data from a dif­fuse or glossy BSDF, plug into sev­er­al col­or­ramp nodes and get masks for each step. I changed one thing from the paper though. In the paper they use tex­tures that have the cross hatch­ing already com­bined and then mix them. I think keep­ing them sep­a­rat­ed and mul­ti­ply­ing them in a mix node is more efficient/flexible for Eevee.

I hope you like UV unwrap­ping :). You will need it to make the lines flow in a uni­form way. Other tex­ture coor­di­nates can cause strange or unre­al­is­tic results. There is one excep­tion though. Large flat areas that are on graz­ing angles to the cam­era look weird, like a blurred mid-90s repeat­ing tex­ture. I haven’t found a good solu­tion yet. One way is to use the Window tex­ture coor­di­nates. But these bring a dif­fer­ent prob­lem: they look awful the moment you move the cam­era and make the objects flatter.

Don’t for­get to scale UVs prop­er­ly to make the lines have rough­ly the same size. Also, since this effect depends on col­or­ramp-ing the dif­fuse shad­er it’s a lit­tle illu­mi­na­tion spe­cif­ic. Particularly in high-con­trast places. You can see for your­self by mov­ing the sun in the blend file and watch­ing the effect on the shad­ows in the walls.

Subtle paper tex­tures real­ly help sell the effect. You can grab some at Pixabay or Lost&Taken. Since the tex­tures are black and white you can take the ren­der and mul­ti­ply it on top of the tex­ture. Another impor­tant part of the effect is using masks and leav­ing emp­ty spaces to sug­gest details. Even more so if you are repeat­ing the tex­tures a lot, since the rep­e­ti­tion will look artificial.

Speaking of tex­tures. They are very easy to make using Krita’s wrap mode (press w). Just grab a good brush and start mak­ing hor­i­zon­tal lines, then make anoth­er lay­er and make some more lines in oth­er places. Repeat to get three hor­i­zon­tal lay­ers. Then do the same for the three ver­ti­cals and export each lay­er as a sep­a­rate PNG file. For these tex­tures I used the ink-7-Brush Rough brush and drew the lines freehand.I also have anoth­er set of tex­tures I made with the Basic‑5 brush and the line tool. These look more clean and orga­nized, but I kin­da like the rough look better. 

When mak­ing your own tex­tures keep in mind it’s impor­tant to keep the thick­ness and spac­ing of the strokes even. Otherwise you can cre­ate local details that will show up when repeat­ing the tex­ture and ruin the effect. You can zoom out while in wrap mode to check this.

You can down­load the blend, tex­tures and the source kri­ta file. The whole thing is CC‑0 so feel free to use it for any­thing with­out attri­bu­tion.
(I would­n’t mind a link back though!)

All the posts you can read
FreebiesBlender, Eevee, Materials28.09.2018