Metaio Change Geometry Texture

Я попытался загрузить 3D-модель с ее текстурой в metaio SDK. Но теперь у меня есть новый вызов:
Предположим, у меня есть 3D-модель автомобиля, я хочу загрузить ее в Metaio SDK и изменить цвет машины, когда пользователь нажимает на экран. Как это сделать? Вообще, какова связь между 3d моделью и ее текстурой? Можем ли мы иметь одну 3d-модель и несколько текстур для нее и связать их во время выполнения? Как?

Благодарю.

1 ответ

Решение

Да, вы можете иметь несколько текстур с помощью setTexture из IGeometry объект.

В зависимости от типа используемой модели текстура может быть сохранена в самой модели или в файле с тем же именем. Когда я попробовал несколько текстур, хранящихся в файле 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);
}
Другие вопросы по тегам