本发明涉及led控制技术领域,具体涉及一种led阵列动画渲染显示控制方法和装置。
背景技术:
为了起到展示与美化等效果,可在建筑物外立面安装led阵列,并通过led阵列显示动态的图像。目前的led阵列动画渲染方法多为将动画渲染显示数据逐帧存储于可快速读取的存储介质中,渲染动画时再根据时间戳读取对应的动画帧显示数据以控制相应led显示,但是,此种方法占用存储空间较大,导致支持的动画数量有限,进而使动画显示效果不够灵活。
技术实现要素:
针对现有技术的不足,本发明提供一种led阵列动画渲染显示控制方法和装置。
第一方面,本发明提供了一种led阵列动画渲染显示控制方法,该方法包括如下步骤:
获取预先建立的led动画模型,其中,所述led动画模型包括多个渲染器对象,各所述渲染器对象分别代表一个由多个着色点着色的连续一维颜色子空间。
根据动画实际帧率要求,在每一帧的渲染时刻调度所述led动画模型中的所述渲染器对象进行渲染,根据所述渲染器对象的各项特征数据和着色配置完成所述一维颜色子空间的渲染,将所有经渲染的一维颜色子空间进行基于所述着色点的颜色叠加,获得所述颜色渲染空间。
将所述颜色渲染空间映射至led阵列。
第二方面,本发明提供了一种led阵列动画渲染显示控制装置,该装置包括:
获取模块,用于获取预先建立的led动画模型,其中,所述led动画模型包括多个渲染器对象,各所述渲染器对象分别代表一个由多个着色点着色的连续一维颜色子空间。
处理模块,用于根据动画实际帧率要求,在每一帧的渲染时刻调度所述led动画模型中的所述渲染器对象进行渲染,根据所述渲染器对象的各项特征数据和着色配置完成所述一维颜色子空间的渲染,将所有经渲染的一维颜色子空间进行基于所述着色点的颜色叠加,获得所述颜色渲染空间。
映射模块,用于将所述颜色渲染空间映射至led阵列。
第三方面,本发明提供了一种led阵列动画渲染显示控制装置,该装置包括存储器和处理器;所述存储器,用于存储计算机程序;所述处理器,用于当执行所述计算机程序时,实现如上所述的led阵列动画渲染显示控制方法。
本发明提供的led阵列动画渲染显示控制方法和装置的有益效果是,基于矢量图形渲染思想和计算机图形学提出一种接近计算机屏幕渲染效果的led阵列动画渲染方式,通过建立合适的led动画模型,在进行动画渲染时,仅需对led动画模型中表示一维颜色子空间的各渲染器对象进行渲染,经过对不同一维颜色子空间进行叠加组合可获得颜色渲染空间,然后,通过将颜色渲染空间映射至led阵列中的各个led,便可获得灵活多变的各种动画显示效果,实现高达60fps以上的实时动画渲染。并且,由于led动画模型存储空间占用较小,此种控制方法对处理器的运算能力、内存空间及存储空间要求均较低,可直接工作于单片机系统中,显著降低硬件成本。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例的led阵列动画渲染显示控制方法的流程示意图;
图2为本发明实施例的led动画模型的结构示意图;
图3为本发明实施例的led阵列动画渲染显示控制方法的演示示意图;
图4为本发明实施例的第一渲染器对象的渲染效果示意图;
图5为本发明实施例的第二渲染器对象的渲染效果示意图。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
如图1所示,本发明实施例的一种led阵列动画渲染显示控制方法包括如下步骤:
s1、获取预先建立的led动画模型,其中,所述led动画模型包括多个渲染器对象,各所述渲染器对象分别代表一个由多个着色点着色的连续一维颜色子空间。
s2、根据动画实际帧率要求,在每一帧的渲染时刻调度所述led动画模型中的所述渲染器对象进行渲染,根据所述渲染器对象的各项特征数据和着色配置完成所述一维颜色子空间的渲染,将所有经渲染的一维颜色子空间进行基于所述着色点的颜色叠加,获得所述颜色渲染空间。
s3、将所述颜色渲染空间映射至led阵列。
在本实施例中,基于矢量图形渲染思想和计算机图形学提出一种接近计算机屏幕渲染效果的led阵列动画渲染方式,通过建立合适的led动画模型,在进行动画渲染时,仅需对led动画模型中表示一维颜色子空间的各渲染器对象进行渲染,经过对不同一维颜色子空间进行叠加组合可获得颜色渲染空间,然后,通过将颜色渲染空间映射至led阵列中的各个led,便可获得灵活多变的各种动画显示效果,实现高达60fps以上的实时动画渲染。并且,由于led动画模型存储空间占用较小,此种控制方法对处理器的运算能力、内存空间及存储空间要求均较低,可直接工作于单片机系统中,显著降低硬件成本。
优选地,如图2所示,led动画模型包括多个渲染器对象,各渲染器对象包括多个着色点。建立所述led动画模型的过程包括:
定义所述着色点的数据结构,所述着色点用于描述渲染路径中的一个颜色变化控制点,所述着色点的数据结构包括表示着色位置、着色颜色和着色模式的特征数据。每个着色点代表一个着色配置。
定义所述渲染器对象,所述渲染器对象包括表示渲染时间轴、运动轨迹、填充模式、渐变模式和渲染器间相关性的特征数据。用于描述动画过程中的一个一维颜色子空间,可任意定义动画过程中的颜色变化,同时支持运动、现场实时参数支持等特性。渲染器对象的一维颜色子空间可以按层级进行透明度叠加。
根据动画设计,基于多个所述渲染器对象建立所述led动画模型。将动画的渲染过程分解描述为多个渲染器对象,完成动画的建模。
优选地,该方法还包括如下步骤:
在对所述led动画模型中的所述渲染器对象进行渲染时,获取现场实时参数,并根据所述现场实时参数更新所述渲染器对象的特征数据。
具体地,由于同一led动画在不同环境中的显示效果并不完全相同,在进行led动画渲染的过程中,可获取例如外界环境亮度、温度以及反映用户互动的声纹等现场实时参数,进而对渲染器对象的特征数据进行更新,最终获得符合当时环境参数与用户反馈需求的最佳显示效果,支持动画与现场实现参数随动变化,不仅使led动画显示更为灵活,还能显著改善展示效果。
优选地,所述将所有经渲染的一维颜色子空间进行基于所述着色点的颜色叠加的具体实现包括:
动画渲染引擎根据时间轴,将所述led动画模型中的所有所述渲染器对象的所述一维颜色子空间渲染至同一个一维颜色空间,不同的所述着色点进行颜色叠加后的一维颜色空间为所述颜色渲染空间。
优选地,在所述颜色渲染空间中,相邻的两个所述着色点之间的任意位置的颜色由两个所述着色点进行平滑插值获得。
优选地,所述将所述颜色渲染空间映射至led阵列的具体实现包括:
将所述颜色渲染空间使用采样算法映射至led阵列。
具体地,如图3所示,令led动画模型包括3个一维颜色子空间,分别对其渲染后,3个一维颜色子空间中部分区域分别由不同着色点进行了着色配置。按照时间轴,对三者进行基于着色点的颜色叠加混合,可获得颜色渲染空间,其中共包括6个着色点,对例如着色点2和着色点3之间的区域,根据着色点2和着色点3进行平滑插值,也就是在此区域的显示效果为着色点2至着色点3的渐变。从而使最终渲染结果为连续的颜色空间,因此可映射到任意的led阵列上,在不同的led阵列中动画效果表现保真度均较高。
最后通过采样算法将颜色渲染空间映射至led阵列,使目标led阵列数量规模与渲染的led动画无相关性,可适用于各种led阵列。
优选地,在对所述led动画模型中的所述渲染器对象进行渲染时,运算方式均为整形运算。
具体地,通过整形运算,可使上述控制方法在单片机系统中仍能高效运行,在保证显示效果的前提下,可有效降低存储空间和处理占用资源。
下面以一个示例对本发明的led阵列动画渲染显示控制方法进行进一步的说明。
led阵列整体呈圆角矩形分布,左下角为led阵列起点,led数量可为任意数量。
令该动画用于描述任务正在处理中的状态,动画总时间2000ms,呈现方式为移动的进度式填充,填充两端保留10%的淡出(fadeout)效果。0至1000ms期间,动画由顶部中心出发,逆时针移动1/4圈,进度区域以尾部为基点,填充长度由0变为0.5圈;1000至2000ms期间,动画基于前一阶段位置出发,逆时针移动1/4圈,但进度区域变化为以头部为基点,填充长度由0.5圈变为0,最后消失于顶部中心处。
首先构建led动画模型。以下关于位置的描述定义为将环形展开,0表示环形起始位置,1表示环形结束位置,0.5表示中心位置,同时位置的定义与填充方向相关,例如顺时针填充的0.25和逆时针填充的0.75表示同一位置。关于长度的描述定义类似,1表示整个环形区域,即1圈。进度值的定义为渲染填充长度的多少百分比,1表示100%,即完全显示设定的填充长度。定义完全透明色为color_fade,定义动画主体颜色为color_body,主体颜色值可能为任意rgb颜色。
定义两个渲染器对象分别负责0至1000ms期间与1000至2000ms期间的动画显示内容。
第一渲染器对象负责渲染第一阶段动画内容。
时间轴:0ms至1000ms。
填充区域:逆时针填充,进度填充模式,起始位置0.625,填充长度0.5。
进度属性:起始值0,结束值1。
移动属性:填充区域匀速移动0.25圈。
显示点1:位置0,颜色color_fade。
显示点2:位置0.1,颜色color_body。
显示点3:位置0.9,颜色color_body。
显示点4:位置1,颜色color_fade。
第一渲染器对象基于动画渲染模拟器的渲染效果如图4所示。
第二渲染器对象负责渲染第二阶段动画内容。
时间轴:1000ms至2000ms。
填充区域:顺时针填充,进度填充模式,起始位置0.625,填充长度0.5。
进度属性:起始值1,结束值0。
移动属性:填充区域匀速移动-0.25圈。
显示点1:位置0,颜色color_fade。
显示点2:位置0.1,颜色color_body。
显示点3:位置0.9,颜色color_body。
显示点4:位置1,颜色color_fade。
第二渲染器对象基于动画渲染模拟器的渲染效果如图5所示。
动画渲染过程如下:
记录动画渲染起始时间戳timestamp_start。
根据帧率开启动画渲染定时器,按60fps计算,该定时器应间隔约16.6ms触发一次渲染操作。
定时器事件到来,获取当前时间戳timestamp_current,计算动画已渲染时间timerender=timestamp_current-timestamp_start。
循环从渲染器对象列表中选取时间轴包含当前已渲染时间的渲染器对象,根据渲染器对象特征数据执行渲染并生成一个完整的包含若干个着色点着色的一维颜色渲染空间。
将最终渲染的完整颜色渲染空间映射到led阵列中的每个led上,并更新其显示颜色。
本发明实施例的一种led阵列动画渲染显示控制装置包括:
获取模块,用于获取预先建立的led动画模型,其中,所述led动画模型包括多个渲染器对象,各所述渲染器对象分别代表一个由多个着色点着色的连续一维颜色子空间。
处理模块,用于根据动画实际帧率要求,在每一帧的渲染时刻调度所述led动画模型中的所述渲染器对象进行渲染,根据所述渲染器对象的各项特征数据和着色配置完成所述一维颜色子空间的渲染,将所有经渲染的一维颜色子空间进行基于所述着色点的颜色叠加,获得所述颜色渲染空间。
映射模块,用于将所述颜色渲染空间映射至led阵列。
在本发明另一实施例中,一种led阵列动画渲染显示控制装置包括存储器和处理器。所述存储器,用于存储计算机程序。所述处理器,用于当执行所述计算机程序时,实现如上所述的led阵列动画渲染显示控制方法。
优选地,所述处理器为单片机。
具体地,上述控制方法可运行于一个主频为80mhz、内存为32kb的单片机中,集成了30余种动画特效,存储空间仅占用200kb左右,并能支持动画与声纹、温度等现场实时参数动态调整效果,动画帧率在60fps以上。通过该控制方法可实时计算出led阵列中每个led的颜色数据,并通过led控制驱动程序接口更新led的显示颜色,呈现出流畅、与原设计高保真、高动态且与用户行为实时互动的氛围灯动画效果。
读者应理解,在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。