原文地址:http://www.52rd.com/S_TXT/2012_4/TXT35454.htm
如今, 消费电子用户通常希望液晶显示屏的用户界面包含3D元素。自最初的3D界面上市以来,消费者们已习惯了看到有纵深且能够旋转的物体,以及能在屏幕上移动来显示更多选项的菜单。iPad、iTouch和Android设备就是最好例证。成千上万的液晶显示驱动消费类设备都以具备3D功能作为核心的用户界面技术。
3D优于2D的原因显而易见。从清晰度来看,2D图像就像一张照片,只有宽度和高度,没有深度。一辆车的2D图像可以旋转、缩放,在屏幕上做二维(‘x’和‘y’)移动(转换)。而3D图像可以做三维(‘x’、‘y’和 ‘z’)的旋转、缩放和转换。3D物体有深度,是全视角的。这是基于人对空间和物体的认知,3D可使人们获得更直观和互动的体验。有效的3D图像让消费者享受视觉盛宴,帮助定义产品的风格和价值,并传递大量的信息。
生成3D图像需要复杂精尖的图像显示控制器(GDC),而它又需要一个几何单元和结构处理单元。将这些元素整合到一个图像引擎中可提供最佳性能,如图一所示。
图1:图像SoC集成。
作为该技术的领先者,富士通在嵌入式图像市场已活跃了十多年,而涉足图像领域已近二十年,它设计、开发并帮助客户集成领先的2D和3D 图像显示控制器。因此,让我们回顾一下这些强大而创新器件的基本原理。
当前,许多最好的图像控制器对2D和3D图像都能驾驭。但在许多情况下,系统设计者并没有充分利用已有的3D功能,而这一功能可以给终端用户带来许多益处。例如,在汽车应用中,驾驶者想要了解泄气的车胎或不亮的车灯的情况。应用2D技术就要求具备许多预置图像,以此来突出所有可能的角度和情况。加之“车门或后备箱微开”的情况,就需要数百兆字节的预置2D图像(图2)。
图2:显示旋转的2D图像(还需几百个图像来显示完整的旋转动作)。
图3:3D图像——单一物体可以旋转至任何角度,缩放至任意大小,突出任意部位(轮胎、车灯、车门等等)。
而有了3D技术,所有这些及更多要求只需不到一兆字节的图像和几何数据就可轻松搞定。
3D物体的工作原理
3D物体由三角形“网格”构成,这些三角形勾勒出物体具体的形状。物体越具体详细,所需的三角形也就越多(图4)。构成物体形状的三角形数量依所需物体显现的真实度而异。
图4:一款福特汽车的多边形网格。
每个多边形都有三个顶点,每个顶点都在“模型空间”中有“x”、“ y” 和“ z”坐标。这些顶点通常表示为一系列的浮点数。整个模型完全由这些浮点数构成,这些浮点数组成了模型的顶点数组。
下一步是对模型进行“阴影处理”或“纹理绘制”,以使其看起来更像实物。阴影处理的过程其实就是简单地为每个三角形填色。可对三角形进行单色阴影处理——即只在三角形中填充一种灰度或颜色;也可以进行高氏阴影处理——即基于每一个顶点的颜色来填充渐变色(图5)。
图5:3D物体网格图、单色阴影处理图和高氏阴影处理图。
要使物体看起来更真实,就要添加其它复杂的效果。含有阴影处理器引擎的图像显示控制器可以实现包括水、烟、火和反射性表面属性等其它效果。
应用纹理绘图的过程与给塑料模型印花来增加真实度相似。像印花一样,纹理绘图使网格状的框架变成一个更逼真的图像。纹理绘图是一个由多个独立小图像构成的2D方形图,这些小图被放置在多边形网格的特定位置。一个叫UV图的表格指定了这些位置,该图包括了纹理绘图中每一个“印花”的坐标(图6)。
图6:一款福特汽车的UV图。
纹理绘图一旦应用于多边形网格,就可以建立起一个完整的3D模型,既有深度,也可以旋转、缩放及随三轴(x、y、z)转换。在应用了纹理绘图以及图像处理器处理了顶点和纹理绘图数据之后,你即可看到如图七所示的完整的3D模型。
图7:福特汽车完整3D模型。
通过使用图像芯片的几何引擎,这一模型现在可以任何方式进行动画模拟、从任何角度进行位置摆放。只要拥有3D模型(多边形网格和纹理绘图),无需提供任何其它数据,你就能全方位地展示3D模型。通过沿着3D模型的三个轴进行缩放、旋转和转换,你可以获得无限量的图像数据。正如之前指出的,无需昂贵的闪存或系统存储器,你就可呈现车胎数据、故障的车灯和车门状况等任意数量的信息和提示。
富士通的“Jade”和“Emerald”是经过验证、具有复杂3D功能和领先的图像显示属性的图像显示控制器的样板。MB86R0x Jade系列图像显示控制器被用于多种汽车和工业应用。MB86R1x Emerald系列图像显示控制器则可让开发者有能力实现未来更雄心勃勃和复杂的3D应用。
充分发挥优势
然而,在很多情况下,现有的应用并未充分使用Jade的3D功能。这就太可惜了,因为3D技术可以在现有的平台上实现更加复杂的图像功能,只需更改软件即可。换句话说,汽车厂商、游戏开发者和其他消费类电子公司可为现有的设计注入新鲜血液,而这并不需要花费额外的硬件工程费用,因为拥有这一功能的硬件和显示已经存在。
那么,使用这一功能需要什么呢?就Jade而言,只是去使用现有的3D软件库就万事大吉。为使过程更为便捷,Jade助手库(Quantum)在富士通提供的图像库(V03)(图8和图9)中,帮助完成建立几何和纹理绘制所需的绝大多数艰巨工作。而Emerald则使用类似于OpenGL ES 2.0的图库。
图8:使用Quantum进行3D处理。
图9:Quantum 3D引擎。
Jade和Emerald在其核心部位为3D运行提供了巨大支持。这些图像显示控制器的图像功能中,至少有一半与3D技术相关,包括:
3D 基本要素——点、线、线带、三角、三角带、三角扇、任意多边形
防失真
高氏阴影处理、单色阴影处理
纹理绘图——过滤、透视校正、混合模式、alpha颜色混合及遮盖技术
几何处理——MVP变换、裁剪、筛选、视见区转换
Z-缓冲——消除隐藏面
多边绘图标志缓冲器
OpenGL ES 2.0——可兼容阴影处理器引擎(只限Emerald)
3D引擎可以像处理3D图像那样,轻易、优雅地处理2D图像。当你将上述3D引擎的功能添加到2D图像中,就可以获得不同凡响的效果。
例如,如果使用常规的2D技术,图十中树叶图像估计会消耗100MB的闪存。这当然大大超过了许多系统的合理存储量预算和规范,特别是对于单一图像功能而言。如果加入更多的图像功能——假设每种功能所需的空间大小相似——就需要数百兆的闪存空间才能实现所要的图像。通过使用3D引擎来完成缩放、旋转和转换任务,取决于所选的颜色深度等因素,我们就可以将存储要求降低到8MB或更少。
这是通过如下方式实现的:为树叶的每一状态生成一幅图像;让3D引擎来处理旋转和缩放;然后用2D引擎来呈现图像(图11)。
图10:3D动画树叶的自动化仪表盘。
图11:树叶图像:Jade 前后旋转和缩放。
3D通过其它方式来改进用户界面开发,例如:
要求小得多的内存空间
支持加速的旋转、缩放和转换
简化图像资产的增加或更改,以及
支持简单的迁移路径
更小的存储空间
如前所述,3D单元缩放、旋转和转换物体的能力使开发者需要存储的图像数量少得多。3D技术可向用户呈现更多信息,但对系统存储器(DDR)和非易失性存储器(NOR/NAND闪存)需求产生的影响甚微。
树叶的例子说明,使用3D图像引擎来缩放、旋转和转换从NOR闪存中获得的2D图像,就可以有数千个可能的图像。
使用八位色时,就可能改变动态物体的颜色,并产生诸如在两种颜色间有褪色这种强大的色差效果。使用3D单元,可对黑白图像进行着色处理,以实现几千种可能的颜色。通过在已完成的图像上使用2D引擎,你还可以增加临位效应(alpha effect)(透明),并提供数以千计的其它图像效果。
具体来说,可以对2D图像元素实施如下操作:
大小缩放——包括使物体变宽或变窄的非线性缩放
如果使用的是高氏阴影处理而非单色阴影处理,可以实现单一或多种色彩
旋转到任一角度,或
上述操作的任意同时组合
例如,假设我们以单个2D图像(图12)开始,其未压缩和压缩格式分别占32K或3K的存储器。
图12:2D树叶图像。
我们可以轻松地将这个单一图像客体转换成一系列可以从多角度、多方位呈现的图像客体(图13)。一旦3D引擎被用来处理2D图像素材,那么将单一图像物体有用性最大化的能力会成指数增长。
图13:3D树叶状态。
电脑图像的关键之一是时间。必须以最快的速度把图像素材收集起来并送到液晶显示面板,否则用户就会注意到图像的绘制过程。这一速率就是通常说的“帧频”。
实现成功帧频的关键是穷尽图像处理器的所有能力,在预算时间内,使图像尽可能逼真。虽然其它因素也在发挥作用,但我们一直不懈地地追求液晶显示面板的帧频指标,以保证图像的流畅呈现。
在每秒60帧(液晶显示面板的通用刷新率)的情况下,我们只有16.66毫秒(千分之一秒)来绘制希望用户看到的一切。图像控制器需要几项重要的硬件功能以编绘一幅场景(例如,一个具备升级的仪表和图像元素的完整仪表板——图14)、将图像元素转换成所需的图像并且保证时间预算。Jade具备这些功能或模块。
图14:带有仪表和图像元素的3D仪表样板。
例如,在Jade的图像子系统的核心有四个关键硬件加速器,它们支持实现强大且极快的硬件旋转、缩放、转换和图像呈现。这四个模块如图十五所示。各模块并行工作,实现了极速的图像性能。
当前一些汽车的集成表盘只使用这四个模块中的两个9(2D单元和显示控制器)。另外两个是默认禁用的。使用3D几何单元和纹理处理单元可以为终端用户带来更赏心悦目的图像体验。
随时增加或改变动态图像素材
当为系统添加图像素材时,图像素材特性通常会变身为部分底层源代码。当使用3D引擎来处理2D图像时,只需简单地替换系统中的现有素材,而无需更改其它。
总之,当2D图像素材被应用于3D环境时,纹理图子系统的规则要求:在x和y轴,纹理图必须是2的幂(例如, 32 x 32, 128 x 128, 256 x 256, 或 512 x 512像素)。尽管Jade子系统中纹理图的绝对极限是4096x 4096,但使用像128 x 128 或 256 x 256这样合理尺寸的图则更普遍和有效。(一个宝贵的经验法则是:根据视觉需要确定纹理图的大小。)
例如,考虑一幅采用128x 128像素纹理图的图像。无需改变任何代码,我们就能完全改变树叶的外观,或彻底将其变成其它物体,而代码将继续正常工作。这就允许开发者在不干扰编码流程的条件下,随时对图像进行重要的艺术再创作。
在某一时刻,艺术工作室可以选择为现有的用户界面模板创建3D物体,而不是完全重新创作。如果3D引擎被用来处理以前用户界面的2D图像元素,那么支持这些代替现有2D元素的新3D物体要相对简单。这是因为处理这些图像的过程和库调用几乎一样,只需增加深度轴即可让物体达到真正的3D效果。
3D带给艺术工作室的诸多可能性值得深究,因为3D可以为众多产品增色。使用3D用户界面的主要障碍来自于对整个设计周期中应用该界面存在困难的担忧。采用富士通的图像显示控制器,就解决了这一问题。一旦艺术工作室和开发人员知道如何将2D物体转化为3D物体,他们就开启了全新的、精尖的图像选择的新世界。
为2D物体采用3D引擎的最大困难是无限的图像可能。解决之道就是明确如何最大程度地发挥可用功能的作用。
3D如何提升终端用户的体验
举例也许是最能展示3D图像对终端用户价值的方式。
在消费类电子产品领域,如苹果公司引领的3D元素(例如封面流、应用流和滚选图标)在很大程度上依赖3D技术。没有这些3D元素,就几乎不可能传送这数以千计的信息节点(如iPod上的歌),用户需要3D进行快速分类和筛选。采用3D界面技术,在有限空间里为用户提供成千上万的选择就变得很实用(图17)。
图15:Jade图像子系统。
图16:2D与3D的差别简示。
图17:3D流媒体概念
另一个例子是汽车仪表板。标准的汽车模拟仪表板(图18)所提供的信息有限。仪表板上的每一个物理位置只能传达一则信息(如燃油量)。
2D图像仪表板(图19)传达更多信息,但缺乏深度观感。尽管从其传达的信息来看,已是对模拟仪表板的巨大改进,但是添加3D元素仍会带来显著提升。
图18:标准的模拟汽车仪表板。
图19:2D图像仪表板。
2D/3D 图像仪表板(图20)在液晶显示屏的左右侧引入了3D元素。
图20:2D/3D 图像仪表板。
左侧的汽车图像可被旋转任意角度,且可提供以下信息:
轮胎压力
车内温度
车外温度
燃油量
车门、后备箱或引擎盖的开闭状态
特定的转向信号、前车灯和故障车灯
右侧的地球仪形状的3D图像可以显示:
每加仑油的行驶里程
指南针的方位
路线导航指南
谷歌地球类形状的下载(flydown)
使用2D技术的仪表板的中央仪表提供了大量信息,它是由3D引擎完成缩放、旋转等处理的。中央集成表盘(图21)也在屏幕左右侧展示了3D元素,而屏幕中央则以2D/3D元素为特色。这一1280x480分辨度的12.3英寸显示屏是采用Jade处理器设计的。
图21:2D/3D的中央集成表盘概念。
尽管上述的大多数例子都是关于汽车应用的,但是3D技术可广泛应用于其它工业和消费类产品,如游戏、信息终端、培训、航天和医疗设备。其中一项特别的创新应用是在冰箱上,3D图像提供了一整套可帮助用户完成一系列任务的互动功能,从使用制冰机来调节冰箱温度到确保冷藏室门已关严。
随着设计者和开放者能更加舒适、自信和创造性地使用3D图像,这些创新的实现指日可待。