检视移动设备的3D人机界面UI开发关键
移动设备在硬件技术持续升级趋势下,不只拥有几近桌上型电脑的运算资源,在硬件架构方面也有趋近于桌上型电脑系统的技术发展,而在有了硬件性能的奥援下,Realtime render的实时重绘3D效果得以实现于装置的人机界面应用,除硬件有能力做到3D UI外,在产品开发阶段还须注意哪些关键问题?
在移动设备的产品发展中,人机界面设计一向是极为重要的议题,尤其移动设备在使用情境、屏幕尺寸等操作环境限制下,使用者界面(User Interface;UI)的整体架构设计,有否注意到Use Flow便利性与使用者经验(User Experience;UE)思考,在近代的热门产品中已经获得验证,是左右产品能否热卖的重要关键。
观察近期的几款热卖产品,例如,Apple的iPhone,这款产品看起来似乎为iPod Touch加上无线通讯模块这麽简单的组合,但事实并非如此,在核心的电话应用中,iPhone利用iPod Touch原有的iOS系统基础,采取一致性的UI元素进行功能整合,同时将iOS触控操作的优势发挥极致,让整体的操作体验超越传统智能移动电话的表现。
观察iPhone的市场成功因素,除了在现有商品的UI呈现、UI Flow、User Experience...等关注的重要议题外,iOS本身即在系统层面整合OpenGL ES,透过SDK提供完整OpenGL ES API开发资源,让相关软件开发商得以用最短的学习曲线将OpenGL ES为基础的Realtime 3D render技术导入APP或特效,让移动设备的UI可以进化到Realtime 3D render应用水准。
分析iPhone的iOS Device成功模式会发现,让原有的操作界面获得最佳的Flow与设计,只是做好使用者界面的第一步,若还要达到让消费者眼睛为之一亮、进而萌生强烈购买的慾望,产品的第一印象或是应用体验,在应用端的UI设计中,就必须寻求更吸引人的方案,其中3D化的Realtime 3D render GUI(Graphical user interface)即是目前移动设备最热门的应用技术议题。
3D GUI的整合现况
在产品面,即便iPhone产品已经具备了开发3D GUI的有利条件,如硬件加速技术、完善的Open GL ES开发资源,但现况却是未能在iPhone UI见到大量的3D应用,反而仅有在APP转换或是多工切换,会看到iOS核心的3D GUI特效,而在APP的部分以iBook临摹实际书页的Page Flip、书店/书柜画面转换时,才能发现OpenGL ES的实践效果。
整合3D GUI的好处相当多,尤其是数码阅读的应用领域,几乎已被Amazon的EPD(Electronic Paper Display) Kindle阅读器抢占大半市场,后进的Apple iBook产品,想在这个产品类型有突破性的进展,就必须在技术整合方面有更亮眼的表现差异,例如EPD在彩色化与动态呈现方面的弱势,正好就是Apple iBook可以着力的切入点,而iBook也是第1套电子书APP整合Realtime 3D render技术Page Flip与书柜翻转3D特效的阅读软件。
iBook顺畅的3D翻页动画视觉效果,搭配超炫书店/书柜转换特效,让使用者立即体会到,有无3D功能实践,竟能让移动设备的应用体验有了全新感受,也让iBook软件一上APP Store就在电子阅读市场建立新的技术门槛,即便随后也有类似彩色化产品标榜具3D Page Flip效果,但似乎仅有iBook的印象能深植消费者心中。
事实上,多数产品开发者所面临的现况并不如iOS的APP开发这麽顺心,虽然iOS的应用程序发展平台,有硬件单一、一致性UI与特效环境资源丰富的开发优势,但实际的开发现场,开发者所面临的整合环境并非如此完善,若想在产品内整合前卫的3D GUI特色,就必需自行定义、开发相关功能组件,或是直接寻求可用的SDK来整合至产品中,用最少的资源进行功能需求方面的整合设计。
实践3D UI必备的硬件基础
就实践3D UI的方式来看,虽然在未有硬件加速奥援的前提下,透过软件或是仿3D实为2D画面处理的程序技术,也可达到类似3D的效果,但实际上3D GUI的开发需要在额外添加的动画特效不影响原有操作的前提下进行,而利用软件或是模拟式的3D技术,必须耗用大量的画面处理,增加了核心处理器的运算负荷,这在3~4寸的移动电话型态的小尺寸屏幕移动设备搭配一般性能不算差的处理器,或许还能得到高性能表现,但实际上此种作法也会让装置的电力大量消耗,影响产品的整体效能。
3D应用越来越热门,移动电话、平板电脑等产品,也在硬件方面尝试整合3D图形加速芯片,搭配系统的底层技术支持,让移动设备在呈现这些视觉效果的同时也能获益于硬件3D加速,让整体装置运算不致于过度集中于核心处理器,达到全面性的省电与效能平衡表现。
以目前的智能手机为例,大多选择采行相对省电的ARM处理器,建构嵌入式系统应用,其运作时脉往往达到1GHz或更高水准,而近来初发表的Android 3.0(Honeycomb)平板系统,检视其硬件规格亦相对亮眼,尤其在硬件3D图形加速的整合设计方面,亦回应市场对于嵌入式系统3D硬件运算资源的急迫需求。
像是ASUS的Eee Pad产品、Motorola XOOM等新一代Tablet平板装置,即具备dual-core NVIDIA Tegra 2双核处理器,该处理器亦提供3D加速引擎,可轻松因应大量的3D GUI系统开发需求。检视热门的Tegra嵌入式处理芯片,包含了APX与CSX两大产品线,其中APX是针对手机市场开发,CSX则是针对中、大型屏幕需求开发,如车载多媒体系统、MID、Tablet、Netbook等较大型设备,除了运作时脉差异外,Tegra系列在1080p影音解码、3D硬件加速已是基本功能。一般而言,Tegra与多数嵌入式应用处理器近似,包含CPU、绘图、多媒体运算、I/O、存储控制...等必备的基本能力,Tegra第1代采用ARM11核心、2代则是改采双核Cortex-A9核心。
最新的Tegra 2除运算用途的Cortex-A9核心外,显示核心乃为此代架构的关键重点,原1代架构的绘图核心是基于时脉为130MHz Geforce 6基础,为具两组pixel shader units、两组vertex shader units及两个texture mapping units(TMUs)。Tegra 2绘图核心与1代同为基于GeForce 6,但设计上藉由运作时脉提高,以强化Tegra 2的实际3D运算加速性能,而核心架构并未改变,主要是整体性能的全面提升为主,若当Tegra 2所整合的3D运算任务在核心无法达到需求时,也可透过CUDA技术提升整体3D效能。
发展3D GUI以强化产品使用体验
在发展3D GUI实务上,多数硬件开发业者会将产品开发重心过度聚焦于功能层面,例如,产品的硬件规格与功能、存储媒体的容量...等,却忽略了硬件装置的操作体验,而后者才是产品能否成功的关键。如何在简洁设计与功能丰富度之间取得平衡,在产品规格多数相近的市场环境下,往往成为产品胜出的要因。因此,产品外在的UI与使用者经验的整合,是产品开发前务必审慎考量的重点。
以移动电话为例,3D化的GUI可以让初次接触产品的消费者,在同质产品间进行比较时,会有显着的技术差异印象,但这是基于硬件效能可以奥援3D GUI的假设下才会有的情境,产品必须提供顺畅的GUI操作体验才能吸引消费者青睐。3D GUI的性能关键,在于UI引擎可充分应用硬件3D加速的效益,UI引擎整合如OpenGL ES的技术标准,让UI引擎的开发成果可以轻松转移到多款支持OpenGL ES加速的硬件装置。
评估性能表现,3D GUI的引擎核心,必须具备可高效运行的基础,先不论使用界面设计优劣,至少在功能展现方面必须达到与2D GUI近似的效能水准,尤其是执行功能项目后经1~2秒的动画展演,继而快速执行对应的程序,这部分可以透过建构相关特效展演的KPI(Key Performance Indicator)或自定义合理的Benchmark进行检核,让产品在整合3D特效后还能维持与2D图形界面近似的操作效率,避免做出整机运行效率低落或干扰操作的失败产品。
整合3D GUI必须考量效能表现问题
而能达到高效能的3D GUI表现水准,在软件技术方面,必须在UI引擎的开发采取更进阶、积极的开发手段,例如,采native C++或对系统资源更能掌握的程序语言,进行核心架构开发与最佳化设计,强化引擎对CPU/GPU的控制能力。观察3D UI引擎的关键效能指标,可从几个重点进行评估,例如,展演动态效果的Frame rate效能、GUI整合的便利性,与完善的引擎架构。
在动态效果的呈现水准方面,如果引擎性能不彰,没有尝试在引擎程序码方面进行最佳化设计,虽然3D引擎仍可实作出欲使用的3D执行效果,但却因为引擎性能拖累了动态展演的拟真水准,例如,出现画面迟滞或是贴图表现不佳...等问题,此类效能水准的观察指标,系在标准的硬件评估平台,可以达到多少的frame rate。
以SPB的UI Builder核心引擎为例,其画面的处理即可达到60 frame/sec,虽然肉眼不见得能识别30或60fps的表现差异,但若是在相同的参考硬件平台上,3D图形引擎都能办到60fps的Realtime 3D render,这表示即便是UI对应的操作应用会消耗部分系统效能,在3D特效展演方面也可以达到24~30fps水准,该UI即不会出现2D或3D GUI的视觉体验落差。
先前也有提过,强调3D GUI使用体验的产品,多半以移动设备居多,而这些产品又对电池性能有较多设计考量,在应用3D UI的同时,也必须针对电池应用的负荷进行评估,例如,开发阶段应分别就原有的2D UI与3D UI进行不同的电源使用现况测试与评估,虽然3D GUI因为会让硬件处理较多的影像材质渲染、贴图运算,相对影响其电源使用状况,但整合多少份量的3D化GUI设计元素会对电池用量有最轻微的影响,则必须透过大量测试与统计才能得到答案。延续前述的3D引擎设计重点,如果引擎核心能获得最佳化设计,则在导入3D UI时也会有较佳的能耗表现。
解决方案的UI/UE组件完整性 影响3D GUI整合弹性
在iOS的系统架构下,进行与OpenGL ES加速相关的视觉应用开发与实作时,必须透过程序进行开发整合,例如,工程师必须熟悉iOS下的3D技术,如应用iOS图形子系统核心基础的core animation,搭配呈现于前端的UIView,由core animation layer来支持呈现,再利用APP里的各式layer去更新Screen View的显示内容。基本上,iOS多是透过core animation进移动画呈现与图形合成。
在3D UI技术的处理方面,OpenGL ES也是core animation的用户,实际开发时若想使用OpenGL ES进行3D物件或UI创建,需建构1个UIView,而此UIView则由1个相对较特殊的core animation layer来支持(CAEAGLLayer),OpenGL ES和core animation则是透过CAEAGLLayer进行联系,最终CAEAGLLayer的内容再与其他呈现数据整合后显现于Screen View。观察iOS平台下的APP 3D GUI整合,经常会遇到多数的UI/UE组件,除非是寻找现成的解决方案直接套用,否则若都由工程师自行开发,在实务上会有产能方面的限制。
一个常见的情况是,不同的专案会面临3D GUI的整合需求,每个专案的3D GUI是否都要从无到有的进行开发?显然,这种作法将增加开发成本,亦可能无法因应实时上市的需求。比较好的开发方式是寻求可行的3D GUI解决方案,以之进行商品整合。以SPB UI Builder以及SPB UI Engine为例,即可因应不同移动设备平台,提供一套快速导入设计的3D人机界面解决方案。
在开发阶段可利用3D UI引擎相对完整的UI/UE组件架构,采行便捷的整合方式让相关应用拥有3D人机界面,快速达成专案目标。而在考量导入3D引擎进行产品开发之前,先期的技术评估也要厘清不少问题,例如,该3D UI引擎是否提供Windows CE、Symbian、MeeGo、Android...等不同平台的移植弹性,或者其引擎核心能否针对跨平台的设计提供更完善的应用支持等等。
重视测试与性能调校 提升整体GUI应用效能
在产品的原型设计阶段,并非所有可互动机制都必须完全保留,若某一种设计方式并无益于可用性,则该在原型测试阶段就把它取消或简化,例如会影响性能的3D动画,可试着减少其播放长度或画面精细度。在产品原型阶段就剔除无意义的互动机制,可使移动设备的操作界面更为简洁精练,又能同时强化UI的视觉效果。
然而,在有开发时间压力的限制下,我们在原型测试阶段可能没有太多可供验证的资源进行评估,碍于成本,往往采取功能段于模拟器下进行效能验证的替代方案,但模拟器也是运行于PC或其他运算平台上,基本上仍难达到真实验证效果,结果仅能供作前期开发的参考,对实际GUI界面调校也有一定助益。未来智能手机界面发展会看到越来越多触控整合3D视觉的操作方式出现,目前已有大量APP朝向3D GUI发展,不过,使用者界面的实用性(Usability)仍是影响产品好坏的关键因素,3D化只是让产品更抢眼的设计策略之一,GUI终究要回归实用性,并以方便操作(easy-to-use)为最基本的设计原则。