2015-01-09 9 views
0

Eclipse에서 JMonkeyEngine을 사용하고 있는데 모델을로드하는 데 문제가 있습니다.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를 메인 디렉토리로 옮긴다.

오류 I는 다음과 같습니다납니다 :

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

그래서 assets 폴더 내에 Models 폴더를 만들고 .obj를 해당 폴더로 이동했지만 여전히 작동하지 않는 방법을 시도했습니다. 나는 다른 obj로 시도해 보았다. (왜냐하면 실제로 내가 사용하고 있던 obj가 깨 졌기 때문이다.) 호기심에서 벗어나 JMonkeyEngine SDK 또는 다른 IDE에서 작업하고 있습니까? 또한 .blend 파일을로드 한 것을 보았습니다. JME는 .obj 파일을 .obj 파일처럼로드 할 수 있으므로 실제로 도움이됩니다. – MagnusCaligo

+0

@MagnusCaligo 아니오 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