本应用笔记将重点介绍 MB86276 执行位图淡入淡出特效的能力。这对于呈现好看的动画非常有用。通过使用位图绘制、blt(块传输)填充、alpha 混合、CLUT(颜色查找表)或调色板以及 alpha 平面,可以使用多种技术来实现该功能。
富士通的图形显示控制器 (GDC) 产品线目前处于第三代。它由高端MB86297、中端MB86296、低端MB86276组成。前两个有一个 PCI 接口,最后一个有一个用于主机控制器的 SRAM 类型的接口。MB86276 的低成本、小尺寸和相对较低的功耗是其最吸引人的特点。这款 GDC 非常适合汽车导航系统、仪表盘组、手持导航系统等中的低端应用。
MB86276“石灰”框图
位图褪色
位图褪色是位图在显示屏上的逐渐出现或消失(透明度)。它的使用示例之一是在应用程序启动时发布欢迎消息。如果需要在同一图形层上淡化多个位图,则实现可能会变得复杂。(图层是一个平面,图形内存中的一个区域,其中包含不同的绘图对象。富士通 GDC 允许通过叠加使用多个图层。)。幸运的是,MB86276 具有多种功能,使实施变得非常容易。这些功能是基于硬件的,可以显着减轻主机处理器的负担。应该注意的是,位图淡入淡出可以以与其他富士通 GDC 类似的方式实现。
实现位图淡入淡出的技术MB86276 的多功能性允许使用三种不同的技术实现这种特殊效果。
图层 Alpha 混合
间接颜色模式下的调色板动画
阿尔法平面
使用图层 Alpha 混合实现位图淡入淡出的技术 使用图层 Alpha 混合实现位图淡入淡出
此技术是通过首先对相应图形层上的位图进行 blting 来实现的。至少应在混合模式下重叠两层,使用恒定的 alpha 混合比率。通过逐渐改变层之间的这个比率,位图可以以所需的方式淡化。此技术的示例代码(基于 Fujitsu GDC API V02L03)如下所示。
虽然这种方法非常简单,但它有一个明显的缺点——无法在同一层上以不同的淡化模式(淡化量和方向)淡化两个或多个位图。此外,至少需要两层来实现该技术。
使用调色板动画的位图淡入淡出
间接颜色模式(每像素 8 位)使用 CLUT 或调色板来减少图形内存使用。实际上,这也限制了从主机处理器传输到图形内存的数据量,并提高了整体效率。调色板动画基于使用间接颜色模式中指定的 CLUT。这种技术不是修改位图数据或更改 alpha 混合比率,而是更改调色板条目,进而更改位图的显示方式。
MB86276 支持四种不同的调色板,每层一个用于四层,每层有 256 个条目。因此,通过将调色板分成两个或多个部分,可以支持单个图层上的多个位图。例如,256 个条目的调色板可以分为 8 个子调色板,每个子调色板由 32 个条目组成。这意味着在一个 8-bpp 层上,可以同时执行 8 个位图进行衰落操作。每个位图可以有不同的透明度级别和淡入淡出方向。与单独修改每个位图相比,在主机处理器和图形内存之间传输所需的数据量要少得多。调色板动画可以仅使用一层来实现。所有这些因素使该技术对于衰落实现非常灵活和有效。