3D Normal Editor + Shading Domains
Version 0.4 (12/04/2018)
No installation,
just unzip and run
This is a little spare-time experimental project - a first entry into world of 3D programming.
Most of the the functions it offers are scattered in various other big applications.
•
Load and save OBJ files
•
Display vertex normals
•
Detects multiple normals per vertex
•
Smooth, Un-smooth, Collapse and Add multiple Normals to vertices
•
Direct Normals UP (for foliage) or from center of object
•
Triangulate object
•
Set and assign shading normals to faces
3D Normals
Each Vertex in OBJ file have also a normal - this is a directional vector telling a 3D application
how it should shade the edge. In 3D world all surface is approximated by triangular (or
sometimes quad) faces and the application doesn’t necessary know if we want to shade the
surface as smooth surface or in fact as angular faces as it is modelled.
Consider the image below
On the left side we have vertex where normal points outwards in combined direction of left and right surface
and this tells the 3d application that we likely want a smooth edge. On the right side the vertex shows two
normals, each is perpendicular to the surface it borders. And this tells the 3d application that we would like to
have a sharp edge or crease.
Now wait, before you start adjusting normals like there is no tomorrow!
This all applies to real-time graphics, such as games. Here the engine doesn’t have enough time to do
decisions about faces and it takes the normals as a hint what to do. But if you are thinking about non-realtime
rendering (for example Daz Studio) here the normals would not play a role as the optical based rendering has
set of different rules than real-time graphics - and most notably; much more time to decide what to do with a
surface so it can simply ignore normals.
3D Normal Editor has few tools to select parts of the obect. they are also in the menu Selection:
Select Vertices - select single or multiple vertices - not much
use as there is no vertex editing in the app (yet)
Select Normal by Vertex
Select a normal belonging to the vertex. A vertex can have
more than one normal so there is a setting in the right panel:
This settings will either select a single normal (depends on which
face we click) or all normals that belongs to the vertex (if there are
multiple normals). You should look also at the right panel text to see
what you have selected, because multiple normals can point in the same direction.
In this case it looks like we have one normal selected but by looking at the
right panel we see we have in fact 4 normals selected (pointing in the
same direction). So that means each face at the vertex has also a normal.
Since they all point in the same direction, it is something
we may want to fix (and 3d Normal Edit can fix this)
BTW. Multiple normals at a vertex are automatically
highlited by a pinkish dot
Select Normals by Face
Select all normals belonging to a face. So all Vertices on the face will have at least one normal, but as discussed above can have more.
In this case clicking on a face will select all vertice normals of that face,
but in our case, we actually have two vertices that have 4 normals and
two vertices that have just one so in fact we selected 10 normals.
As with the case before, this may happen on some objects, a vertex may have more than one normal but all of them point in the same direction. It
is redundant of course and we can Collaps the vertice normals into a single Normal.
Select Face
This tool will just select a face - this is important for setting up Shade domains (later)
Rubberband
Select faces/vertices/normals using a laso selection. The setting “Select face if all vertices inside” tells what we want to select on the borders of the
laso tool. If checked only faces that are all inside in laso will be selected.
Select back faces - the laso can select either the faces you see or also faces on the back of the object
Selection Modifiers (works in all modes, including laso)
SHIFT - add to the selection
CTRL - remove from the selection
Mouse Control
Rotate around object - Hold ALT and left mouse button and drag (as in most 3d apps) or click outside the object
and drag (like in ZBrush)
Pan - Right click and drag
Zoom - Mouse wheel
Operation on selected normals
There is not yet tool to position a normal arbitrary - such as gizmo, so don’t look for one (TODO). You can apply one of the operations on
selected normals
Select Face
This tool will just select a face - this is important for setting up Shade domains (later)
Rubberband
Select faces/vertices/normals using a laso selection. The setting “Select face if all vertices inside” tells what we want to select on the borders
of the laso tool. If checked only faces that are all inside in laso will be selected.
Select back faces - the laso can select either the faces you see or also faces on the back of the object
Selection Modifiers (works in all modes, including laso)
SHIFT - add to the selection
CTRL - remove from the selection
Operations on selected Normals
There isn’t yet a tool to move normals arbitrary (TODO: add Gizmo). You can do only the predefined operations:
Select verices with Multiple Normals
Select all the vertices that have assigned more than one normal
Smooth Multiple Vertice Normals
If a vertex have multiple normals, this will all turn them to the same average direction.
Unsmooth
This is the opposite - if vertex have multiple normals all turned to the same direction,
it will turn them each parallel to the adjacted face normal. So in other words it will
create crease.
Add multiple Normals to vertex.
So far the operations worked on multiple normals per vertex but what if we have only
a single normal - well, this will add multiple normals to the vertex.
Collapse Multiple Normals
The opposite - it will delete all normals from the vertex, but keep only a single one.
Set Direction
This will turn all selected normals into a certian direction.
Direction UP - it will combine the current direction with an UP direction. For example for a 3d bush, foliage…
Strictly UP - all selected normals will point up and no other direction. Used for foliage, grass etc..
Out from Axis - all normals will become horizontal and their direction will be out from Y axis
From Object Center - all normals will be coming as if from object center. (for example a ball)
Remove Unused Normals - this will remove any remaining normals that are not used anymore and when you save those normals will be gone.
if you don’t do that the normals will be saved even if they are no longer used on any of the vertices.
Shading Domains
You need to switch to MAT domains tab and also select FACE selector
A 3D object has asiigned a material in any 3d
application, for example a sphere can be rendered as
a marble by applying marble texture. Another sphere
can be rendered as if made of wood by applying
different texture. But in fact the material is not
necessary domain of an object. It can be in fact a
property of one or more faces.
In the draw bridge building on the left (which appears
as a single object) we have 4 materials. Each of the
colored parts are UV mapped to completelly fill the
UV texture and then in rendering application, each
can have its own texture file thus increasing quality.
This part of the software does just that - assign
multiple selected faces to a material.
Working with this is very simple: select faces, select a material from the list, then press Assign Faces To Material. If the OBJ file has no materials
created, then first add one with Create New.
In this example I selected a top of the sphere with laso (and backfaces on), created new material, selected it and assign the faces to it. Now all I
need to do is to save the OBJ file and then import it in the 3d package of choice.
Assign separate materials to any faces of the object.
Here in DAZ studio the saved sphere will appear with two shader materials and we can then select each to be something else. And that’s it.
How do I un-assign faces?
Same way, select facces and assign it to _unassigned_ material.
How to delete whole shading domain?
Select the material, click “Select Faces by Material” which will select the faces, Select _Unassigned_ then press Assign to Material.
How to delete the material from list?
You don’t and you don’t need to. Only materials with assigned faces will be saved. So a material with no assigned faces will be ignored and not
exported.
If you are going to render the 3d object in physical based rendering then adjusting normals will have no effect.
TODO list
•
gizmo or control to adjust normals arbitrary
•
same for vertices
Automatically
turns a photo
into painting
inspired by
real world
artists
Dynamic image
editor and effect
processor with
absolutely
unlimited
possibilities
Cool new
software for
creating photo
montages and
compositions.
Create modern
web graphics
with vectors, 2D,
3D and drawings
Enhance Dynamic
Range of your
images for Eye-
Catching results
OUR COMMERCIAL APPS
Get notified about updates
Receive updates, new releases and discount offers