在汽车仪表盘中使用高级图形功能
应用实例的复杂度是不同的。原因有以下几个。
● 屏幕尺寸:各种屏幕尺寸导致生成的像素也有很大的差异。对于目前市场上已有的或正在开发的解决方案,每个帧需要处理的像素范围为75k像素到1.3M像素。
● 动画频率:只要显示快速的移动,就必须提供一个较高的动画频率。一个重要的用例就是速度计或转速表中的量程指针。
● 场景复杂性:各种期望的光学效果,包括典型的图形用户界面菜单,和有发光、反射和阴影效果渲染的3D场景。
为了满足前一章节描述的不同复杂程度的用例,需要应用不同的技术来生成图像。
1.光栅图形
在光栅图形中,每个像素的颜色值都将被保存。图元处理通常就是指处理由像素组成的矩形区域。
光栅图形的一个重要特征就是会受到分辨率的影响。缩放将导致出现严重的光衰减。
光栅图形是一种常见的自然影像(照片)技术,大多数图形格式都可以表示光栅图形(jpg、bmp、png、gif)。许多应用都支持处理光栅图形,包括Adobe Photoshop、GIMP、Aperture。
1.1 光栅图形处理器
要加速光栅图形,标准解决方案就是使用光栅图形处理器,该工具能够复制/填充/组合由像素组成的矩形区域。光栅图形加速器通常执行内存到内存之间的操作,即从内存中读取元数据,然后将结果数据写入内存。目前尚不存在普遍认可的API标准。一些专有API都提供了类似的功能。较为先进的加速器在此基础上提供了绘制基本图形的功能,如绘制线条和圆圈。
1.2 直接位图传送引擎(精灵引擎)
与光栅图形处理器类似,直接位图传送引擎也处理像素组成的矩形。关键差别在于图形操作的结果不会写回到内存。直接位图传送引擎是显示屏控制器的一部分,它把从内存的不同位置读取的每个帧组成最终的图像。对嵌入式系统使用直接位图传送引擎的主要优点是可以节省内存和内存带宽。此外,它还可以非常高效地生成图形,因为只需要修改元数据,如某些矩形的位置,而不是修改像素数据本身。直接位图传送引擎的最大缺点就是合并后的限制。当超出设备功能的极限后,将难以生成更复杂的图形。如果使用的是光栅图形,那么只会导致呈现时间延长。这方面的解决方案有一个专有API,在引擎功能方面存在显著的差异。
2. 矢量图形
矢量图形基于2D空间中对形状的数学描述,与分辨率无关。因此,矢量图形可以以任意分辨率呈现,不会产生质量问题。矢量图形是一种常见的技术,常见于如今的许多应用。 最突出的例子是TrueType字体,但是它也用于可扩展的矢量图形格式SVG中,所有最新的浏览器都支持这种格式。Adobe Flash之类的格式也大量应用矢量图形。
一些应用程序都可以生成矢量图形:Adobe Illustrator、Inkscape、Adobe Flash Professional。适用于矢量图形加速器的一个工业标准API是OpenVG[0]。
3 3D图形
目前的实时渲染功能基于一个由三角形组成的3D模型。要实现下降效果,需要向三角形应用纹理效果。以这种方式切分三角形将为模型定义细节层次,从而影响渲染效果。这使得模型在一定程度上会依赖分辨率。
对于嵌入式领域,有两种相关的API定义针对3D图形。这两种API都来自最初由Silicon Graphics发起的标准OpenGL。对于嵌入式版本,去掉了几个与嵌入式设备无关的特性。 这减小了硬件加速器的大小,并简化了所需的驱动器。
许多应用都可以生成3D模型。最常见的应用包括Autodesk 3ds Max、Blender、Autodesk Maya。
加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW
或用微信扫描左侧二维码