the .obj file in jmonkeyengine.com tutorial

Hi everyone :
I am new to graphics , I have been trying load a object created in 3Dmax 8.0to Java3D,. I exported it from 3Dmax as a .obj file ,but I couldn’t get the correct .mtl file which will
be needed . Does anyone know how to get a correct .mtl file. ?? The .mtl file I got is as below:

Max2Mtl Version 4.0 Mar 10th, 2001

EOF

which doesn’t work.

I tried to use the Loader in jme.jar to load the .obj exported from 3D max 8.0, it doesn’t work . But it works for the .obj in the example
from the jmonkeyengine.com tutorials .

which is shown as below :

  • Copyright © 2003-2006 jMonkeyEngine
  • All rights reserved.
  • Redistribution and use in source and binary forms, with or without
  • modification, are permitted provided that the following conditions are
  • met:
    • Redistributions of source code must retain the above copyright
  • notice, this list of conditions and the following disclaimer.
    • Redistributions in binary form must reproduce the above copyright
  • notice, this list of conditions and the following disclaimer in the
  • documentation and/or other materials provided with the distribution.
    • Neither the name of ‘jMonkeyEngine’ nor the names of its contributors
  • may be used to endorse or promote products derived from this software
  • without specific prior written permission.
  • THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
  • “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
  • TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
  • PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
  • CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
  • EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
  • PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
  • PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
  • LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
  • NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
  • SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    */

package jmetest.TutorialGuide;

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.net.URL;
import java.util.logging.Level;
import java.util.logging.Logger;

import com.jme.app.AbstractGame;
import com.jme.app.SimpleGame;
import com.jme.bounding.BoundingSphere;
import com.jme.scene.Node;
import com.jme.util.export.binary.BinaryImporter;
import com.jmex.model.converters.FormatConverter;
import com.jmex.model.converters.ObjToJme;

/**

  • Started Date: Jul 22, 2004

  • Demonstrates loading formats.

  • @author Jack Lindamood
    */
    public class HelloModelLoading extends SimpleGame {
    private static final Logger logger = Logger
    .getLogger(HelloModelLoading.class.getName());

    public static void main(String[] args) {
    HelloModelLoading app = new HelloModelLoading();
    app.setDialogBehaviour(AbstractGame.ALWAYS_SHOW_PROPS_DIALOG);
    // Turn the logger off so we can see the XML later on
    app.start();
    }

    protected void simpleInitGame() {
    // Point to a URL of my model
    URL model=HelloModelLoading.class.getClassLoader().getResource(“jmetest/data/model/maggie.obj”);

     // Create something to convert .obj format to .jme
     FormatConverter converter=new ObjToJme();
     // Point the converter to where it will find the .mtl file from
     converter.setProperty("mtllib",model);
    
     // This byte array will hold my .jme file
     ByteArrayOutputStream BO=new ByteArrayOutputStream();
     try {
         // Use the format converter to convert .obj to .jme
         converter.convert(model.openStream(), BO);
         Node maggie=(Node)BinaryImporter.getInstance().load(new ByteArrayInputStream(BO.toByteArray()));
         // shrink this baby down some
         maggie.setLocalScale(.1f);
         maggie.setModelBound(new BoundingSphere());
         maggie.updateModelBound();
         // Put her on the scene graph
         rootNode.attachChild(maggie);
     } catch (IOException e) {   // Just in case anything happens
         logger.logp(Level.SEVERE, this.getClass().toString(),
                 "simpleInitGame()", "Exception", e);
         System.exit(0);
     }
    

    }
    }

I changed “the jmetest/data/model/maggie.obj” to the .obj file exported from 3Dmax , it generates an error everytime I tried to run it.

Exception in game loop
java.lang.ClassCastException: com.jme.scene.TriMesh cannot be cast to com.jme.scene.Node
at jmetest.TutorialGuide.HelloModelLoading.simpleInitGame(HelloModelLoading.java:82)
at com.jme.app.BaseSimpleGame.initGame(BaseSimpleGame.java:503)
at com.jme.app.BaseGame.start(BaseGame.java:69)
at jmetest.TutorialGuide.HelloModelLoading.main(HelloModelLoading.java:65)
2007-3-16 11:24:29 com.jme.app.BaseSimpleGame cleanup

can anyone help? ???Many thanks

See responses here (cross post on jme forum).