I watched this video about the art style of popular fighting game Guilty Gear Xrd, and something which really interested me was the method that the artists used to get rid of ugly automatic-normal artifacts. They would manually mess with the normals so as to make parts of the model that are round shaded as if they were flat.

The example shown in the video is of a character whose face's normals are grouped on each side, on the chin, and under the eyes so as to make the toon shader look more like a traditional 2D anime.

With modified normals:

Without modified normals:

Notice that this sort of ugly artifacting happens when a toon shader is applied to Suzanne; look at her right eye and nose.

This would be very easily fixable if there were a way to group the normals on the left and right sides of the face.

  • $\begingroup$ It's not technically artifacting, as it is accurate to the mesh. This effect is usually done by transferring normals from a different, simpler object. Blender's Data Transfer modifier can transfer normals to some extent, but it does not give good results due to glitches and crashes, and strange behavior such as marking all your mesh's edges as Sharp. $\endgroup$
    – Ascalon
    Jul 25 '16 at 6:43
  • $\begingroup$ You may have a look to the 'normal edit' modifier $\endgroup$
    – lemon
    Jul 25 '16 at 8:58
  • $\begingroup$ i would really like to know the answer to this too $\endgroup$
    – A guest
    Sep 3 '18 at 8:16
  • $\begingroup$ Are you talking about the shadows? Shadowing is determined from literal geometry, not from normals, and if you want to get rid of shadows, you have to use shadeless shaders-- no diffuse->shader to RGB. Or else, disable shadowing on the material, most easily done in properties/material/settings/shadow mode for Eevee. $\endgroup$
    – Nathan
    Jan 1 '21 at 1:50

you cannot group the normals in blender, however there is a very easy workaround to this problem that I have used myself. go into edit mode, tun on show normals.enter image description here

then, select the faces of the normals you want to group, press alt+n or find normals in the mesh dropdown and then press point to target. nothing will happen click anywhere and you should get something like this in the bottom left corner of blender enter image description here

set the z to the z location of the normal in the world. then set the target as far from the model as possible without changing the final result(the farther the better this is extremely important) this does need a bit of tweaking afterwards you can do this by switching to vertex select mode then selecting one of the normals you tried to group that is working as intendedenter image description here then press alt+n and press copy vectors then select the vertices that are not working properly one by one and press alt+n and press paste vectors.Hope this helps.

  • $\begingroup$ Big PSA - I had an issue where I couldn't see any changes I made to normals. Turns out if you're using a Subsurf modifier, you need to make absolutely sure to go to its "Advanced" dropdown and enable "Use Custom Normals," otherwise it'll swallow any changes you make. Took me forever to figure out! $\endgroup$ Dec 2 '21 at 6:22

Based on the other answer I created a Blender add-on for this exact purpose called TiNA which allows you to more easily transfer normals between objects. TiNA basically turns the somewhat overwhelming Data Transfer Modifier into a set of more comprehensible operations.
There's a special branch for those using Blender 2.80 beta.


 Hotkey           | Operation 
 Alt+N            | Transfer Normals from selection to active object
 Shift+Alt+N      | Transfer Normals from active object to all other selected objects
 Ctrl+Shift+Alt+N | Clear Custom Normals data for entire selection
 Alt+W            | Wrap Normals

In your case you could transfer the normals from a normals source mesh (based on the actual face mesh) by selecting it, then selecting the target object and hitting Alt+N.


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.