java - 通过 LWJGL 绑定(bind)使用 Assimp 进行模型加载失败

标签 java lwjgl assimp

我正在尝试使用 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/

相关文章:

java - 在 Java 中使用 Unsafe 写/读内存

java - 应用根路径

java - 异常 : java. lang.IndexOutOfBoundsException : Index: 0, 大小:0

java - 在不知道 key 的情况下解析 json

java - 如何解码ogg vorbis文件java?

java - 绑定(bind)着色器 - LWJGL 对象的不正确纹理

java - GLSL 中没有出现纹理的可能原因有哪些?

c++ - 无法在 OpenGl 上使用 AssImp 运行场景

java - LWJGL 的 Assimp 教程

opengl - glm四元数旋转合并