Model without texture

i’ve got a problem with the uv texture of a model:



Model in blender:





Model in JME3:





is there a way to solve this?

Make sure you check “Copy Textures” if you’re using the OgreXML Exporter. I’m creating textures in Blender using UV Meshes and unwrapping and I have to check it every time.

it was checked, and the texture is in the same foldeer as the model

Oh and I also need to rename the “Scene.material” in the exporter to the name of your model. It would be “Plane.material” in your case I think if that is the name you are saving the file as. Then right-click Plane.mesh.xml within jME SDK and “Convert to j3o” and then import the j3o to your game. I think directly importing the XML without converting works too but i always convert it.

no, the mesh and materials files namer are 'planet express.mesh.xmp and planet express.matirial

If you open your model in the jME SDK SceneViewer and click the lightbulb, do you see it’s texture?



Perhaps it bugs because of spaces in names. I don’t think it’s likely but export it as planetExpress or something just to be sure. I generally don’t use spaces in file names.

I’m having the same problem. I did everything I’m supposed to and it still doesn’t work, so I shoved it on the back burner for a while. Nice to see I’m not alone in this.

When you run Ogre Meshes export: (this is for single meshes… NOT scenes)


  1. Make sure you rename the .materials file to the same name as the Mesh you are exporting.
  2. Make sure that the script output shows that it wrote the material properly (i.e. you’ll see the texture name… such as…



    Begin writing materials:

    Material (or whatever the material was named)

    Done.



    ). If the material is not listed… it didn’t write the .materials file properly and you won’t see the material.



    Make sure you have the following files in the Models directory at least until you convert to j3o: (This is assuming that the mesh is named: myObject)



    myObject.mesh.xml

    myObject.material

    myObject.png (or whatever the name of the actual UV map is)



    and… if you have animated it–



    myObject.skeleton.xml



    Once you have each of these in an assets folder, right-click and convert to j3o.



    Right-click the j3o file and select View Model… you should see your model WITH the texture.



    –EXTRA–



    The textures as they are imported into jme3 via ogre3d are odd at best. I suggest creating the materials yourself and applying them post loading of the model as such:

    [java]

    Texture tex = assetManager.loadTexture(“Textures/someImage.png”);

    tex.setMinFilter(MinFilter.BilinearNoMipMaps);

    tex.setMagFilter(MagFilter.Bilinear);

    tex.setWrap(WrapMode.Repeat);



    Material mat = new Material(assetManager, “Common/MatDefs/Light/Lighting.j3md”);

    mat.setBoolean(“UseMaterialColors”, true);

    mat.setBoolean(“VertexLighting”, true);

    mat.setBoolean(“HighQuality”, true);

    mat.setFloat(“Shininess”, .5f);

    mat.setColor(“Ambient”, ColorRGBA.White);

    mat.setColor(“Diffuse”, ColorRGBA.White);

    mat.setColor(“Specular”, ColorRGBA.White);

    mat.setTexture(“DiffuseMap”, tex);

    mat.setTexture(“SpecularMap”, tex);

    mat.setTexture(“NormalMap”, tex);

    mat.getAdditionalRenderState().setFaceCullMode(cull);



    // Or whatever options you plan on using…



    Node n = (Node)assetManager.loadModel(“Models/someMesh.j3o”);

    n.setMaterial(mat);

    [/java]

that code isn’t working wel, but i was able to do it with a texture

screenshot:





how i’ve done this:

  • in JMP, go to tools > plugins
  • check wether the ‘directX support’ plugin is installed. if it isn’t installed, install it and enable it.
  • in blender, click the export button and select directX. This is a standard script, so it should be included with blender.
  • in JMP, right click on the model and select ‘convert to .j3o’.
  • put the texture in the same folder as the .j3o file.
  • open the .j3o file in the model viewer.
  • now you should see a model WITH texture.

Yeah… cull was a pointer… sorry bout that.