我正在尝试使用LWJGL3中的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不是以null结尾的。我还尝试了许多不同的文件,这些文件可以在其他软件中使用。有没有办法在加载模型时找出到底是什么失败了?
发布于 2017-04-29 08:14:07
我相信你必须使用aiImportFileFromMemory函数,aiImportFile方法是用来直接从文件加载的。
https://stackoverflow.com/questions/42353138
复制相似问题