-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Open
Labels
defectSomething that is supposed to work, but doesn't. Less severe than a "bug"Something that is supposed to work, but doesn't. Less severe than a "bug"
Description
I noticed a defect in GltfLoader while developing the MonkeyWrench library.
The test data is UnicodeTest from Khronos's glTF sample models.
The test passed on my desktop computer running Mint Linux.
On my laptop computer running Microsoft Windows 11, it failed with the following diagnostic:
com.jme3.asset.AssetLoadException: An error occurred loading Unicode??Test/glTF/Unicode??Test.gltf
I reproduced this behavior using the TestGltfLoading app with the following modifications:
assetManager.registerLocator("..\\..\\ext\\glTF-Sample-Models\\2.0", FileLocator.class);
//...
loadModel("Unicode\u2764\u267bTest/glTF/Unicode\u2764\u267bTest.gltf", new Vector3f(0, 1, 0), 1);
I then added e.printStackTrace();
in GltfLoader.loadFromStream()
and got the following stack trace:
Caused by: com.jme3.asset.AssetNotFoundException: Unicode??Test/glTF/Unicode�?�♻Binary.bin
at com.jme3.asset.DesktopAssetManager.loadAsset(DesktopAssetManager.java:387)
at com.jme3.scene.plugins.gltf.GltfLoader.getBytes(GltfLoader.java:607)
at com.jme3.scene.plugins.gltf.GltfLoader.readData(GltfLoader.java:584)
at com.jme3.scene.plugins.gltf.GltfLoader.readBuffer(GltfLoader.java:557)
at com.jme3.scene.plugins.gltf.GltfLoader$VertexBufferPopulator.populate(GltfLoader.java:1341)
at com.jme3.scene.plugins.gltf.GltfLoader$VertexBufferPopulator.populate(GltfLoader.java:1309)
at com.jme3.scene.plugins.gltf.GltfLoader.readAccessorData(GltfLoader.java:537)
at com.jme3.scene.plugins.gltf.GltfLoader.readMeshPrimitives(GltfLoader.java:384)
at com.jme3.scene.plugins.gltf.GltfLoader.readNode(GltfLoader.java:253)
at com.jme3.scene.plugins.gltf.GltfLoader.readChild(GltfLoader.java:302)
at com.jme3.scene.plugins.gltf.GltfLoader.readScenes(GltfLoader.java:219)
at com.jme3.scene.plugins.gltf.GltfLoader.loadFromStream(GltfLoader.java:155)
The issue isn't intrinsic to jme3-core since MonkeyWrench is able to open the same .bin asset using DesktopAssetManager
on Windows 11.
I'm unsure where the root cause lies. Perhaps GltfLoader.getBytes()
is decoding a URI that wasn't properly encoded to begin with?
Metadata
Metadata
Assignees
Labels
defectSomething that is supposed to work, but doesn't. Less severe than a "bug"Something that is supposed to work, but doesn't. Less severe than a "bug"