我试图使用LWJGL 3中的Assimp绑定导入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调用总是会终止抛出一个异常,说bytebuffer不是以空值终止的。我还尝试了许多其他软件中使用的不同文件。有没有办法找出加载模型时究竟失败了什么?
答案 0 :(得分:1)
我认为您必须使用函数aiImportFileFromMemory
,而aiImportFile
方法则直接从文件加载。