首页> 中国专利> 将三维与二维数据相融合的交互式多媒体制作及播放系统

将三维与二维数据相融合的交互式多媒体制作及播放系统

摘要

本发明涉及一种将三维与二维数据相融合的交互式多媒体制作及播放系统,包括数据源单元,将外部多种不同的多媒体数据文件,加载并转换成系统可识别的二维数据格式、三维数据格式;数据承载与管理单元,分别将二维数据和三维数据转换为二维实体和三维实体,并统一进行管理和分配;三维图形编辑单元,对三维实体进行可视化的编辑操作;二维图形图像编辑单元,对二维实体进行可视化的编辑操作;该系统不需要专业的多媒体设计能力,不需要计算机编程能力,让普通用户操作简便、易用、快速制作为前提;有专业的多媒体设计能力,具备计算机编程能力,让高级用户能够扩展、延伸应用为前提。

著录项

  • 公开/公告号CN102880283A

    专利类型发明专利

  • 公开/公告日2013-01-16

    原文格式PDF

  • 申请/专利权人 师源;

    申请/专利号CN201110197122.0

  • 发明设计人 师源;

    申请日2011-07-14

  • 分类号G06F3/01;G06T19/20;G06T11/00;

  • 代理机构北京市盛峰律师事务所;

  • 代理人李贺香

  • 地址 410007 湖南省长沙市天心区芙蓉中路3段水竹街31号华盛家园5栋102号

  • 入库时间 2024-02-19 17:04:01

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-06-24

    未缴年费专利权终止 IPC(主分类):G06F 3/01 专利号:ZL2011101971220 申请日:20110714 授权公告日:20161214

    专利权的终止

  • 2016-12-14

    授权

    授权

  • 2013-02-27

    实质审查的生效 IPC(主分类):G06F3/01 申请日:20110714

    实质审查的生效

  • 2013-01-16

    公开

    公开

说明书

技术领域

本发明涉及多媒体制作领域,特别涉及用户能快速、不需要编程的,对多种三维静、动 态数据与多种二维静、动态数据的外部数据进行快速录入、编辑及融合处理后达到新的混合 再现,还包括文字、音频、视频等外部数据的处理及编辑后达到新的混合再现,并能全面实 现数据信息之间、实现图形图像与数据信息之间的交互控制。

背景技术

现有技术公开了专利号为200480042906,发明名称为将三维场景分层结构集成到二维合 成系统中,说明书中公开了:(2D)可视对象和(3D)场景对象的分层结构被集成以便无 缝处理来在(2D)计算机显示器上呈现包含(3D)场景的(2D)视图的(2D)图像。 对可视分层结构中(3D)模型对象和(2D)可视对象的处理被集成,使得处理可容易地 在(3D)操作与(2D)操作之间切换。此外,创建显示图像时的处理可视(2D)对象 和(3D)模型对象之间的转变的次数没有结构上的限制。数据结构将创建(3D)图像和 (2D)图像的计算机程序对象集成到含有可视(2D)对象或指向(3D)模型对象的(3 D)场景对象的视件树对象分层结构中。数据结构包括对象树分层结构、一个或多个可视(2 D)对象、以及指向(3D)模型对象的一个或多个(3D)参照或场景对象。可视(2D) 对象定义绘制(2D)图像的操作。(3D)参照或场景对象定义指向对象的参照,利用的是 一起来绘制由一个或多个(3D)模型组成的三维场景的二维视图的操作。(3D)参照或场 景对象指向(3D)模型对象和照相机对象。照相机对象定义(3D)场景的二维视图。(3 D)模型对象绘制(3D)模型,并定义在绘制模型轮廓中使用的网格信息和在绘制模型的 表面纹理中使用的材质信息。模型的表面纹理的材质信息可由可视(2D)对象、(3D)参 照或场景对象或者可视(2D)对象和/或(3D)参照场景对象的树分层结构定义,该系 统构建操作复杂不适合普通人群使用,而且建模效果差。

发明内容

为克服现有技术不足,本发明目的是提供一种将三维与二维数据相融合的交互式多媒体 制作及播放系统,该系统不需要专业的多媒体设计能力,不需要计算机编程能力,让普通用 户操作简便、易用、快速制作为前提;有专业的多媒体设计能力,具备计算机编程能力,让 高级用户能够扩展、延伸应用为前提。

本发明技术方案如下:

一种将三维与二维数据相融合的交互式多媒体制作及播放系统,包括数据源单元,将外 部多种不同的多媒体数据文件,加载并转换成系统可识别的二维数据格式、三维数据格式; 数据承载与管理单元,分别将二维数据和三维数据转换为二维实体和三维实体,并统一进行 管理和分配;三维图形编辑单元,对三维实体进行可视化的编辑操作;二维图形图像编辑单 元,对二维实体进行可视化的编辑操作;动作交互控制单元,对二维实体和三维实体的事件 进行动作的绑定,使实体能根据用户触发的事件来执行相应的动作,产生交互效果;制品发 布与播放单元,将编辑的实体、数据打包成制品,并对制品进行发布,让制品可通过播放单 元进行播放。

还包括系统功能延展开发单元,使用系统提供的API,使用C++对系统进行二维实体、 三维实体、动作交互的功能扩展。

所述数据源单元包括文件加载接口,提供各种多媒体数据文件的读取的基础功能,以提 供给不同的多媒体文件加载的代码调用;文件解析器,将用户制定的多媒体数据文件,根据 文件扩展名,到加载器列表中查询是否有对应的文件加载;加载器列表,其中包含了所有的 课用于加载的多媒体文件的加载列表;数据容器,将以加载的数据存放于该数据容器中,其 它单元可访问数据容器来调用这些数据。

所述数据承载与管理单元包括项目管理器,是由系统定义的格式,用于读取和保存当前 用户使用系统编辑产生的各种操作和数据的集合;消息处理器,通过操作系统投递的所有消 息,进行汇总到消息处理器来进行封装,并将封装的消息投递到消息内部,以使系统的其它 单元根据消息进行进一步的消息处理;场景管理器,是对项目中的所有二维实体、三维实体、 各种操作进行统一的管理;导航管理器,对不同页进行管理和导航管理。

所述三维图形编辑单元包括三维应用模块,对三维图形进行初始化、管理和处理各种与 三维有关的消息处理;三维图形管理器,负责绘制场景,并对场景内的各种三维基础的对象 进行管理,这些管理是基于三维底层的管理,并将这些基础的三维对象提供给三维实体,以 使的三维实体能进行逻辑方面的处理;三维实体模块,实现各种三维的各种实体功能,以供 场景统一管理和响应用户的编辑操作。

所述二维图形图像编辑单元包括二维应用模块,对二维图形进行初始化、管理和处理各 种与二维有关的消息处理;二维图形管理器,对二维图形的绘制和处理;二维实体,实现各 种二维的各种实体功能,以供场景统一管理和响应用户的编辑操作。

所述交互动作控制单元包括交互动作管理器,是对实体的事件进行响应并执行;交互动 作扩展插件,是通过对交互动作控制单元所提供的API接口,对交互动作的功能进行扩充。

所述制品发布与播放单元包括制品发布器,是对当前的项目进行打包、加密成中间的制 品数据文件,该数据文件仅用于最终播放使用,并不能被系统进行再次的修改;制品播放器, 在未安装过系统的计算机上播放打包的制品。

所述系统功能延展开发单元包括插件管理器,对所有使用插件接口扩展的插件,都会放 入插件容器中,以便对所有的插件进行统一的管理;插件接口,是由外部进行扩展的入口点, 插件可以用于扩展二维实体、三维实体、交互动作;插件容器,用于记录所有加载的插件, 并对插件进行统一管理的容器。

数据源单元:

数据源单元,是为了达到将外部数据(如:图片数据、文字数据、音频数据、视频数据、 模型数据等)导入为目的,通过对数据进行读取与解析的方式,把数据转换为系统可以识别 的数据(三维静/动态数据、二维静/动态数据),并将可识别数据传递给二维图形图像编辑单 元和三维图形编辑单元进行编辑和处理。

三维图形编辑单元:

三维图形编辑单元,是读取已转换为三维静/动态数据,进行显示和编辑为目的的,通过 把数据对象化,响应鼠标、键盘操作和对属性面板参数的设置方式,来调整和编辑三维静、 动态数据在三维空间中的显示的位置、观察角度、外观特征,并将三维处理结果实时的投影 到二维空间中,以达到三维图形与二维图形的融合。

二维图形图像编辑单元

二维图形图像编辑单元,是读取已转换为二维静/动态数据,进行显示和编辑为目的的, 通过把数据对象化,响应鼠标、键盘操作和对属性面板参数的设置方式,来调整和编辑二维 静、动态数据在二维空间中的显示的位置、外观特征。

交互控制单元

交互控制单元,是把三维数据对象和二维数据对象进行事件化处理,并对这些事件进行 动作绑定,以使三维数据对象和二维数据对象响应由系统内部触发的事件以及由用户触发的 事件进行相应,以实现对象与对象之间、对象与系统之间、对象与用户之间的交互性。

数据承载与管理单元

数据承载与管理单元,将编辑的二维数据对象、三维数据对象进行有效的后台管理,并 能将编辑的结果保存到文件中,以便能在以后重新打开该文件,继续之前的编辑的操作。

制品发布与播放单元

制品发布与播放单元,是将已编辑好的二维数据对象、三维数据对象,通过加密、打包、 分发的方式生成可发布的制品,使已发布的制品能在未安装过该系统的计算机上顺利地、正 常地进行播放和演示。

系统功能延展开发单元

系统功能延展开发单元,是通过使用系统提供的对外函数、方法的接口,对系统进行功 能性扩展为目的进行二次开发,以满足制品制作中的某些系统还未包含的、具有特殊的或者 行业要求的功能。

系统功能延展开发单元,可对二维图形图像编辑单元、三维图形编辑单元、交互控制单 元进行扩展。

本发明显著优点在于:

能够对多种三维静、动态数据与多种二维静、动态数据的外部数据进行快速录入、编辑 及融合处理后达到新的混合再现,还包括文字、音频、视频等外部数据的处理及编辑后达到 新的混合再现,并能全面实现数据信息之间、实现图形图像与数据信息之间的交互控制。

通过设计出一系列三维与二维数据处理的方法、流程与程序技术单元。让用户只需要使 用鼠标、键盘或触摸屏机制的简单指定操作,便可以轻松进行:

①多种外部数据源的读取与解析处理;

②多种三维静、动态数据的可视化制作、编辑、融合后新的混合再现;

③多种二维静、动态数据的可视化制作、编辑、融合后新的混合再现;

④在系统信息容器内的多种数据的承载与管理;

⑤三维和二维的动态交互控制事件、行为的编辑与再现;

⑥多媒体制品多种应用模式的封装发布与播放;

⑦系统功能的延展开发。

该系统,克服了以往多媒体制作系统难以或未成功将多种三维静、动态数据与多种二维 静、动态数据融合的新的混合再现,并且难以实现数据混合再现后的交互控制行为的缺陷。 克服了以往的多媒体制作软件,没有为普通用户(非多媒体专业制作人员)设计快速、独立、 易学习为前提的,制作美观、动感且交互性强的多媒体应用程序,很难自主制作、快速制作 多媒体作品传播信息的缺陷。

该系统,使多媒体制作行业迈入平民化,普及化,降低了多媒体制品制作的门槛,对信 息的传播有很强的推动效应。该系统,使多媒体制作能够将多种三维数据与多种二维数据融 合,该系统的多种三维静、动态数据与多种二维静、动态数据的混合编辑、新的再现的程序 能力,有力的推动了多媒体携带信息、表达内容上的丰富,能适用到众多既需要三维数据的 实时仿真效果,又需要二维数据、文字数据、音频数据、视频数据作为信息传达补充的需求。

附图说明

图1本发明所述将三维与二维数据相融合的交互式多媒体制作及播放系统总体结构图

图2本发明所述数据源单元结构示意图

图3本发明所述数据源单元流程图

图4本发明所述图形文件加载管理结构示意图

图5本发明所述视频文件加载管理结构示意图

图6本发明所述音频加载管理结构示意图

图7本发明所述模型文件加载管理结构示意图

图8本发明所述数据容器结构示意图

图9本发明所述数据承载与管理单元结构示意图

图10本发明所述场景管理器结构示意图

图11本发明所述导航管理器结构示意图

图12本发明所述三维图形编辑单元结构示意图

图13本发明所述三维图形管理器结构示意图

图14本发明所述三维实体管理器结构示意图

图15本发明所述二维图形编辑单元结构示意图

图16本发明所述二维图形管理器结构示意图

图17本发明所述二维实体管理器结构示意图

图18本发明所述动作交互控制单元结构示意图

图19本发明所述交互动作管理器结构示意图

图20本发明所述制品发布与播放单元结构图

图21本发明所述系统功能延展开发单元结构图

图22本发明所述插件接口结构图

图23本发明所述普通用户制作制品的流程图

图24本发明所述普通用户与高级用户协作完成复杂项目的流程图

具体实施方式

为使本系统的目的、技术方案和优点表达的更清楚明白,下面结合附图对本发明所述将三 维与二维数据相融合的交互式多媒体制作及播放系统具体实施作进一步详细的说明。

如图1所示,三维与二维数据相融合的交互式多媒体制作及播放系统是由数据源单元101、 数据承载与管理单元102、三维图形编辑单元103、二维图形图像编辑单元104、动作交互控 制单元105、制品发布与播放单元106、系统功能延展开发单元107组成。

首先,数据源单元101会从外部解析各种多媒体数据文件,并转换成系统可识别的数据, 以提供给三维图形编辑单元103和二维图形图像编辑单元104调用。数据承载与管理单元102 是对整个系统进行项目、场景的管理。之后由动作交互控制单元105,使二维实体和三维实 体进行事件的动作绑定,从而可以让实体与用户之间产生交互的行为。在完成编辑之后,就 可通过制品发布与播放单元106将项目打包发布。

如果用户需要定义自己的实体或者动作,或者扩充系统的功能,可通过系统功能延展开 发单元107,使用C++的方式,对二维实体、三维实体、动作交互进行二次开发和扩展。

在系统中,实体是最基础的对象,所有与用户交互的二维和三维对象,都必须通过继承 自实体接口,并通过数据承载与管理单元102对所有的二维实体和三维实体进行统一的管理。

用户在系统中所做的编辑和操作,信息都会记录到项目中,而项目也是以文件形式保存 到磁盘上,这样用户可以在下次启动系统后,通过打开项目文件,即可继续对该项目进行进 一步的编辑和修改。

如图2所示,数据源单元101,是将外部的各种多媒体的数据文件,读取并转换成系统可 识别的数据,以提供给系统的其它单元使用的单元,它由文件加载接口201、文件解析器207、 加载器列表208、数据容器209组成。

如图3所示,数据源单元的操作流程是:系统内部发出读取文件的命令301并交由文件 解析器207操作。文件解析器207首先判断文件是否存在302、如果没有找到文件,则返回 文件不存在的错误信息303,并返回。文件存在,则从加载器列表中查找对应的文件加载器 304,根据扩展名来检查文件是否有对应的加载器305,如果没有找到对应的加载器可读取该 文件时,则返回未找到加载器的错误信息306,找到对应的加载器,则将文件信息传递给该 加载器,加载器读取文件,并转换为系统可识别的数据307,并将数据传递给数据容器,对 数据进行统一的管理308。

如图2所示,文件加载接口201,是定义了一组基础的读取字节和保存字节的功能,文件 加载接口201并不直接对各类数据进行操作,而是根据系统内定的5种数据类型,分别派生 出专门用于处理图形图像的图形文件加载接口202、处理视频的视频文件加载接口203、处理 音频的音频文件加载接口204、处理三维模型的模型文件加载接口205和处理各类文本的文 本文件加载接口206,而这些加载接口,根据自己数据格式的特殊性,分别定义了一套适合 自身格式的读取、保存接口。

文件加载接口201定义了一种数据注册机制,就可将图形文件加载接口202、视频文件加 载接口203、音频文件加载接口204、模型文件加载接口205、文本的文本文件加载接口206 中的切换与文件扩展名绑定在一起,当系统初始化的时候,将这些接口加载到加载器列表208 中,等待用户执行读取操作。

文件解析器207负责将用户制定的磁盘数据文件,根据文件扩展名,到加载器列表208 中查询是否有对应的文件加载的接口,如果找到,则将文件交由该文件加载的接口,对文件 进行读取的操作,数据读取完毕后,就将数据放入数据容器209中,以便让系统的其它部分 通过该数据容器,访问和使用这些数据。

图像文件加载接口202,是继承自文件加载接口201,通过文件加载接口201提供的基础 数据读写函数和方法,其中定义了图像的数据输出函数的虚函数,所有继承自图像文件加载 接口202的类都必须实现图像的数据输出的虚函数。

如图4所示,图像文件加载接口202包含了以下的文件加载器:

PNG图像文件加载器401,可读取PNG的图片格式,支持交错的PNG格式和非交错的 PNG格式,同时还支持带Alpha透明通道的PNG格式文件。

JPG图像文件加载器402,可读取JPG、JPEG的图片格式文件。

GIF图像文件加载器403,可读取GIF的图片格式,并支持带动画的GIF 98a格式文件。

SVG图像文件加载器404,可读取SVG的图片格式文件。

BMP图像文件加载器405,可读取BMP的图片格式文件,同时支持Windows的BMP格 式和OS/2的BMP格式。

视频文件加载接口203中,是继承自文件加载接口201,通过文件加载接口201提供的基础 数据读写函数和方法。

视频是由序列帧图像和声音组成,通过解析视频数据,将视频数据中的音频数据进行剥离, 由于视频中的音频采用了多种音频解码,在解码时,所有继承自视频文件加载接口203的类, 会通过音频文件加载接口204来加载音频,并将解析的数据返回到自己的类中,以使得在播 放视频的时候,同时对音频进行控制,做到视声同步,在视频文件加载接口203定义了视频 数据输出的虚函数和音频数据输出的虚函数,所有继承自视频文件加载接口203的类都必须 实现视频数据输出的虚函数和音频数据输出的虚函数(如果该视频中不包含音频数据,则返 回NULL)。

如图5所示,视频文件加载接口203包含了以下视频加载器:

FLV视频文件加载器501,可读取FLV的视频文件。

MPEG视频文件加载器502,可读取MPG、MP4格式的视频文件。

AVI视频文件加载器503,可读取Microsoft的AVI格式、Intel的AVI格式文件和MPEG 解码的AVI格式文件。

音频文件加载接口204中,是继承自文件加载接口201,通过文件加载接口201提供的基 础数据读写函数和方法,其中定义了音频的数据输出函数的虚函数,所有继承自音频文件加 载接口204的类都必须实现音频的数据输出的虚函数,音频文件加载接口204的数据来源可 能是磁盘上的文件,也可能是由视频文件加载接口203中的需要解析音频的数据。

如图6所示,音频文件加载接口204包含了以下的音频文件加载器:

WAV音频文件加载器601,可读取WAV的音频文件。

MP3音频文件加载器602,可读取MP3的音频文件。

模型文件加载接口205中,是继承自文件加载接口201,通过文件加载接口201提供的基 础数据读写函数和方法,其中定义了模型数据输出函数的虚函数,所有继承自模型文件加载 接口205的类都必须实现模型数据输出的虚函数,这里解析出来的数据只能提供给三位图形 编辑单元使用,二维图形图像编辑单元104无法使用。

如图7所示,三维模型文件加载接口205包含了以下的模型文件加载器:

OBJ模型文件加载器701,可读取3DMAX、MAYA和任何可输出为OBJ格式的建模软 件生成的OBJ模型文件。

3DS模型文件加载器702,可读取3DMAX的3DS模型文件。

U3D模型文件加载器703,可读取Pro/E、SolidWorks和任何可输出为U3D格式的建模软 件生成的U3D模型文件。

DWF模型文件加载器704,可读取3DMAX、MAYA、Inventor和任何可输出为DWF格 式的建模软件生成的DWF模型文件。

X模型文件加载器705,可读取由Microsoft DirectX定义的X模型文件。

DAE模型文件加载器706,可读取所有支持COLLADA的DAE模型文件。

如图8所示,所有的数据读取完毕后,都会传入数据容器209中,数据容器为每一种不 同的数据类型,分别定义了不同类型的数据容器,不同的数据类型都会传入不同的数据容器 中,其中所有的图型数据会放入图形数据容器801、视频数据会放入视频数据容器802、音频 数据会放入音频数据容器803、模型数据会放入模型数据容器804、文本数据会放入文本数据 容器805中。三维图形编辑单元103和二维图形图像编辑单元104就可通过访问数据容器209 中的不同类型的数据容器,即可读取到相应的数据。

数据承载与管理单元102是为系统提供了二维数据对象、三维数据对象进行有效的后台 数据管理和内存管理。提供基础借口为二维图形图像编辑单元104和三维图形编辑单元103 来统一管理。

如图9所示,数据承载与管理单元102是由项目管理器901、消息处理器902、场景管理 器903、撤销/重做管理器904、导航管理器905组成。

项目管理器901,项目是由系统定义的格式,用于读取和保存当前用户使用系统编辑产生 的各种操作和数据的集合,项目是保存为数据文件,用户可通过保存项目文件,来保存当前 在系统中所做的操作,并可通过打开项目文件,让系统重新读取所做的操作和项目相关的数 据,以使得用户可继续之前的项目的编辑和操作,项目的数据文件仅提供给用户编辑项目之 用,用户不能直接将项目文件通过拷贝的方式来分发或者对项目进行播放。

消息处理器902,是消息处理分类的集中处理的区域,它通过操作系统投递的所有消息, 进行汇总到消息处理器来进行封装,并将封装的消息投递到消息内部,以使系统的其它单元 根据消息进行进一步的消息处理。

消息处理器902除了可以相应Windows投递的消息之外,还可响应所有链接在计算机上 的输入设备的消息,并能被Windows操作系统正确识别的输入设备,这些输入设备包括鼠标、 键盘、游戏手柄、游戏方向盘、游戏摇杆、触摸屏、PC遥控器、摄像头、麦克风等。

如图10所示,场景管理器903,是对项目中的所有二维实体、三维实体、各种操作进行 统一的管理。它是由实体容器1001、实体接口1002、动作容器1003、动作接口1004、选择 控制器1005、位移控制器1006组成。

实体接口1001,是一种基础的实体接口,它可以被三维图形编辑单元103和二维图形图 像编辑单元104中的各种独立的可交互的可视化的元素继承使用。

实体容器1002,是存放来自三维图形编辑单元103和二维图形图像单元104中创建的各 种实体,可使得数据承载与管理单元102可对实体进行统一的管理。

交互动作接口1003,交互动作是通过事件的方式由实体触发,在触发后根据该实体的交 互动作的定义,来执行交互动作中的各种功能操作,而所有的交互动作的功能,都需要从该 接口继承。

交互动作容器1004,交互动作通过交互动作接口1003生成的各类交互动作,都存放在交 互动作容器中,后面可通过交互动作控制单元(105)对其进行管理和控制。

选择控制器1005,是通过对鼠标下面的实体进行检测,并进行可视化的高亮显示,并以 此告知用户当前选择了该实体,并可让用户对该选中的实体进行操作,该选择控制器可以单 选实体,也可以通过按住CTRL键对场景的实体进行多选的操作,这样可以对多选的实体进 行批量化的操作。

位移控制器1006是对选中的实体(单选或者多选)进行位置的移动和旋转的操作,当系 统开启了移动或者旋转的模式后,位移控制器会绘制一个可视化的XY的轴,通过拖拽该轴 上的任意的一个轴向,即可将当前所选实体沿该轴向进行移动和旋转。

导航管理器904,是对不同页进行管理和导航管理,它是由页管理器1101、节管理器1102 组成。

如图11所示,页管理器1101,项目是由多个页组成,所有的二维实体和三维实体都是依 托页而存在的,页管理是对多个页进行增加、编辑、删除等管理控制。

节管理器1102,节是将页进行分段,以便制作人员通过节,能很容易理解页与页之间的 关系,也能有利于导航切换时的定位。节中可以包含多个页,但最少要包含一个页。

如图12所示,三维图形编辑单元103是三位图形显示和编辑的单元,它由三维应用模块 1201、三维图形管理器1202、三维实体1203组成。

三维应用模块1201负责对三维图形进行初始化、管理和处理各种与三维有关的消息处理。

三维图形管理器1202负责绘制场景,并对场景内的各种三维基础的对象进行管理,这些 管理是基于三维底层的管理,并将这些基础的三维对象提供给三维实体,以使的三维实体能 进行逻辑方面的处理。

如图13所示,三维图形管理器1202是由三维渲染器1301、三维声音管理器1302、三维 模型管理器1303、三维材质管理器1304、三维效果管理器1305、三维碰撞拾取管理器1306、 三维动画管理器1307组成。

三维渲染器1301,是通过底层的DirectX 9.0c的三维图形加速API来进行三维空间图形 的GPU的绘制,同时,将绘制的结果,渲染成二维的平面,以使得图形能在二维的屏幕上绘 制出来。

三维声音管理器1302,是将声音放置到三维空间中,根据摄像机与三维空间中的声音所 处的位置和角度,使声音发生音量和左右声道的变化,从而让声音具有三维的感觉,而三维 声音的音频文件,就是从数据源单元101中的音频数据容器803中获取。

三维模型管理器1303,是将模型以最基础的三角形的数据,提交给三维渲染器1301进 行GPU的绘制和处理,是从数据源单元101中的模型数据容器804中获取。

三维材质管理器1304,材质是贴附于模型表面,用于表现模型表面材料的各种效果,材 质是由漫反射、自发光、法线、镜面反射的图形数据和参数组成,三维材质管理器中所调用 的图形数据,是从数据源单元101中的图形数据容器801中获取。

三维效果管理器1305,是将三维场景做全局的变化处理,使得画面能有不同的绘制效果, 从而使得用户能更好的观察模型。系统中包含了平滑效果、勾边效果、环境光遮蔽效果、半 透明效果、倒影效果这四种效果!

平滑效果,是将三维场景以尽可能真实的方式进行绘制,可通过该效果看到较为接近真 实的模型场景效果。

勾边效果,是在模型表面棱角的地方勾上一个黑色的线条,以突出模型的棱角面为主的 效果。

环境光遮蔽效果,是在对模型进行深度值对比来计算物体身上环境光照无法到达的范围, 从而可以近似地表现出物体身上在环境光照下产生的轮廓阴影。

半透明效果,是将模型以50%半透明的方式进行绘制,从而可从外部观看到模型的内部 构造。

倒影效果,是在模型的底部绘制一个颠倒的模型倒影效果。

三维碰撞拾取管理器1306,是根据鼠标的位置,将鼠标的平面坐标转换为三维坐标,并 将该三维坐标产生的一条延伸到三维场景无穷远的射线,并判断所以与该射线交集的多边形, 从而判断当前鼠标之下选取了哪个模型。

三维动画管理器1307,是用于管理从模型数据中加载进来的有关该模型的动画数据,三 维动画管理器中提供了两种方式来对模型数据进行动画驱动,序列帧动画方式和骨骼动画方 式。

序列帧动画方式,是把帧作为时间,固定一秒播放25帧,每帧都记录了运动模型的位置、 旋转角度和缩放的数据,通过连续播放序列帧的方式,来实现模型的动画效果,这种方式一 般应用在机械的动画表现展示。

骨骼动画方式,是将模型与模型内部的骨骼数据关联,通过驱动骨骼,从而可使其它与 该骨骼相关联的骨骼也跟随移动,从而驱动模型也跟着一起发生变化。骨骼动画适合表现那 些互相之间有移动关联性的动画表现展示。

通过三维图形管理器1202提供的各类基础的底层功能,即可通过三维实体实现各种三维 功能。

通过数据承载与管理单元102的场景管理器903中的实体接口1002来实现各种三维的各 种实体功能,以供场景统一管理和响应用户的编辑操作。

如图14所示,三维实体1203包含三维环绕声音实体1401、三维模型实体1402、三维标 签实体1403、三维剖面实体1404、三维摄像机镜头实体1405组成。

三维环绕声音实体1401,是通过调用三维声音管理器1302实现三维声音的添加、切换音 频数据、删除、调节音量、设置空间位置的操作。

三维模型实体1402,是通过调用三维模型管理器1302,来实现三维模型的切换操作。

三维标签实体1403,是在三维空间中显示一个文字标签,并有一根连线连接到模型上, 用于对模型的某个区域做文字上的描述和补充。

三维剖面实体1404,是将模型按照一个切割平面,将模型与切割平面交集的部分进行裁 剪,从而可观察模型的内部构造和局部,切割平面可以设置成6个角度,X轴垂直角度、Y 轴垂直角度、Z轴垂直角度、XY轴垂直角度、XZ轴垂直角度、XZ轴垂直角度。

三维摄像机镜头实体1405,是当前的观察三维空间的位置和角度的虚拟摄像机,可通过 该实体,对场景中的虚拟摄像机进行控制和修改。

如图15所示,二维图形图像编辑单元104是实现所有二维的功能和管理,它由二维应用 模块1501、二维图形管理器1502、二维实体1503组成,

二维应用模块1501负责对二维图形进行初始化、管理和处理各种与二维有关的消息处理。

如图16所示,二维图形管理器1502,负责对二维图形的绘制和处理,它包含了二维渲染 器1601、二维声音管理器1602、用户界面管理1603、二维拾取碰撞管理器(1604)组成。

二维渲染器1601,通过调用DirectX 9.0c的底层API,实现二维的渲染和绘制,由于采用 了GPU的方式绘制,效率比纯用CPU的绘制效率要高出很多,因此系统可以承载上千个二 维元素的绘制。

二维声音管理器1602,是将音频直接输出,而三维声音的音频文件,就是从数据源单元 101中的音频数据容器803中获取。

用户界面管理器1603,是通过二维的方式,来绘制用户交互界面(GUI),系统中的所有 平面的界面均由用户界面管理器负责处理。

二维拾取碰撞管理器1604,是根据鼠标的位置,来计算在鼠标之下的二维元素,如果是 二维的实体,则交由二维实体处理进一步的消息,如果是二维用户界面,则交由二维用户界 面管理器1603去管理。如果是三维场景,则交由三维图形编辑单元处理三维的消息。

通过数据承载与管理单元102的场景管理器903中的实体接口1002来实现各种二维的各 种实体功能,以供场景统一管理和响应用户的编辑操作。

如图17所示,二维实体1503包含二维声音实体1701、二维文字实体1702、二维图片实 体1703、二维视频实体1704组成。

二维声音实体1701,是通过调用二维声音管理器1602实现二维声音的添加、切换音频数 据、删除、调节音量的操作。

二维文字实体1702,是将文字内容的添加、文本、颜色、字体、大小修改的操作。

二维图片实体1703,是将图片内容进行添加、删除、替换的操作。

二维视频实体1704,是将视频进行播放、暂停、音量调节操作。

如图18所示,交互动作控制单元105,是将实体的事件与交互动作功能进行绑定,并根 据实体的绑,来执行相应事件中的交互动作功能。该单元包含了交互动作管理器1801和动作 交互扩展插件1802组成。

如图19所示,交互动作管理器1801,是对实体的事件进行响应并执行,交互动作管理器 1801是由交互动作事件处理1901和交互动作执行器1902组成。

在实体中,会有一个描述该实体所有事件的列表,而每个事件的列表中都能存放一个或 者多个交互动作,交互动作事件处理器1901是在实体事件产生时,去检查该实体的事件列表, 如果该列表中存在交互动作,则交由交互动作执行器1902,对交互动作进行执行,如果该事 件中,存在多条交互动作,则顺序执行每一条交互动作,直至所有交互动作执行完毕为止。

动作交互扩展插件1802是对交互动作的功能进行扩展,可由程序员,在外部使用C++开 发工具,根据交互动作控制单元提供的API,对交互动作通过继承交互动作接口1004进行扩 展,扩展后的交互动作,会存放于交互动作容器1003中,以供实体进行交互动作的绑定和执 行。

如图20所示,当用户将项目在系统中制作完毕后,就需要通过制品发布与播放单元106 将项目转换为制品,进行发布,制品是只能用于发布和播放的不能进行任何修改的项目数据 集合。

制品发布与播放单元106,包含制品发布器2001和制品播放器2002组成。

制品发布器2001,是对当前的项目进行打包、加密成中间的制品数据文件,该数据文件 仅用于最终播放使用,并不能被系统进行再次的修改。

已经生成好的制品,就可以通过制品播放器2002进行播放,制品播放器2002就是一个 没有编辑功能的包含系统所有功能的、无需安装的系统。这样制品播放器2002可以脱离系统, 在未安装过系统的计算机上播放打包的制品。

如图21所示,系统功能延展开发单元107是通过系统提供的API,开发人员可以在自己 的C++工程中,实现各种附加的功能,以实现二次开发。系统功能延展开发单元107包含了 插件管理器2101、插件容器2102和插件接口2103。

插件管理器2101是负责对所有的插件进行加载、移除、应用的工作,它通过插件接口2103, 对所有的继承的插件进行统一的管理和维护。

插件容器2103,所有使用插件接口扩展的插件,都会放入插件容器中,以便对所有的插 件进行统一的管理。

插件接口2102,是由外部进行扩展的入口点,插件可以用于扩展二维实体、三维实体、 交互动作。开发人员可以通过使用插件接口,对系统进行二次开发,以满足项目的需求。

如图22所示,在系统中,总共有三种插件类型可被外部人员进行扩充,分别是三维扩展 插件2201、二维扩展插件2202、交互动作扩展插件2203组成。

三维扩展插件2201是通过三维图形编辑单元103所提供的各种三维API,对三维功能和 三维实体进行扩充。

二维扩展插件2202是通过二维图形图像编辑单元104所提供的各种二维API接口,对二 维功能和二维实体进行扩充。

交互动作扩展插件2203是通过对交互动作控制单元105所提供的API接口,对交互动作 的功能进行扩充。

如图23所示,综上所述,普通用户可使用三维图形编辑单元103对三维实体部分进行制 作、编辑的操作2302、使用二维图形图像编辑单元104对二维实体部分进行制作、编辑的操 作2303和动作交互控制单元105来对二维实体和三维实体进行事件的动作交互的绑定2304, 并保存为项目数据文件2305,通过制品发布与播放单元106进行制品的发布和播放2306,整 个操作过程无需编程基础和复杂的操作,即可完成制品制作的流程。

如图24所示,当普通用户在需要制作一个复杂的项目时2401,发现目前系统中并没有足 够的实体或者缺失某些功能来完成当前项目时2402,普通用户可以告知高级用户缺失功能的 详细内容2403,高级用户根据缺失的功能分别去制作三维实体插件2201、二维扩展插件2202、 交互动作扩展插件2203,将制作好的插件交付给普通用户2407,普通用户将插件在自己的系 统中进行安装2408,安装完毕后,就可以将这些插件提供的二维实体、三维实体、交互动作 应用的到当前的项目中去,从而完成该复杂项目的制作和发布。当普通用户在下次碰到有类 似功能的复杂项目时,就可直接使用这些插件来使用,无需高级用户再重复制作。

注:在高级用户制作插件时,是根据普通用户提出的需求来决定要是否要制作三维实体 插件2201,还是要制作二维实体插件2202,或者要制作动作交互插件2203,并不是每次普 通用户提出的需求,都要制作这三种插件。

本发明不限于上述实施方式,对于本领域普通技术人员而言,对上述实施方式所做出的 任何显而易见的改进或变更,都不会超出本发明的构思和所附权利要求的保护范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号