material.diffuse.g=m.G
material.diffuse.b=m.B
material.diffuse.a=m.alpha
- material.sinness=m.spec
+ material.sinness=0 if m.spec<1e-5 else m.spec*10
material.specular.r=m.specR
material.specular.g=m.specG
material.specular.b=m.specB
- material.ambient.r=m.amb
- material.ambient.g=m.amb
- material.ambient.b=m.amb
+ material.ambient.r=m.mirR
+ material.ambient.g=m.mirG
+ material.ambient.b=m.mirB
material.vertex_count=len(indices)
material.toon_index=0
+ material.flag=1 if m.enableSSS else 0
# ToDo
material.texture=""
# 面
material=createMaterial()
material.setRGBCol([m.diffuse.r, m.diffuse.g, m.diffuse.b])
material.setAlpha(m.diffuse.a)
- material.setHardness(int(m.shinness))
+ material.setSpec(m.shinness*0.1)
material.setSpecCol([m.specular.r, m.specular.g, m.specular.b])
material.setMirCol([m.ambient.r, m.ambient.g, m.ambient.b])
+ material.enableSSS=True if m.flag==1 else False
# set texture
if m.getTexture()!='':
tex_file=re.compile('\*.*.spa$').sub('', m.getTexture())
mesh_face_indices=[]
mesh_face_materials=[]
used_vertices=set()
+
+ def degenerate(i0, i1, i2):
+ return i0==i1 or i1==i2 or i2==i0
+
for material_index in material_order:
face_offset=face_map[material_index]
m=l.materials[material_index]
i0=material_faces[j]
i1=material_faces[j+1]
i2=material_faces[j+2]
- mesh_face_indices.append([i0, i1, i2])
+ triangle=[i0, i1, i2]
+ if degenerate(*triangle):
+ continue
+ mesh_face_indices.append(triangle)
mesh_face_materials.append(material_index)
used_vertices.add(i0)
used_vertices.add(i1)
used_vertices.add(i2)
+
mesh.faces.extend(mesh_face_indices, ignoreDups=True)
- assert(len(mesh.faces)==len(mesh_face_indices))
# face params
used_map={}