我正在尝试使用 LWJGL 3 中存在的 Assimp 绑定(bind)导入 Collada (.dae) 文件。情况如下:
InputStream = Class.class.getResourceAsStream(path);
byte[] bytes = IOUtils.toByteArray(getInputStream());
ByteBuffer byteBuffer = BufferUtils.createByteBuffer(bytes.length + 1);
byteBuffer.put(bytes);
byteBuffer.put((byte) 0);
byteBuffer.flip();
AIScene scene;
try {
scene = Assimp.aiImportFile(byteBuffer, Assimp.aiProcess_Triangulate);
} catch (IOException e) {
e.printStackTrace();
}
但是,scene
始终显示为 null
。 (IOUtils
来自 apache-commons-io,BufferUtils
来自 lwjgl。)
我添加了 byteBuffer.put(0)
部分,因为如果没有它,Assimp 调用将始终终止并抛出异常,表明字节缓冲区不是空终止的。我还尝试了许多可在其他软件中使用的不同文件。有没有办法找出加载模型时究竟失败的原因?
最佳答案
我相信您必须使用函数 aiImportFileFromMemory
来代替,aiImportFile
方法用于直接从文件加载。
关于java - 通过 LWJGL 绑定(bind)使用 Assimp 进行模型加载失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42353138/