RGBA color;
float diffuse;
float ambient;
- float emmit;
+ float emit;
float specular;
float power;
std::string texture;
int vcol;
Material()
- : shader(0), diffuse(1), ambient(0), emmit(0), specular(0), power(0),
+ : shader(0), diffuse(1), ambient(0), emit(0), specular(0), power(0),
vcol(0)
{}
<< ", color:" << rhs.color
<< ", diffuse:" << rhs.diffuse
<< ", ambient:" << rhs.ambient
- << ", emmit:" << rhs.emmit
+ << ", emit:" << rhs.emit
<< ", specular:" << rhs.specular
<< ", power:" << rhs.power
<< ", texture:\"" << rhs.texture << '"'
material.ambient=splitter.getFloat();
}
else if(key=="emi"){
- material.emmit=splitter.getFloat();
+ material.emit=splitter.getFloat();
}
else if(key=="spc"){
material.specular=splitter.getFloat();
texture=texture.recast_type()
image=bpy.data.images.load(path)
texture.image=image
- texture.mipmap = True
- texture.interpolation = True
- texture.use_alpha = True
+ texture.mipmap=True
+ texture.interpolation=True
+ texture.use_alpha=True
return texture, image
@staticmethod
def addTexture(material, texture):
- #material.add_texture(texture, "UV", {"COLOR", "ALPHA"})
material.add_texture(texture, "UV", "COLOR")
+ slot=material.texture_slots[material.active_texture_index]
+ slot.blend_type='MULTIPLY'
+ slot.map_alpha=True
@staticmethod
def hasTexture(material):
return face.verts[:]
@staticmethod
- def getIndices(face):
- return [face.verts[0], face.verts[1], face.verts[2]]
+ def getIndices(face, count=3):
+ if count==3:
+ return [face.verts[0], face.verts[1], face.verts[2]]
+ elif count==4:
+ return [face.verts[0], face.verts[1], face.verts[2], face.verts[3]]
+ else:
+ assert(False)
@staticmethod
def setMaterial(face, material_index):
def createMqoMaterial(m):\r
material = Blender.Material.New(\r
m.getName().encode(bl.INTERNAL_ENCODING))\r
- material.mode |= Blender.Material.Modes.SHADELESS\r
+ #material.mode |= Blender.Material.Modes.SHADELESS\r
+ # diffuse\r
material.rgbCol = [m.color.r, m.color.g, m.color.b]\r
material.alpha = m.color.a\r
- material.amb = m.ambient\r
- material.spec = m.specular\r
- material.hard = int(255 * m.power)\r
+ # other\r
+ material.amb=m.ambient\r
+ material.spec=m.specular\r
+ material.hard=int(255 * m.power)\r
+ material.emit=m.emmit\r
return material\r
\r
else:\r
\r
def createMqoMaterial(m):\r
material = bpy.data.materials.new(m.getName())\r
+ # shader\r
+ if m.shader==1:\r
+ material.diffuse_shader='FRESNEL'\r
+ else:\r
+ material.diffuse_shader='LAMBERT'\r
+ # diffuse\r
material.diffuse_color=[m.color.r, m.color.g, m.color.b]\r
- material.alpha=m.color.a\r
material.diffuse_intensity=m.diffuse\r
+ material.alpha=m.color.a\r
+ # other\r
+ material.ambient = m.ambient\r
+ #material.specular = m.specular\r
+ material.emit=m.emit\r
return material\r
\r
\r
if o.getName().startswith('sdef'):\r
objects.append(mesh_object)\r
elif o.getName().startswith('anchor'):\r
- bl.object.layerMask(mesh_object, [0, 1])\r
+ bl.object.setLayerMask(mesh_object, [0, 1])\r
elif o.getName().startswith('bone'):\r
- bl.object.layerMask(mesh_object, [0, 1])\r
+ bl.object.setLayerMask(mesh_object, [0, 1])\r
\r
# geometry\r
vertices=[(v.x * scale, -v.z * scale, v.y * scale) for v in o.vertices]\r
bl.mesh.addUV(mesh)\r
for i, (f, face) in enumerate(zip(o.faces, mesh.faces)):\r
uv_array=[]\r
+ # ToDo FIX\r
# flip face\r
for j in reversed(range(f.index_count)):\r
uv_array.append((f.getUV(j).x, 1.0-f.getUV(j).y))\r
\r
# mirror modifier\r
if o.mirror:\r
- bl.object.addMirrorModifier(mesh_object)\r
+ bl.modifier.addMirror(mesh_object)\r
\r
# set smoothing\r
bl.mesh.setSmooth(mesh, o.smoothing)\r
material.diffuse.b=m.diffuse_color[2]
material.diffuse.a=m.alpha
# specular
- material.sinness=0 if m.specular_hardness<1e-5 else m.specular_hardness*10
+ material.sinness=0 if m.specular_toon_size<1e-5 else m.specular_hardness*10
material.specular.r=m.specular_color[0]
material.specular.g=m.specular_color[1]
material.specular.b=m.specular_color[2]
#material.setSpecSize(0)
#material.setSpec(0)
# shader
- material.setDiffuseShader(Blender.Material.Shaders.DIFFUSE_TOON)
- material.setSpecShader(Blender.Material.Shaders.SPEC_TOON)
# diffuse
+ material.setDiffuseShader(Blender.Material.Shaders.DIFFUSE_TOON)
material.setRGBCol([m.diffuse.r, m.diffuse.g, m.diffuse.b])
material.setAlpha(m.diffuse.a)
# specular
+ material.setSpecShader(Blender.Material.Shaders.SPEC_TOON)
material.setSpec(m.shinness*0.1)
material.setSpecCol([m.specular.r, m.specular.g, m.specular.b])
# ambient
def createPmdMaterial(m, index):
material = bpy.data.materials.new("Material")
- # set shader
- material.diffuse_shader='FRESNEL'
- material.specular_shader='TOON'
# diffuse
+ material.diffuse_shader='FRESNEL'
material.diffuse_color=([m.diffuse.r, m.diffuse.g, m.diffuse.b])
material.alpha=m.diffuse.a
# specular
- material.specular_hardness=int(m.shinness)
+ material.specular_shader='TOON'
material.specular_color=([m.specular.r, m.specular.g, m.specular.b])
+ material.specular_toon_size=int(m.shinness)
# ambient
material.mirror_color=([m.ambient.r, m.ambient.g, m.ambient.b])
# flag
material.subsurface_scattering.enabled=True if m.flag==1 else False
- # name
+ # other
material.name="m_%02d" % index
+ material.preview_render_type='FLAT'
+ material.transparency=True
return material
def poseBoneLimit(n, b):