Loader.loadOBJ Problem

Started by AGP, October 31, 2017, 08:33:08 PM

Previous topic - Next topic

AGP


System.out.println("\n\n\nWarcraft.loadObject: "+fileName +" Is the mtl null? "+(mtlFile==null));
System.out.println("Is loadOBJ(fileName, mtlFile) null? "+(Loader.loadOBJ(fileName, mtlFile, .5f)==null));


Produces:
Quote
Warcraft.loadObject: buildings\castle_construction0.obj Is the mtl null? false
Exception in thread "main" java.lang.NullPointerException
        at java.util.Hashtable.put(Unknown Source)
        at com.threed.jpct.Loader.loadOBJ(Loader.java:819)
        at com.threed.jpct.Loader.loadOBJ(Loader.java:508)
        at Warcraft.loadObject(Warcraft.java:250)
        at Worker.moveTowardsDest(Character.java:393)
        at Warcraft.loop(Warcraft.java:320)
        at Warcraft.<init>(Warcraft.java:163)
        at Warcraft.main(Warcraft.java:1058)

I've opened the file in Blender and it loads just fine.

EgonOlsen

mtlFile might be not null, but does the actual file exist? For desktop jPCT, it's best to set the Logger to ON_ERROR_THROW_EXCEPTION, so that it exists early. jPCT-AE already does this, the desktop version just doesn't for compatibility reasons. Maybe that reveals the actual problem.

AGP

Sorry for taking this long but this baffling bug discouraged me. The file exists.
This:

System.out.println("\n\n\nWarcraft.loadObject: "+fileName +" Is the mtl null? "+(mtlFile==null) +" Does the file exist? "+new File(fileName).exists());


Prints:
Quote
Warcraft.loadObject: buildings\castle_construction1.obj Is the mtl null? false Does the file exist? true

EgonOlsen

Can you post the content of the mtl-file? Looks like as if there's no actual material definition in there or it's done in a way that I've never encountered before.

AGP

As soon as you posted this, I re-exported for the hundredth time and, for reasons passing understanding, it worked. Just to let you know.