2015-01-09 2 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, который я использовал, был сломан). Просто из любопытства вы работаете в SDK JMonkeyEngine или в другой среде IDE? Также я увидел, что вы загрузили файл .blend, можете загружать JME файлы .blend так же, как файлы .obj, потому что это было бы очень полезно! – MagnusCaligo

+0

@MagnusCaligo no Я не использую JME SDK. Я хотел использовать Java 8 с моим проектом, который в настоящее время не поддерживается. Я использую NetBeans 8.0. Да JME может загружать файлы блендера (с некоторыми ограничениями - проверить doco). К сожалению, трудно понять, в чем проблема. Я полагаю, вы следовали совету в http://hub.jmonkeyengine.org/wiki/doku.php/jme3:advanced:asset_manager? Можете ли вы подтвердить, что сделали шаги в разделе «Невозможно найти ресурс»? – sprinter

+0

Я следил за вашей ссылкой, и мне пришлось преобразовать .obj в .j3o, однако это все еще не сработало. Следующее, что я собираюсь попробовать, это проверить программу в SDK, чтобы увидеть, работает ли она там. – MagnusCaligo

Смежные вопросы