Vertex Normal Toolkit. Script for 3ds Max 2012 - 2020 which can edit vertex normals.
It calculates normals based on: topology, using projection gizmo and can project normals from other mesh. Everything is based on layer system.
Every mesh can be divided into up to 7 layers and each 'normal' layer can be calculated independently.
To see it how it works click here:
to see how it looks like, you may download some examples here:
This script is provided "as is" which means I take no responsibility whatsoever for any damage this script may cause. But because it was tested on people, I don't think it will cause any problems :)
Still I would like to encourage you to make first tests on copies of your meshes / scenes... just in case :)
If you think this script lacks some cool features let me know, I'm open for ideas :)
Script is not encoded into mse.
You may not publish any fragments ( or whole ) of code anywhere.
To install it, as usual, drag and drop mzp file into viewport and all will be correctly setup. Restart 3DS Max is not required because all scripts will be run at least once, all icons will be refreshed and new macro will be ready to be added to any toolbar.
Macro button can be found under SCG TOOLS category.
This zip file contains two files:
mzp is to make first installation or to make an update of existing files.
second file is 'raw' script file and it will NOT work as standalone file.
Use it only if you made a custom installation and want to make an update manually.
- it is possible to take projection gizmo and use it as regular projection mesh. To make it right click on gizmo selector while setup ( tools ) button is active. This way you can generate normals for one area using more than one projection mesh combined as single object. Less layers are needed this way.
- fixed bug where there was no any subobject level selection active and script was trying to assign it anyway from variable
- fixed bug where mesh has more than one material applied (multimaterial) and selected polygon was assigned to any layer. From this point entire mesh had first material from multimaterial applied.
- assignment faces selection to layer has been improved. Now its ~ 60% ( 1,4 sec to 0.45 sec ) faster than before
- with no lag in between.
- now it is much easier to calculate normals for round and concave areas: plane projection gizmo can be bent with negative degree so its range is from -360 to 360 degree.
- fixed normals direction when generation gizmo is set to plane and length bend angle is 0 ( angle bend upper spinner ) while width bend angle ( angle bend lower spinner ) is greater than 0, normals are generated incorrectly.
- fixed when changed material id on polygon ( when mesh is not in preview mode ) was lost when "preview layers" button was pressed. If polygon id was changed when mesh was not picked by script all settings are preserved.
- fixed incorrect length of arrow helper for plane gizmo
- when first bend angle of plane gizmo was set at zero degree and second was higher than 180 degree preview arrow helpers had an incorrect direction. It had an impact on preview of those arrows as well as final direction of generated normals using those settings.
- fixed crash where after generating normals using "GENERATE NORMALS" button
- selected projection mesh has been deleted and normals were generated again using the same button
This script contains part of great script written by Martijn Buijs.
"My' version of this script has been improved ( it is ~3x faster than the original ) and half of it was removed due to optimization.
Original code is available here :
Optimized version is here :
You'll need an account to access this in our app. Please create a password to continue.
Download from the App Store or text yourself a link to the app
Thank you ! I appreciate your purchase.
If you will encounter anything worth mentioning let me know :) Have fun ! :)