|
@@ -10,6 +10,7 @@ class HMDOut extends BaseLibrary {
|
|
|
var dataOut : haxe.io.BytesOutput;
|
|
|
var filePath : String;
|
|
|
var tmp = haxe.io.Bytes.alloc(4);
|
|
|
+ var midsSortRemap : Map<Int, Int>;
|
|
|
public var absoluteTexturePath : Bool;
|
|
|
public var optimizeSkin = true;
|
|
|
public var generateNormals = false;
|
|
@@ -455,7 +456,7 @@ class HMDOut extends BaseLibrary {
|
|
|
if( mats == null )
|
|
|
mid = 0;
|
|
|
else {
|
|
|
- mid = mats[matPos];
|
|
|
+ mid = midsSortRemap != null ? midsSortRemap.get(mats[matPos]) : mats[matPos];
|
|
|
if( mats.length > 1 ) matPos++;
|
|
|
}
|
|
|
var idx = ibufs[mid];
|
|
@@ -906,6 +907,13 @@ class HMDOut extends BaseLibrary {
|
|
|
model.skin = makeSkin(skin, o.skin);
|
|
|
}
|
|
|
|
|
|
+ // Reorder materials to unsure there are in the same order for lods
|
|
|
+ midsSortRemap = new Map<Int, Int>();
|
|
|
+ for (idx in 0...mids.length) {
|
|
|
+ midsSortRemap.set(idx, mids[idx]);
|
|
|
+ mids[idx] = idx;
|
|
|
+ }
|
|
|
+
|
|
|
var gdata = hgeom.get(g.getId());
|
|
|
if( gdata == null ) {
|
|
|
var geom =
|