iOS 解决 PanoramaGL 缩放 问题

释放双眼,带上耳机,听听看~!

最近需要做个全景视图的项目,于是找到了PanoramaGL开源库,结果发现有个缩放问题。
四个标签,第一个可以缩放 换一个cube或者sphere 、cylinder就不能正常缩放了,然后切换回第一个也不能正常缩放。
网上很多人也发现了这个问题,不知道大家解决没有,这里我修复了下,可以解决问题,大家一起看看。

问题定位路线如下:

1、PLViewBase类的 -(BOOL)calculateFov:(NSSet*)touches,因为是触摸出发缩放,所以开始先想到触摸事件,然后找到了触摸关联FOV的函数。该函数OK。

2、继续向下:进入PLCamera的 -(void)addFovWithDistance:(float)distance;再次log,单步,发现入参没问题,self.fov 这个变量同时其他地方没有呗修改,可以却很诡异的在切换不同全景后,缩放不是最大值1.000,就是最小值-0.20000。

3、怀疑fovSensitivity这个变量出的问题,最后发现是它在每次PLCamera初始话时,就会被付给默认值。而我们在PLView中的setPanorama函数里调用render时会根据render是否存在,分别调用start或者resizeFromLayer,问题就在resizeFromLayer里每次会根据view的宽高来设置fovSensitivity,那么问题就很清楚了,每次程序启动时,它才会被正确赋值,而其他切换tab时,调用的是start函数,fovSensitivity是默认值。

最后我们在在 PLRender.m 中的 start 方法里面 修改render的start函数,加入
if(scene.currentCamera.fovSensitivity==kDefaultFovSensitivity)
{

scene.currentCamera.fovSensitivity=(aspect>=1.0f?backingWidth:backingHeight)*10.0f;

}

人已赞赏
iOS文章

iOS延迟启动图并且控制他的消失

2019-9-20 10:44:11

iOS文章

iOS-id_rsa.pub如何查看

2019-9-20 11:50:30

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
有新消息 消息中心
搜索