Ошибка загрузки модели с помощью Assimp через привязки LWJGL

Я пытаюсь импортировать файлы Collada (.dae), используя привязки Assimp, присутствующие в LWJGL 3. Это происходит следующим образом:

    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 всегда завершался бы выдачей исключения, говорящего, что байтовый буфер не завершается нулем. Я также пробовал много разных файлов, которые работают в другом программном обеспечении. Есть ли способ узнать, что именно не удалось при загрузке модели?


person JKunstwald    schedule 20.02.2017    source источник


Ответы (1)


Я считаю, что вместо этого вам нужно использовать функцию aiImportFileFromMemory, метод aiImportFile предназначен для загрузки непосредственно из файла.

person pdid    schedule 29.04.2017