我尝试在metaio中加载一个具有其纹理的3D模型。但现在我有了一个新的挑战:
假设我有一个3D汽车模型,我希望在梅太奥 sdk中加载它,并在用户点击屏幕时改变汽车的颜色。怎么能做到呢?一般来说,三维模型和它的纹理之间有什么关系?我们可以为它建立一个单一 3d模型和多个纹理,并在运行时绑定它们吗?多么?
谢谢。
发布于 2015-07-07 07:57:34
是的,通过使用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);
}https://stackoverflow.com/questions/31228782
复制相似问题