Bläddra i källkod

Merge pull request #106 from lian/master

Fix blender v2.79 collada exports loading
Daniel Salvadori 4 år sedan
förälder
incheckning
beaa4f65ca
1 ändrade filer med 10 tillägg och 1 borttagningar
  1. 10 1
      loader/collada/library_geometries.go

+ 10 - 1
loader/collada/library_geometries.go

@@ -327,7 +327,7 @@ func (d *Decoder) decMesh(start xml.StartElement, geom *Geometry) error {
 			continue
 		}
 		// Decodes polylist
-		if child.Name.Local == "polylist" {
+		if child.Name.Local == "polylist" || child.Name.Local == "triangles" {
 			err = d.decPolylist(child, mesh)
 			if err != nil {
 				return err
@@ -417,6 +417,15 @@ func (d *Decoder) decPolylist(start xml.StartElement, mesh *Mesh) error {
 	pl.Material = findAttrib(start, "material").Value
 	mesh.PrimitiveElements = append(mesh.PrimitiveElements, pl)
 
+	// blender exporter now (since v2.79) exports meshes as <Triangles> when all contained polygons are tris
+	// https://developer.blender.org/rBc9b95c28f64e9d7421b00cbf8ed4ecddd6471ae5
+	if start.Name.Local == "triangles" {
+		pl.Vcount = make([]int, pl.Count)
+		for i := range pl.Vcount {
+			pl.Vcount[i] = 3
+		}
+	}
+
 	for {
 		// Get next child
 		child, data, err := d.decNextChild(start)