我试图在 metaio sdk 中加载一个带有纹理的 3D 模型。但是现在我有一个新的挑战:
假设我有一个 3D 汽车模型,我想将它加载到Metaio sdk 并在用户点击屏幕时改变汽车的颜色。怎么能这样做?一般来说,3d 模型与其纹理之间的关系是什么?我们可以有一个3d模型和多个纹理,并在运行时绑定它们吗?如何?
谢谢。
1 回答
2
是的,您可以通过使用对象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);
}
于 2015-07-07T07:57:34.797 回答