Average Normals

65 votes
Date Updated: 
Author Name: 

Average Normals is a MAXScript that averages all the vertex normals for each selected faces, so they all point the same direction.


Additional Info: 

To use the script, you have to select all faces on which you want to flatten the normals and run the script

V2 with a simplified version of my script with the code of Barigazy

Version Requirement: 
3ds Max 9 - 2015


Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
x_OL's picture
Phantom_X's picture

Needs improvement

Works well on a cube, but not so well on everything else... I was hopping to find a faster script than GetVertNormalsFromFace from here: http://wiki.polycount.com/wiki/VertexNormal#SetNormals_MAXScript

but I think I'll stick with GetVertNormalsFromFace.

Luos_83's picture

max 2016

Not sure if I am doing it right, but I select all polygons, apply the tool.
Nothing changes when looking at edit normals, everything stays exactly as it was.
(max 2016)

What might I do wrong?

nameveiof's picture

My PC hangs when i use this

My PC hangs when i use this script.
It's strange.

max x64 2014
amd phenom x6
win7 x64
16 gb ram

barigazy's picture


Simplified version. Select faces of object and run this code

if selection.count != 0 do
	obj = selection[1]
	_faces = if obj.modifiers.count == 0 then getFaceSelection obj else
		if matchPattern obj.modifiers[1].name pattern:"*Mesh*" or \
		matchPattern obj.modifiers[1].name pattern:"*Poly*" do getFaceSelection obj obj.modifiers[1]
	if not _faces.isEmpty do
		mody = EditNormals name:"AverageNormals" selectBy:3
		addModifier obj mody
		with redraw off for _f in _faces do
			_normals = #{}
			mody.ConvertFaceSelection #{_f} _normals
			mody.Reset selection:_normals node:obj
			mody.SetSelection _normals
			mody.Average selection:_normals node:obj
	) ; collapseStack obj


injez's picture

max 2011 x64

script not works :(

nelu's picture

How to use?

Hi, could someone tell me how to use this script please?

Anubis's picture

Sounds good, but (am sorry to

Sounds good, but (am sorry to say that)... its not working for me, nothing changed... is this happen only to me? (Max2009)

nm, I have no time right now to check out the code, I'll post my version too.

[EDIT] opss, I think I found the problem (in my usage). If I select all faces - I end with nothing. Nice script though, thanks! I uploaded my version here anyway.


my recent MAXScripts RSS (archive here)

kony's picture

very nice thanks zoffty

very nice
thanks zoffty

djboulette's picture

The simple is the best! Nice

The simple is the best!
Nice script, work well as described!
Good Work mate.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.