水体魔术棒人机交互和批处理相比,特点是需要实时响应。如果单纯用批处理的做法移植,会出现等待时间较长。因此,改进方式就是利用计算机图形学中的LOD技术(LEVEL OF DETAIL,细节层次)。距离越近,物体越大,细节越明显。
具体实施方式是,
1,重采样。由于Pie是二维的,不存在影像与视点距离的关系,可以从另外一个角度考虑:影像占用的设备坐标越多,可认为视点与影像越近。因此,距离比例=影像所占设备坐标数/视口所占设备坐标数。固定重采样比例 = 视口大小/影像大小。由于人机交互中,越近需要的细节越明显。因此总的采样比例= 距离比例*固定重采样比例(可以乘以一个系数调节)。
2,裁剪。借鉴图层魔术棒中,只处理视口内的数据。因此,大大提高速度。
3,预处理。在点击时开启线程,根据不同的层次级别分别重采样写缓存。如果不提前做预处理的话,层次越多,需要的重采样影像越多,耗费时间且意义不大。根据四叉树原理,级别N = log2(总的采样比例),可以进行以0.5的N次方进行重采样。预处理环节可以在点击时,或者开启水体魔术棒功能时,或者运行之前进行。