Assimp通过LWJGL绑定模型加载失败

时间:2017-02-20 19:53:01

标签: java lwjgl assimp

我试图使用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不是以空值终止的。我还尝试了许多其他软件中使用的不同文件。有没有办法找出加载模型时究竟失败了什么?

1 个答案:

答案 0 :(得分:1)

我认为您必须使用函数aiImportFileFromMemory,而aiImportFile方法则直接从文件加载。