3d Metaio更改几何体纹理

3d Metaio更改几何体纹理,3d,geometry,textures,metaio,3d,Geometry,Textures,Metaio,我尝试在metaio sdk中加载带有纹理的3D模型。但现在我有了一个新的挑战: 假设我有一个3D汽车模型,我想将其加载到sdk中,并在用户点击屏幕时更改汽车的颜色。 你怎么能这么做? 通常,三维模型与其纹理之间的关系是什么?我们可以为它提供一个单个3d模型和多个纹理,并在运行时绑定它们吗?怎么做? 谢谢。是的,通过使用igometry对象的setTexture,您可以拥有多重纹理 根据使用的模型类型,纹理可以存储在模型本身中,也可以存储在同名文件中。当我尝试在MDL文件中存储多个纹理时,它不起

我尝试在metaio sdk中加载带有纹理的3D模型。但现在我有了一个新的挑战:
假设我有一个3D汽车模型,我想将其加载到sdk中,并在用户点击屏幕时更改汽车的颜色。 你怎么能这么做? 通常,三维模型与其纹理之间的关系是什么?我们可以为它提供一个单个3d模型和多个纹理,并在运行时绑定它们吗?怎么做?


谢谢。

是的,通过使用
igometry
对象的
setTexture
,您可以拥有多重纹理

根据使用的模型类型,纹理可以存储在模型本身中,也可以存储在同名文件中。当我尝试在MDL文件中存储多个纹理时,它不起作用,我必须单独存储它们

您的代码如下所示:

@Override
protected void onGeometryTouched(IGeometry geometry) {
    MetaioDebug.log("Template.onGeometryTouched: " + geometry);

    geometry.setTexture(AssetsManager.getAssetPathAsFile(getApplicationContext(), "mytexture.png"));
}
要处理触摸,如果您还没有,您应该注册一个手势处理程序:

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    //other init code here...

    mGestureMask = GestureHandler.GESTURE_ALL;
    mGestureHandler = new GestureHandlerAndroid(metaioSDK, mGestureMask);
}

你是指metaio的android SDK吗?是的,Paizo。Metaio Android SDK 6。感谢您的回答。还有一个问题。如何将模型的纹理保存到一个png文件中?我的模型的每一面都应该有不同的纹理…你需要一个工具来实现这一点,对于我使用q2modeler的
mdl
文件,对于这种类型的模型,纹理是所有“面”的一个。我没有使用其他模型格式,因此我无法帮助您,如果您导出到OBJ或FBX,每个场景的多个纹理都是可以的,只要它们不是分层的,但每个材质只有一个纹理。我想您可以通过使用具有自己纹理的不同材质来实现这一点。