我在Blender 2.69中创建了simple model of a barrel (.zip)。然后我在Blender中创建了一个UV贴图,并从中创建了一个UV贴图纹理(也在归档中)。然后我在Blender中导入了我的纹理,现在映射匹配:
在Blender中,模型到目前为止看起来很好:
通过使用我通过jmonkeyengine SDK安装的Ogre导出器插件,我导出了模型。结果是我的桶的OgreXML格式文件(我没有导出材料)。
现在,我试图将桶添加到我的世界:
this.barrel = this.assetManager.loadModel("models/barrel/Barrel.mesh.xml");
Material barrelMat = new Material(this.assetManager,
"Common/MatDefs/Light/Lighting.j3md");
barrelMat.setTexture("DiffuseMap",
this.assetManager.loadTexture("models/barrel/Barrel.jpg"));
barrelMat.setBoolean("UseMaterialColors", true);
barrelMat.setColor("Diffuse", ColorRGBA.White);
barrelMat.setColor("Specular", new ColorRGBA(0.3f, 0.1f, 0, 1));
barrelMat.setFloat("Shininess", 4f);
this.barrel.setMaterial(barrelMat);
this.rootNode.attachChild(this.barrel);
结果如下:
在设置UV贴图模型的纹理时,我还需要考虑其他事项吗?
答案 0 :(得分:2)
通常在将模型从Blender转移到像JME这样的东西时,纹理会颠倒过来。加载纹理的位置:
barrelMat.setTexture(“DiffuseMap”,
assetManager.loadTexture(“models/barrel/Barrel.jpg”));
而是使用loadTexture()方法的TextureKey形式并传递yFlip false,因为true是默认值。
assetManager.loadTexture(new TextureKey(“models/barrel/Barrel.jpg”, false));
这应该可以解决你的问题。
参考文献:
loadTexture():http://hub.jmonkeyengine.org/javadoc/com/jme3/asset/AssetManager.html#loadTexture(com.jme3.asset.TextureKey)