gpt4 book ai didi

java - jme3 - UV 贴图错位在从 Blender 导出的模型上

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:25:51 25 4
gpt4 key购买 nike

我创建了一个 simple model of a barrel (.zip)在 blender 2.69 中。然后我在 Blender 中创建了一个 UV 贴图并从中制作了一个 UV 贴图纹理(它也在存档中)。然后我在 Blender 中导入我的纹理,现在映射匹配:

The mapping

在 Blender 中,模型到目前为止看起来还不错:

Model in 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);

结果是这样的:

The failed barrel image

在为我的 UV 映射模型设置纹理时,还有什么我必须考虑的吗?

最佳答案

通常将模型从 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));

这应该可以解决您的问题。

引用资料:

加载纹理():http://hub.jmonkeyengine.org/javadoc/com/jme3/asset/AssetManager.html#loadTexture(com.jme3.asset.TextureKey)

纹理键:http://hub.jmonkeyengine.org/javadoc/com/jme3/asset/TextureKey.html#TextureKey(java.lang.String,%20boolean)

关于java - jme3 - UV 贴图错位在从 Blender 导出的模型上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21565787/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com