Import animated model with normal maps

@Ali_RS Thanks for the hints.

Actually ogre is the only format which generates the tangents correctly. Using a custom defined material with the diffuse map and the normal map gives the correct results. What I have noticed from ogre exporter is that it would load only the first texture, so I exported only the normal map, using the custom material then helped to define both maps . The animations fail with an index out of bounds exception.

Error : Exception in Control, scene content removed.
java.lang.ArrayIndexOutOfBoundsException: -4

xBuf loads the animations correctly, but the tangents are not correct. I am using the SDK beta 2 version. I am pretty sure I am using the 0.9.1 version of the exporter, the only use case that I can think of right now is that the loader of jme3.1 is not at the same version or that it has a problem with mirrored UV’s.

@jayfella The stacktrace :

 java.lang.IllegalArgumentException: for uniform m_BoneMatrices: value cannot be null
    at com.jme3.shader.Uniform.setValue(Uniform.java:210)
    at com.jme3.material.Material.updateShaderMaterialParameters(Material.java:804)
    at com.jme3.material.Material.preload(Material.java:844)
    at com.jme3.renderer.RenderManager.preloadScene(RenderManager.java:665)
    at com.jme3.renderer.RenderManager.preloadScene(RenderManager.java:656)
    at com.jme3.renderer.RenderManager.preloadScene(RenderManager.java:656)
    at com.jme3.animation.SkeletonControl.testHardwareSupported(SkeletonControl.java:164)
    at com.jme3.animation.SkeletonControl.controlRender(SkeletonControl.java:281)
    at com.jme3.scene.control.AbstractControl.render(AbstractControl.java:135)
    at com.jme3.scene.Spatial.runControlRender(Spatial.java:756)
    at com.jme3.renderer.RenderManager.renderSubScene(RenderManager.java:723)
    at com.jme3.renderer.RenderManager.renderSubScene(RenderManager.java:733)
    at com.jme3.renderer.RenderManager.renderSubScene(RenderManager.java:733)
    at com.jme3.renderer.RenderManager.renderScene(RenderManager.java:712)
    at com.jme3.renderer.RenderManager.renderViewPort(RenderManager.java:1086)
    at com.jme3.renderer.RenderManager.render(RenderManager.java:1145)
    at com.jme3.gde.core.scene.SceneApplication.update(SceneApplication.java:321)
    at com.jme3.system.awt.AwtPanelsContext.updateInThread(AwtPanelsContext.java:194)
    at com.jme3.system.awt.AwtPanelsContext.access$100(AwtPanelsContext.java:44)
    at com.jme3.system.awt.AwtPanelsContext$AwtPanelsListener.update(AwtPanelsContext.java:68)
    at com.jme3.system.lwjgl.LwjglOffscreenBuffer.runLoop(LwjglOffscreenBuffer.java:125)
    at com.jme3.system.lwjgl.LwjglOffscreenBuffer.run(LwjglOffscreenBuffer.java:156)
    at java.lang.Thread.run(Thread.java:745)
1 Like