vertex per-face normals

Hi, I would like to ask two questions about “vertex per face normals”:

  1. How can “vertex per-face normals” be displayed and what are these compared to vertex normals ?

    In edit mode the normals can be displayed as lines. In Blender 2.73 there can be displayed

    • vertex normals
    • vertex per-face normals
    • face normals
      I’m not sure, but i think compared to previous versions displaying “vertex per-face normals” is a new feature (since 2.69 or so). Selecting the different buttons only “vertex normals” and “face normals” are displayed as light and dark blue lines, but no “vertex per-face normals” for Blenders standard cube.
  2. I have a question about normals when exported to obj file format with smooth shades on (S1):
    Why are normals (vn) not related to vertices (v) in a 1-to-1 relation ? (the order seems to be changed).

    Here is what i have done:

    • Added a standard cube to the scene with dimensions (2,2,2) and positioning the cube with Alt-G to (0,0,0).
    • Triangulated the cube.
    • Unwrapped it.
    • Select smooth shading (s 1) in object mode -> I get 8 vertices, 12 faces, 14 UV coords. In edit mode i can see 12 face normals and 8 vertex normals (no vertex per-face normals).

    note: flat shading - which is not, what i want here - would correctly result in 6 normals (which are actually 12 face normals: 2 * 6 normals, because for the cube each of them are used twice in face (f)-entries).

    After export i get this obj file:

Blender v2.73 (sub 0) OBJ File: ‘WTestNew1.blend’

www.blender.org

mtllib WTestNew1.mtl
o tool_mesh_tool_meshShape_13.001
v -1.000000 -1.000000 1.000000
v -1.000000 -1.000000 -1.000000
v 1.000000 -1.000000 -1.000000
v 1.000000 -1.000000 1.000000
v -1.000000 1.000000 1.000000
v -1.000000 1.000000 -1.000000
v 1.000000 1.000000 -1.000000
v 1.000000 1.000000 1.000000 <—
vt 0.385422 0.001907
vt 0.635422 0.001907
vt 0.635422 0.251907
vt 0.885422 0.751907
vt 0.635422 0.751907
vt 0.635422 0.501907
vt 0.385422 0.751907
vt 0.385422 0.501907
vt 0.135422 0.751908
vt 0.135421 0.501908
vt 0.385422 0.251907
vt 0.635422 1.001907
vt 0.885422 0.501907
vt 0.385422 1.001907
vn -0.577300 0.577300 0.577300
vn -0.577300 0.577300 -0.577300
vn -0.577300 -0.577300 -0.577300
vn 0.577300 0.577300 -0.577300
vn 0.577300 -0.577300 -0.577300
vn 0.577300 0.577300 0.577300
vn 0.577300 -0.577300 0.577300
vn -0.577300 -0.577300 0.577300 <— wrong ?
usemtl None
s 1
f 5/1/1 6/2/2 2/3/3
f 6/4/2 7/5/4 3/6/5
f 7/5/4 8/7/6 4/8/7
f 8/7/6 5/9/1 1/10/8
f 1/11/8 2/3/3 3/6/5
f 8/7/6 7/5/4 6/12/2
f 1/11/8 5/1/1 2/3/3
f 2/13/3 6/4/2 3/6/5
f 3/6/5 7/5/4 4/8/7
f 4/8/7 8/7/6 1/10/8
f 4/8/7 1/11/8 3/6/5
f 5/14/1 8/7/6 6/12/2

The above obj file imported and exported with 3ds Max 2014 results in:

3ds Max Wavefront OBJ Exporter v0.97b - ©2007 guruware

File Created: 30.03.2015 07:43:09

mtllib WTestNew1_max.mtl

object WTestNew1

v -1.000000 -1.000000 1.000000
v -1.000000 1.000000 1.000000
v -1.000000 1.000000 -1.000000
v 1.000000 1.000000 1.000000 <—
v 1.000000 1.000000 -1.000000
v 1.000000 -1.000000 1.000000
v 1.000000 -1.000000 -1.000000
v -1.000000 -1.000000 -1.000000

8 vertices

vn -0.577300 -0.577300 0.577300
vn -0.577300 0.577300 0.577300
vn -0.577300 0.577300 -0.577300
vn 0.577300 0.577300 0.577300 <— correct
vn 0.577300 0.577300 -0.577300
vn 0.577300 -0.577300 0.577300
vn 0.577300 -0.577300 -0.577300
vn -0.577300 -0.577300 -0.577300

8 vertex normals

vt 0.385422 0.001907 0.000000
vt 0.635422 0.001907 0.000000
vt 0.635422 0.251907 0.000000
vt 0.885422 0.751907 0.000000
vt 0.635422 0.751907 0.000000
vt 0.635422 0.501907 0.000000
vt 0.385422 0.751907 0.000000
vt 0.385422 0.501907 0.000000
vt 0.135422 0.751908 0.000000
vt 0.135421 0.501908 0.000000
vt 0.385422 0.251907 0.000000
vt 0.635422 1.001907 0.000000
vt 0.885422 0.501907 0.000000
vt 0.385422 1.001907 0.000000

14 texture coords

g WTestNew1
usemtl None
s 1
f 1/1/1 2/2/2 3/3/3
f 2/4/2 4/5/4 5/6/5
f 4/5/4 6/7/6 7/8/7
f 6/7/6 1/9/1 8/10/8
f 8/11/8 3/3/3 5/6/5
f 6/7/6 4/5/4 2/12/2
f 8/11/8 1/1/1 3/3/3
f 3/13/3 2/4/2 5/6/5
f 5/6/5 4/5/4 7/8/7
f 7/8/7 6/7/6 8/10/8
f 7/8/7 8/11/8 5/6/5
f 1/14/1 6/7/6 2/12/2

12 faces

The Blender obj export does not result in a 1-to-1 relation of vn-to-v as the 3ds Max export does.
Of course the normals are referenced in the face entries. Is it correct or wrong, that
the order of the vn-values is different compared to the v-values in the Blender obj export ?