reworked lighting uniforms
[carveJwlIkooP6JGAAIwe30JlM.git] / blender_export.py
index afb0f78c41c3432db71699bcdb87044aa6604ce4..16b97645b306d758406b4233c8da3ca9b93e0bc3 100644 (file)
@@ -212,16 +212,22 @@ def write_model(name):
 
                for j in range(3):
                   vert = data.vertices[tri.vertices[j]]
+                  li = tri.loops[j]
 
                   co = vert.co
-                  norm = data.loops[tri.loops[j]].normal
+                  norm = data.loops[li].normal
                   uv = (0,0)
+                  colour = (1,1,1,1)
                   if data.uv_layers:
-                     uv = data.uv_layers.active.data[tri.loops[j]].uv
+                     uv = data.uv_layers.active.data[li].uv
+                  if data.vertex_colors:
+                     colour = data.vertex_colors.active.data[li].color
 
                   key = (round(co[0],4),round(co[1],4),round(co[2],4),\
                          round(norm[0],4),round(norm[1],4),round(norm[2],4),\
-                         round(uv[0],4),round(uv[1],4))
+                         round(uv[0],4),round(uv[1],4),\
+                         round(colour[0],4),round(colour[1],4),\
+                         round(colour[2],4),round(colour[3],4))
 
                   if key in boffa:
                      indice_buffer += [boffa[key]]
@@ -244,10 +250,10 @@ def write_model(name):
                      v.norm[2] = -norm[1]
                      v.uv[0] = uv[0]
                      v.uv[1] = uv[1]
-                     v.colour[0] = 1.0
-                     v.colour[1] = 1.0
-                     v.colour[2] = 1.0
-                     v.colour[3] = 1.0
+                     v.colour[0] = colour[0]
+                     v.colour[1] = colour[1]
+                     v.colour[2] = colour[2]
+                     v.colour[3] = colour[3]
                      vertex_buffer += [v]
 
                      for i in range(3):
@@ -256,6 +262,11 @@ def write_model(name):
 
                   sm.indice_count += 1
 
+            if sm.vertex_count == 0:
+               for j in range(2):
+                  for i in range(3):
+                     sm.bbx[j][i] = 0
+
             layers += [sm]
             header.layer_count += 1
             header.vertex_count += sm.vertex_count
@@ -266,6 +277,8 @@ def write_model(name):
             mref['vertex_start'] = sm.vertex_start
             mref['vertex_count'] = sm.vertex_count
             mref['bbx'] = sm.bbx
+            print( F"{sm.bbx[0][0]},{sm.bbx[0][1]},{sm.bbx[0][2]}" )
+
             mref['material'] = sm.material
             ref['sm'] += [mref]