Metaio 改变几何纹理

Metaio Change Geometry Texture

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

谢谢

是的,您可以使用 IGeometry 对象的 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);
}