2015-01-09 56 views
0

我使用JMonkeyEngine 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);  
    } 

我本來在「資產」文件夾中的文件,但是經過一番研究,我發現,assetManager訪問的主要項目目錄,我想,也許它不能訪問的資產文件夾,從而代替我暫時搬到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) 

我是否正確使用assetManager?

回答

0

我看了一下,其中的例外是在JME源拋出的線,它肯定是想在這一點上找到您的資源並不能找到它。診斷爲什麼加載程序不能找到你的模型是相當困難的。我會說,在我的項目我的模型是「資產/型號/」我用加載它們:

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

所以我認爲他們需要的「資產」目錄下。除此之外

我唯一的建議是在網絡上找到一些標準模型,並嘗試將它們存儲在「資產」並加載它們,以確保有沒有與閱讀目錄或權限的問題。

+0

因此,我創建了資產的文件夾內的文件夾模式和移動.OBJ到該文件夾​​,但想你的方法,它仍然沒有奏效。我甚至嘗試過用不同的obj(因爲我實際上發現我使用的obj被破壞了)。出於好奇,您是在JMonkeyEngine SDK還是在其他IDE中工作?此外,我看到你加載的文件.blend,可以JME負荷.blend文件,就像.obj文件,因爲這將是非常有益的! – MagnusCaligo 2015-01-10 13:15:35

+0

@MagnusCaligo不,我沒有使用JME SDK。我想使用Java 8與我當前不支持的項目。我使用NetBeans 8.0。是的,JME可以加載攪拌器文件(有一些限制 - 檢查doco)。不幸的是,很難知道你的問題是什麼。我想你已經遵循http://hub.jmonkeyengine.org/wiki/doku.php/jme3:advanced:asset_manager的建議?你能否確認你已經完成了'無法找到資源?'的步驟? – sprinter 2015-01-10 22:49:19

+0

我跟着你的鏈接,它讓我把.obj轉換成.j3o,但是這仍然不起作用。接下來我要嘗試的是測試SDK中的程序,看它是否在那裏工作。 – MagnusCaligo 2015-01-11 05:17:59