【问题标题】:JMonkeyEngine not loading modelsJMonkeyEngine 不加载模型
【发布时间】:2015-01-09 21:20:11
【问题描述】:

我在 Eclipse 中使用 JMonkeyEngine,但在加载模型时遇到问题。

@Override
    public void simpleInitApp() {    
        Spatial monkey = assetManager.loadModel("Monkey.obj"); //<---line 34
        Material mat_default = new Material( 
            assetManager, "Common/MatDefs/Misc/ShowNormals.j3md");
        monkey.setMaterial(mat_default);
        rootNode.attachChild(monkey);    
    }

我最初将文件放在“assets”文件夹中,但是经过一些研究,我发现assetManager 可以访问主项目目录,我认为它可能无法访问assets 文件夹,所以我暂时移动了 Monkey.obj到主目录。

我得到的错误如下所示:

Jan 09, 2015 1:10:14 PM com.jme3.system.JmeDesktopSystem initialize
INFO: Running on jMonkeyEngine 3.0.0 RC2
Jan 09, 2015 1:10:14 PM com.jme3.system.lwjgl.LwjglContext printContextInitInfo
INFO: Lwjgl 2.9.0 context running on thread LWJGL Renderer Thread
Jan 09, 2015 1:10:14 PM com.jme3.system.lwjgl.LwjglContext printContextInitInfo
INFO: Adapter: nvd3dumx,nvwgf2umx,nvwgf2umx
Jan 09, 2015 1:10:14 PM com.jme3.system.lwjgl.LwjglContext printContextInitInfo
INFO: Driver Version: 9.18.13.4709
Jan 09, 2015 1:10:14 PM com.jme3.system.lwjgl.LwjglContext printContextInitInfo
INFO: Vendor: NVIDIA Corporation
Jan 09, 2015 1:10:14 PM com.jme3.system.lwjgl.LwjglContext printContextInitInfo
INFO: OpenGL Version: 4.5.0 NVIDIA 347.09
Jan 09, 2015 1:10:14 PM com.jme3.system.lwjgl.LwjglContext printContextInitInfo
INFO: Renderer: GeForce GTX 770/PCIe/SSE2
Jan 09, 2015 1:10:14 PM com.jme3.system.lwjgl.LwjglContext printContextInitInfo
INFO: GLSL Ver: 4.50 NVIDIA
Jan 09, 2015 1:10:14 PM com.jme3.audio.lwjgl.LwjglAudioRenderer initInThread
INFO: Audio Device: OpenAL Soft
Jan 09, 2015 1:10:14 PM com.jme3.audio.lwjgl.LwjglAudioRenderer initInThread
INFO: Audio Vendor: OpenAL Community
Jan 09, 2015 1:10:14 PM com.jme3.audio.lwjgl.LwjglAudioRenderer initInThread
INFO: Audio Renderer: OpenAL Soft
Jan 09, 2015 1:10:14 PM com.jme3.audio.lwjgl.LwjglAudioRenderer initInThread
INFO: Audio Version: 1.1 ALSOFT 1.15.1
Jan 09, 2015 1:10:14 PM com.jme3.audio.lwjgl.LwjglAudioRenderer initInThread
INFO: AudioRenderer supports 64 channels
Jan 09, 2015 1:10:14 PM com.jme3.audio.lwjgl.LwjglAudioRenderer initInThread
INFO: Audio effect extension version: 1.0
Jan 09, 2015 1:10:14 PM com.jme3.audio.lwjgl.LwjglAudioRenderer initInThread
INFO: Audio max auxilary sends: 4
Jan 09, 2015 1:10:14 PM com.jme3.app.Application handleError
SEVERE: Uncaught exception thrown in Thread[LWJGL Renderer Thread,5,main]
com.jme3.asset.AssetNotFoundException: Monkey.obj
    at com.jme3.asset.DesktopAssetManager.loadAsset(DesktopAssetManager.java:283)
    at com.jme3.asset.DesktopAssetManager.loadModel(DesktopAssetManager.java:374)
    at com.jme3.asset.DesktopAssetManager.loadModel(DesktopAssetManager.java:378)
    at MainGame.Main.simpleInitApp(Main.java:34)
    at com.jme3.app.SimpleApplication.initialize(SimpleApplication.java:226)
    at com.jme3.system.lwjgl.LwjglAbstractDisplay.initInThread(LwjglAbstractDisplay.java:130)
    at com.jme3.system.lwjgl.LwjglAbstractDisplay.run(LwjglAbstractDisplay.java:207)
    at java.lang.Thread.run(Unknown Source)

我是否正确使用了资产管理器?

【问题讨论】:

    标签: java models jmonkeyengine


    【解决方案1】:

    我查看了 JME 源代码中引发异常的行,它肯定试图在该点定位您的资源但找不到它。很难诊断加载程序为什么找不到您的模型。我会说,在我的项目中,我的模型位于“assets/Models/”中,我使用以下方式加载它们:

    getAssetManager().loadModel("Models/items.blend");
    

    所以我认为他们需要在“资​​产”目录下。

    除此之外,我唯一的建议是在网上找到一些标准模型并尝试将它们存储在“资产”中并加载它们以确保读取目录或权限没有问题。

    【讨论】:

    • 所以我在 assets 文件夹中创建了一个 Models 文件夹并将 .obj 移动到该文件夹​​并尝试了您的方法,但是仍然没有用。我什至用不同的 obj 尝试过(因为我实际上发现我使用的 obj 坏了)。出于好奇,您是在使用 JMonkeyEngine SDK 还是在其他 IDE 中工作?我还看到你加载了一个 .blend 文件,JME 可以像 .obj 文件一样加载 .blend 文件,因为那真的很有帮助!
    • @MagnusCaligo 不,我没有使用 JME SDK。我想在我目前不支持的项目中使用 Java 8。我使用 NetBeans 8.0。是的,JME 可以加载搅拌机文件(有一些限制 - 检查文档)。不幸的是,很难知道你的问题是什么。我假设你已经听从了hub.jmonkeyengine.org/wiki/doku.php/jme3:advanced:asset_manager 中的建议?您能否确认您已完成“找不到资源”下的步骤?
    • 我点击了您的链接,它让我将 .obj 转换为 .j3o,但这仍然不起作用。接下来我要尝试的是在 SDK 中测试程序,看看它是否在那里工作。
    • 音频正常吗?你试过把它关掉吗?我注意到你有INFO: Audio max auxilary sends: 4,这是我在尝试播放音频文件时得到的,但它不起作用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-28
    • 2014-08-31
    • 2011-01-13
    • 1970-01-01
    • 1970-01-01
    • 2015-04-23
    相关资源
    最近更新 更多