# rmeove dummy 0 vertex
mesh.verts.delete(0)
- mesh.mode |= Blender.Mesh.Modes.AUTOSMOOTH
- mesh.maxSmoothAngle = int(o.smoothing)
- mesh.smooth()
mesh.calcNormals()
mesh.flipNormals()
mesh.update()
- # mirror modifier
- if o.mirror:
- mod=mesh_object.modifiers.append(Blender.Modifier.Types.MIRROR)
+
+def objectAddMirrorModifier(mesh_object):
+ return mesh_object.modifiers.append(Blender.Modifier.Types.MIRROR)
+
def getTexture(m, dirname):
tex=""
def shapeKeys(b):
return b.data
+def meshSetSmooth(mesh, smoothing):
+ mesh.mode |= Blender.Mesh.Modes.AUTOSMOOTH
+ mesh.degr=int(smoothing)
+ #mesh.smooth()
+
material.diffuse_color=[m.color.r, m.color.g, m.color.b]
material.alpha=m.color.a
material.diffuse_intensity=m.diffuse
- # temporary
- material.emit=1.0
return material
def createPmdMaterial(m):
material.specular_color=([m.specular.r, m.specular.g, m.specular.b])
material.mirror_color=([m.ambient.r, m.ambient.g, m.ambient.b])
material.subsurface_scattering.enabled=True if m.flag==1 else False
- # temporary
- material.emit=1.0
return material
def createTexture(path):
def objectMakeParent(parent, child):
child.parent=parent
+def objectAddMirrorModifier(mesh_object):
+ return mesh_object.modifiers.new("Modifier", "MIRROR")
def meshAddMqoGeometry(mesh_object, o, materials, imageMap, scale):
mesh=mesh_object.data
def VtoV(v):
return mathutils.Vector([v.x, v.y, v.z])
+def meshSetSmooth(mesh, smoothing):
+ mesh.autosmooth_angle=int(smoothing)
+ mesh.autosmooth=True
+ mesh.calc_normals()
+
scene.objects.unlink(dumy)\r
\r
\r
-def __execute(filename, scene, scale):\r
+def __execute(filename, scene, scale=10):\r
exporter=MqoExporter(scale)\r
exporter.setup(scene)\r
exporter.write(filename, scene)\r
Blender.Window.WaitCursor(1) \r
t = Blender.sys.time() \r
\r
- __execute(filename, Blender.Scene.GetCurrent(), 1.0)\r
+ __execute(filename, Blender.Scene.GetCurrent())\r
\r
print('finished in %.2f seconds' % (Blender.sys.time()-t) )\r
Blender.Redraw()\r
"""\r
create blender mesh objects.\r
"""\r
- # store hierarchy\r
+ # tree stack\r
stack=[root] \r
objects=[]\r
for o in mqo.objects:\r
\r
# add hierarchy\r
stack_depth=len(stack)-1\r
- print(o.depth, stack_depth)\r
+ #print(o.depth, stack_depth)\r
if o.depth<stack_depth:\r
for i in range(stack_depth-o.depth):\r
stack.pop()\r
\r
bl.meshAddMqoGeometry(mesh_object, o, materials, imageMap, scale)\r
\r
+ # mirror modifier\r
+ if o.mirror:\r
+ bl.objectAddMirrorModifier(mesh_object)\r
+\r
+ # set smoothing\r
+ bl.meshSetSmooth(mesh, o.smoothing)\r
+\r
return objects\r
\r
\r
mesh.update()\r
\r
\r
-def __execute(filename, scene, scale=1.0):\r
+def __execute(filename, scene, scale=0.1):\r
# parse file\r
io=mqo.IO()\r
if not io.read(filename):\r
\r
# create materials\r
materials, imageMap=__createMaterials(scene, io, os.path.dirname(filename))\r
+ if len(materials)==0:\r
+ materials.append(bl.createMaterial('default'))\r
\r
# create objects\r
root=bl.createEmptyObject(scene, os.path.basename(filename))\r