解决Vuforia Sample中替换Image Target后Virtual Button不能准确改变茶壶颜色

在研究AR应用时,通过Vuforia的Image Target和Virtual Button实现名片识别后的3D茶壶模型互动。在替换Image Target为名片并添加虚拟按键后,发现茶壶颜色变化异常。问题出在虚拟按键位置位于名片的低对比度区域。遵循官方建议,调整虚拟按键位置至高对比度区域,成功解决了误触问题,实现了预期的交互效果。
摘要由CSDN通过智能技术生成

问题的来源是一个任务:调研AR,识别一张名片,弹出3D模型,最好有互动。由于我是AR新手,最好的途径就是修改官方的例子。名片算是平面图像,对应Vuforia就是ImageTarget,而最容易想到的互动就是加入虚拟按键。
查找官方Sample,发现Virtual Button的例子符合我需要的效果,即识别一张Image,然后在Image的上方中间渲染出一个3D模型(此为一把3D茶壶),并且在Image底部均匀的排列着4个button,手指移到这些button,改变茶壶的颜色(纹理)。我只需要将这个Image换成我的名片就好了。
待我将名片上传到TargetImage,并将生成Database下载解压之后放到程序中读取,在解压之后的xml中加入四个VirtualButton标签,指定虚拟按键的位置。所有的修改做完之后开始运行程序,发现能渲染出茶壶和按钮,但是当手指挡住按钮的大部分区域时,茶壶的颜色乱跳,难道程序没有检测到被按下的按钮吗?
带着这个疑问,我找到了检测按钮是否被按下的代码块:

public void renderFrame(State state, float[] projectionMatrix)
{
	...
	if (buttonResult.isPressed())
	{
   		 Log.i(LOGTAG, i + " is pressed, name is: " + button.getName());  // 在此加上log
   		 textureIndex = buttonIndex + 1;
	}
	...
}	

手指覆盖第一个button时,打印输出的log:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值