Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

jme3-plugins fails to load UnicodeTest

Đang mở
#2,124 1 bình luận 0 reaction 0 người được giao Xem trên GitHub

Chưa có ai nhận issue này.

Đánh giá

Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức phù hợp với người mới
42/100
Loại issue
Lỗi
Độ rõ ràng
Khá rõ ràng
Mức độ hoạt động
Đình trệ
Công nghệ
java
Lĩnh vực
computer-graphics

Hướng nghiên cứu

Bắt đầu với GltfLoader.loadFromStream(), sau đó kiểm tra getBytes(), readData() và readBuffer() tại các vị trí trong stack trace. Tái hiện lỗi của UnicodeTest bằng TestGltfLoading trên Windows và so sánh với việc DesktopAssetManager tải cùng asset .bin đó. Hoàn tất khi glTF của UnicodeTest và asset nhị phân của nó được tải thành công trên Windows mà không bị hỏng đường dẫn.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

defect

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?

Ngôn ngữ chính
Java
Star
4.3k
Fork
1.2k
Merge trung bình
4 ngày 7 giờ
Pull request đã merge (30 ngày)
14

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của jMonkeyEngine/jmonkeyengine

Tất cả issue của jMonkeyEngine/jmonkeyengine

Issue tương tự

Thêm issue về Java

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.