Textures on 3ds model

Hello



I now that this topic has been written many times but solution that i found on forum don't work for me.



i have file in format *.3ds i convert it and write in cache folder. But my textures dosn't work.

after conversion i do:



rootNode.attacheChild(model) ;



maybe i need set a renderer state or ??

to conversion I use code from  this forum:


     public static Node getModel3ds(File file) {
      FormatConverter converter = new ObjToJme();
      String fileN = file.getPath() ;
       String format = fileN.substring(fileN.lastIndexOf(".") + 1, fileN.length());

           if(format.equalsIgnoreCase("3ds")) {
             converter = new MaxToJme();

          } else if(format.equalsIgnoreCase("md2")) {
             converter = new Md2ToJme();

          } else if(format.equalsIgnoreCase("md3")) {
             converter = new Md3ToJme();

          } else if(format.equalsIgnoreCase("ms3d")) {
             converter = new MilkToJme();

          } else if(format.equalsIgnoreCase("ase")) {
             converter = new AseToJme();

          } else if(format.equalsIgnoreCase("obj")) {
             converter = new ObjToJme();

          }



      Node model = new Node();
      ByteArrayOutputStream bo = new ByteArrayOutputStream();
      File input = new File("D:/java_program/pierwsza gra/build/classes/models/cache/"+file.getName() + ".jme");

      // check if there is a cached jme format model for the requested file
      if(input.isFile()) {

         try {

            ResourceLocatorTool.addResourceLocator(ResourceLocatorTool.TYPE_TEXTURE,
            new SimpleResourceLocator(file.getParentFile().toURI()));

            if(BinaryImporter.getInstance().load(input).getClassTag().getName().equals("com.jme.scene.Node")){
               model = (Node)BinaryImporter.getInstance().load(input);
            }else {
               TriMesh tm = (TriMesh) BinaryImporter.getInstance().load(input);
               tm.setName("childNode") ;
               model.attachChild(tm);
            }

            ResourceLocatorTool.removeResourceLocator(ResourceLocatorTool.TYPE_TEXTURE,
                  new SimpleResourceLocator(file.getParentFile().toURI()));

            return model;
         } catch(IOException e) {
            e.printStackTrace();
         }

      }

      // no cached model found -> convert the 3ds file and cache it
      try {
         ResourceLocatorTool.addResourceLocator(ResourceLocatorTool.TYPE_TEXTURE,new SimpleResourceLocator(file.getParentFile().toURI()));
         converter.convert(new FileInputStream(file), bo);

         if(BinaryImporter.getInstance().load(new ByteArrayInputStream(bo.toByteArray())).getClassTag().getName().equals("com.jme.scene.Node")){
            model =(Node) BinaryImporter.getInstance().load(new ByteArrayInputStream(bo.toByteArray()));
         }else {
            TriMesh tm = (TriMesh)BinaryImporter.getInstance().load(new ByteArrayInputStream(bo.toByteArray()));
            tm.setName("childNode") ;
            model.attachChild(tm);
         }

         bo.writeTo(new FileOutputStream("D:/java_program/pierwsza gra/build/classes/models/cache/"+file.getName()+".jme"));

         ResourceLocatorTool.removeResourceLocator(ResourceLocatorTool.TYPE_TEXTURE,
            new SimpleResourceLocator(file.getParentFile().toURI()));

      } catch(IOException e) {
         e.printStackTrace();
      }

      return model;
   }

Make sure your model has UV (texture) coordinates and that they are exported w/ the model…