CN101095130A - 用于为远程平台编辑说明内容的方法和设备 - Google Patents
用于为远程平台编辑说明内容的方法和设备 Download PDFInfo
- Publication number
- CN101095130A CN101095130A CNA2005800379248A CN200580037924A CN101095130A CN 101095130 A CN101095130 A CN 101095130A CN A2005800379248 A CNA2005800379248 A CN A2005800379248A CN 200580037924 A CN200580037924 A CN 200580037924A CN 101095130 A CN101095130 A CN 101095130A
- Authority
- CN
- China
- Prior art keywords
- edit
- content
- control device
- remote
- described content
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/20—Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B27/00—Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
- G11B27/02—Editing, e.g. varying the order of information signals recorded on, or reproduced from, record carriers
- G11B27/031—Electronic editing of digitised analogue information signals, e.g. audio or video signals
- G11B27/034—Electronic editing of digitised analogue information signals, e.g. audio or video signals on discs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T13/00—Animation
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B27/00—Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
- G11B27/36—Monitoring, i.e. supervising the progress of recording or reproducing
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Multimedia (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Architecture (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Television Signal Processing For Recording (AREA)
- Stored Programmes (AREA)
Abstract
在一个实施例中,方法和设备将编辑内容从编辑装置传输至远程装置;在远程装置上直接播放编辑内容;以及在编辑装置上监控编辑内容的一部分同时在远程装置上播放该部分编辑内容,其中编辑内容以说明性标记语言编写。
Description
相关申请的交叉引用
本申请要求2004年9月9日提交的、序号为10/983106的美国非临时申请的优先权:后者是(i)2003年11月12日提交的、序号为10/712858的美国非临时申请的部分继续,该非临时申请的全部内容通过引用而被结合于此并且它是2000年8月3日提交的、序号为09/632351的美国非临时申请、现在的美国专利No.6607456的继续。后者要求1999年8月3日提交的、序号为60/146972的美国临时申请的优先权,该临时申请的全部内容通过引用而被结合于此;并且2004年9月9日提出的、序号为10/983106的美国非临时申请是(ii)2000年8月3日提出的、序号为09/632350的美国非临时申请的部分继续,该非临时申请的全部内容通过引用而被结合于此,后者要求1999年8月3日提出的、序号为60/147092的美国临时申请的优先权,该临时申请的全部内容通过引用而被结合于此。对前述的专利和专利申请的每一个均要求了优先权。
技术领域
本发明通常涉及编辑说明内容,具体涉及为远程平台编辑说明内容。
背景技术
为各种各样的目标装置(如博弈控制台、蜂窝式电话、个人数字助理等)编辑内容通常在编辑装置平台上进行。通过利用广泛使用的平台(如个人计算机运行的Window),作者能够将广泛使用的工具用于创建、编辑和修改所编辑的内容。在某些情形下,这些目标装置具有唯一且专用的平台,所述的平台与编辑装置平台是不可互相交流的。将个人计算机用作编辑装置来创建内容常常比在目标装置的平台内编辑内容更容易;许多附加工具和资源通常在个人计算机平台上是可用的,而个人计算机平台在目标装置的平台上是不适用的。
为了调试和微调所编辑的内容,常常需要在实际的目标装置上查看编辑的内容。然而,将编辑的内容从编辑装置平台传输至目标装置平台有时需要使将要传输的编辑内容呈可执行的二进制形式,所述的可执行的二进制形式在编辑的内容于实际的目标装置上被查看之前在实际的目标装置上被重新编译。重新编译二进制可执行代码的附加步骤延迟了在目标装置上查看编辑的内容。
与在目标装置平台上修改编辑的内容相比较,在编辑装置平台上调试和微调编辑的内容常常是有利的。不幸地是,在目标装置上利用可执行的二进制阻碍了作者在编辑装置平台上调试和微调编辑内容的能力。
发明内容
在一个实施例中,方法和设备将编辑的内容从编辑装置传输至远程装置;在远程装置上直接播放编辑的内容;以及在编辑装置上监控所编辑内容的一部分同时在远程装置上播放该部分编辑内容,其中编辑内容以说明性标记语言编写。
附图说明
被结合并构成本说明书一部分的附图说明和解释了用于为远程平台编辑说明内容的方法和设备的一个实施例。在附图中,
图1是说明其中实现了用于为远程平台编辑说明内容的方法和设备的环境的示意图;
图2是说明其中实现了用于为远程平台编辑说明内容的方法和设备的一个实施例的简化流程图;
图3是说明与用于为远程平台编辑说明内容的方法和设备的一个实施例一致的系统的简化流程图;
图4是说明与用于为远程平台编辑说明内容的方法和设备的一个实施例一致的系统的简化流程图;
图5是与用于为远程平台编辑和修改说明内容的方法和设备的一个实施例一致的流程图;
图6是与用于为远程平台编辑和修改说明内容的方法和设备的一个实施例一致的流程图;
图7A是说明其中实现了用于为远程平台编辑说明内容的方法和设备的一个实施例的时序图;
图7B是说明其中实现了用于为远程平台编辑说明内容的方法和设备的一个实施例的时序图;
图8是说明其中实现了用于为远程平台编辑说明内容的方法和设备的一个实施例的简化流程图;
图9是与用于为远程平台编辑和修改说明内容的方法和设备的一个实施例一致的流程图;
图10是说明其中实现了用于为远程平台编辑说明内容的方法和设备的一个实施例的简化流程图;以及
图11是与用于为远程平台编辑和修改说明内容的方法和设备的一个实施例一致的流程图。
具体实施方式
下面对于用于为远程平台编辑说明内容的方法和设备的详细描述参考了附图。详细描述不是用来限制用于为远程平台编辑说明内容的方法和设备的。相反,用于为远程平台编辑说明内容的方法和设备的范围由所附权利要求书及其等同物来界定。本领域的技术人员将会认识到,符合本发明的许多其他实际应用也是可能的。
所提到的“装置”包括用户使用的装置,如计算机、便携式计算机、个人数字助理、蜂窝式电话、博弈控制台和能够处理内容的装置。
所提到的“内容”包括静态和动态场景的图形表示、音频表示等。
所提到的“场景”包括被配置成可以用特定方式呈现的内容。
在一个实施例中,用于为远程平台编辑说明内容的方法和设备允许编辑装置创建在远程装置上使用的内容。在一个实施例中,编辑装置使用公知的工具和界面来创建该内容。例如,示范的编辑装置包括个人计算机,如基于Window、Apple、以及Linux的个人计算机。在一个实施例中,远程装置被配置成可利用通过编辑装置的编辑内容。例如,示范的远程装置是使用Sony PlayStation应用程序的游戏控制台。
在一个实施例中,编辑装置使用说明性语言来创建编辑内容。一种这样的说明性语言利用本说明书中示出的代码片断来说明。通过使用说明性语言,编辑内容可以直接由编辑装置来编写。另外,在编辑装置上创建的编辑内容是特别为了在远程装置上使用而开发的。在一个实例中,在个人计算机上创建的编辑内容被配置成可在博弈控制台上使用。
在一个实施例中,用于为远程平台编辑说明内容的方法和设备允许远程平台直接使用在编辑装置上创建的编辑内容。另外,从编辑装置传输所编辑的内容并且使其直接在远程装置上播放而无需在远程装置上对其重新编译。例如,编辑内容的一部分可以在使其从编辑装置流至远程装置的同时被播放。通过直接在远程装置上播放所编辑的内容,在编辑装置上修改和调试所编辑的内容是可能的。
图1是说明其中实现了用于为远程平台编辑说明内容的方法和设备的环境的示意图。该环境包括电子装置110(如被配置成可充当客户装置的计算平台,比如计算机、个人数字助理等)、用户接口115、网络120(如局域网、本地网络、互联网)、以及服务器130(如被配置成可充当服务器的计算平台)。
在一个实施例中,一个或多个用户接口115部件被做成与电子装置110成为一个整体,(比如键盘以及如个人数字助理的相同外壳上的视频显示屏输入和输出接口。在一个实施例中,一个或多个用户接口115部件(例如键盘、如鼠标这样的指向器、跟踪球等)、麦克风、扬声器、显示器、照相机是与电子装置110物理分离的并且按照常规耦合至电子装置110。在一个实施例中,用户使用接口115来存取和控制存储在电子装置110、服务器130或通过网络120耦合的远程存储装置(图中未示出)中的内容和应用程序。
依照本发明,为远程平台编辑说明内容的实施例在下面通过电子装置110中、服务器130中的电子处理器或者通过电子装置110中和服务器130中一起运行的处理器来执行。服务器130在图1中作为单个计算平台示出,但是在其他的例子中是两个或以上的互连的计算平台来充当服务器。
在一个实施例中,电子装置110是被配置成可通过网络120接收所编辑内容的远程装置。在另一个实施例中,电子装置110是被配置成可通过网络120为远程装置传输所编辑内容的编辑装置。
图2是说明其中实现了用于为远程平台编辑说明内容的方法和设备的示范的体系结构的简化流程图。示范的体系结构包括多个电子装置110、服务器装置130和网络120,所述网络120使电子装置110连接到服务器130并且使每个电子装置110彼此连接。多个电子装置110各自被配置成包括耦合至电子处理器208的计算机可读介质209,如随机存取存储器。处理器208执行存储在计算机可读介质209中的程序指令。在一个实施例中,如参考图1所述的,唯一的用户通过接口115操作每个电子装置110。
服务器装置130包括耦合至计算机可读介质212的处理器211。在一个实施例中,服务器装置130耦合至一个或多个附加的外部或内部装置,例如,在没有限制的情况下,辅助数据存储元件(如数据库240)。
在一个例子中,处理器208和211由加利福尼亚州圣克拉拉市的Intel公司制造。在其他例子中,使用其它的微处理器。
在一个实施例中,多个客户装置110以及服务器130包括用于为远程平台编辑说明内容的指令。在一个实施例中,多个计算机可读介质209和211部分地包含定制的应用程序。另外,多个客户装置110以及服务器130被配置成可接收和传输供定制的应用程序使用的电子信息。同样地,网络120被配置成传输与定制的应用程序一起使用的电子信息。
一个或多个用于应用程序被存储在介质209中、介质211中,或者单个用户应用程序被部分存储在介质209中以及部分存储在介质211中。在一个例子中,如利用下面所描述的实施例进行确定所述,基于为远程平台编辑说明内容,可使存储的用户应用程序是可定制的,而不管存储位置。
图3说明了系统300的一个实施例。在一个实施例中,系统300包含在服务器130中。在另一个实施例中,系统300包含在电子装置110中。在又一个实施例中,系统300包含在电子装置110和服务器130中。
在一个实施例中,系统300包括内容传输模块310、内容检测模块320、存储模块330、接口模块340和控制模块350。
在一个实施例中,控制模块350与内容传输模块310、内容检测模块320、存储模块330和接口模块340进行通信。在一个实施例中,控制模块350协调任务、请求以及内容传输模块310、内容检测模块320、存储模块330和接口模块340之间的通信。
在一个实施例中,内容传输模块310检测由编辑装置创建的编辑内容并将编辑内容传输至被检测的远程装置。在一个实施例中,远程装置是特别被配置成可利用编辑内容的装置,例如博弈控制台、蜂窝式电话、机顶盒或其他装置。
在一个实施例中,内容检测模块320监控来自编辑装置并被远程装置使用的编辑内容的使用情况。通过监控同时在远程装置上使用的编辑内容,利用编辑装置提炼并修改编辑内容是可能的。另外,近乎实时地在远程装置上监控编辑内容还使得在编辑装置上提炼和修改编辑内容更加便利。例如,远程装置可在使附加的编辑内容自编辑装置流至远程装置的同时监控编辑内容。
在一个实施例中,存储模块330存储编辑内容。在一个实施例中,编辑内容以说明性语言来存储,其中场景的结果被明确描述。另外,编辑内容与远程装置是兼容的并被远程装置使用而无需重新编译编辑内容。
在一个实施例中,接口模块340接收来自其中一个电子装置110的、表示通过系统300使编辑内容从编辑装置传输至远程装置的信号。在另一个实施例中,接口模块340接收来自其中一个电子装置110的、表示在远程装置上编辑内容的使用的信号。在又一个实施例中,接口模块340接收对在编辑装置上监控编辑内容作出响应的信号同时在远程装置上使用编辑内容。另外,接口模块340允许编辑装置控制位于远程装置上的编辑内容的重放。
出于示范目的示出了图3中的系统300并且其仅仅是用于为远程平台编辑说明内容的方法和设备的一个实施例。在没有背离用于为远程平台编辑说明内容的方法和设备的范围的情况下,可将附加模块加入系统300。同样地,在没有背离用于为远程平台编辑说明内容的方法和设备的范围的情况下,可以组合或删除模块。
图4说明了用于使用说明性语言作为系统300内编辑内容的示范系统411。
在一个实施例中,系统411包括核心运行时间模块410,其将各种应用编程接口(下文中称为API)元件和对象模型呈现给存在于系统411中的一组对象。在一个例子中,文件被解析器414解析成原始场景图416并且被传递至核心运行时间模块410,在此处其对象被例示并且运行时间场景图被构建。
对象可存储在内置对象418、作者定义的对象420、本机对象424等内。在一个实施例中,对象使用一组有效管理器426来获得平台服务432。这些平台服务432包括事件处理、资源(assets)的加载、媒体播放等等。在一个实施例中,对象使用绘制层428构成用于显示的中间或最终图像。
在一个实施例中,页面集成部件430用来在系统411内将编辑内容连接到外部环境,如HTML或XML页面。在另一个实施例中,外部环境包括其它平台,如博弈控制台、蜂窝式电话和其他手持装置。
在一个实施例中,系统411包含关于该组管理器426的系统对象。每个管理器426提供API组来控制系统411的某一方面。事件管理器426D提供对由用户输入或环境事件引起的输入系统事件的访问。负载管理器426C促使编辑内容文件的加载和本机节点的实现。媒体管理器426E提供了加载、控制和播放音频、图像和视频媒体资源的能力。绘制管理器426G允许用来绘制场景的对象的创建和管理。场景管理器426A控制场景图。表面管理器426F允许在其上可合成场景要素和其他资源的表面的创建和管理。线程管理器426B给予作者大量生产和控制线程以及在它们之间通信的能力。
图5以流程图的形式说明了内容流过系统411的总体描述。在没有背离用于将信息传递至事件参与者的方法和设备的精神的情况下,可以不同的顺序实施流程图内的块。另外,在没有背离用于为远程平台编辑说明内容的方法和设备的精神的情况下,可以删除、添加或组合这些块。
在块550中,图示开始于包括正被引入解析器414(图4)的内容文件或流434(图4)的源。该源可以是本机VRML类文本格式、本机二进制格式、基于XML格式等。不管该源的格式如何,在块555中,该源被转换成原始场景图416(图4)。原始场景图416表示内容中的节点、字段和其他对象以及字段初始值。原始场景图416还可包含对象原型、流434中的外部原型引用和路由语句的描述。
原始场景图416的顶层包括包含在文件中的节点、顶层字段和函数、原型和路由。在一个实施例中,除了传统要素之外,系统411还允许顶层的字段和函数。在一个实施例中,原始场景图416的顶层用来提供与外部环境的接口,如HTML页面。在另一个实施例中,当流434用作远程装置的编辑内容时,原始场景图416的顶层还提供对象接口。
在一个实施例中,每个原始节点包括在其上下文中被初始化的字段列表。在一个实施例中,每个原始字段项包括该字段的名称、类型(如果给出的话)和数据值。在一个实施例中,每个数据值包括序号、字符串、原始节点、和/或可表示明确类型的字段值的原始字段。
在块560中,原型由原始场景图416的顶层提取并用来填充通过该场景可存取的对象原型的数据库。
原始场景图416接着被通过建立遍历而被发送。在该遍历期间,利用对象原型的数据库,建立每个对象(块565)。
在块570中,建立流434中的路由。随后,在块575中,初始化场景中的每个字段。在一个实施例中,通过将初始事件发送至对象的非缺省字段来实施初始化。因为场景图结构通过使用节点字段而获得,块575同样还构建了场景分级。
在一个实施例中,按次序利用遍历而激发事件。所遭遇的第一节点列举节点内的字段。如果字段是节点,则该节点首先被遍历。作为正被遍历的节点字段的结果,树形的这个特定分支中的节点同样被初始化。接着,事件被发送至具有该节点字段的初始值的该节点字段。
在给定的节点已经使其字段初始化之后,允许作者将初始化逻辑单元添加(块580)到原型对象中以确保节点在呼叫时间被完全初始化。上述的块产生根场景。在块585中,场景被传递至为场景所创建的场景管理器426A(图4)。
在块590中,场景管理器426A用来隐含地或在作者控制下绘制和实施行为处理。在一个实施例中,利用来自内置对象418、作者定义的对象420、和本机对象424的对象构建由场景管理器426A绘制的场景。下面对示范的对象进行描述。
在一个实施例中,对象可从它们的、随后扩充或修改其功能性的父对象中获得某些功能性。分级的基础是对象。在一个实施例中,两个主要对象类是节点和字段。其中,节点通常包含作为绘制遍历一部分被调用的绘制方法。节点的数据属性被称为字段。在对象分级当中是被称为定时对象的对象类,这在下面将详细描述。下面的代码部分是用于示范目的的。应当注意的是,每个代码部分的行号仅仅表示该特定代码部分的行号并且不代表原始源码中的行号。
表面对象
表面对象是SurfaceNode类型的节点。在一个实施例中,SurfaceNode类是将二维图像描述为颜色、深度和不透明度(阿尔法)值的所有对象的基类。SurfaceNode主要用来提供将要用作纹理图的图像。由SurfaceNode类导出的是MovieSurface、ImageSurface、MatteSurface、PixelSurface和SceneSurface。
下面的代码部分说明了MovieSurface节点。
1)MovieSurface:SurfaceNode TimedNode AudioSourceNode {
2)field MF String url
3)field TimeBaseNode timeBase NULL
4)field Time duration 0
5)field Time loadTime 0
6)field String loadStatus “NONE”}
通过提供对定义影片的图像序列的访问,MovieSurface节点绘制影片或表面上一系列的静态图像。MovieSurface的TimeNode父类确定在任何给定时间于表面上绘制哪一帧。影片还可作为音频源。
在代码部分的第2行,(“多值字段)URL字段为该表面提供影片数据的潜在位置列表。该列表被排序以使要素0描述优选的数据源。如果出于任何原因,要素0是不可用的或者是不支持的格式,可使用下一个要素。
在第3行,如果被指定的话,timeBase字段指定将要为影片提供定时信息的节点。尤其是,timeBase字段为影片提供了确定在任何给定瞬间影片的哪一帧将要在表面上显示的信息。在一个实施例中,如果未指定timeBase,表面将显示影片的第一帧。
在第4行,一旦影片数据已经被取出,就通过MovieSurface节点将持续时间字段设置为以秒为单位的影片长度。
在第5和6行,loadTime和loadStatus字段提供了来自MovieSurface节点的、关于影片数据可用性的信息。LoadStatus有五个可能的值“NONE”、“REQUESTED”、“FAILED”、“ABORTED”和“LOADED”。
“NONE”是初始状态。如果通过将值的数目设置为0或者将第一URL字符串设置为空字符串清除节点的url,则还要发送“NONE”事件。当其发生时,表面的像素被设为黑色或不透明(即颜色为0,0,0并且透明度为0)。
无论何时设置非空url值都发送“REQUESTED”事件。“REQUESTED”事件之后,表面的像素保持不变。
如果影片载入不成功,则在“REQUESTED”事件之后发送“FAILED”事件。例如,如果URL指不存在的文件或者如果该文件未包含有效数据,这可能会发生。在“FAILED”事件之后,表面的像素保持不变。
如果当前状态是“REQUESTED”并且接着URL再次改变,则发送“ABORTED”事件。如果URL被变为非空值,则“ABORTED”事件后面是“REQUESTED”事件。如果URL被变为空值,则“ABORTED”事件后面是“NONE”值。在“ABORTED”事件之后,表面的像素保持不变。
当准备显示影片时,发送“LOADED”事件。其后面是loadTime事件,loadTime事件的值与当前时间匹配。由timeBase字段表示的影片的帧被绘制到表面上。如果timeBase为空,则影片的第一帧被绘制到表面上。
下面的代码部分说明了ImageSurface节点。
1)ImageSurface:SurfaceNode{
2)field MF String url
3)field Time loadTime 0
4)field String IoadStatus “NONE”}
ImageSurface节点将图像文件绘制到表面上。在代码部分的第2行,URL字段为表面提供了图像数据的潜在位置列表。该列表被排序以使要素0描述最佳数据源。如果出于任何原因,要素0是不可用的或者呈不支持格式,则可使用下一个要素。在第3和4行,loadTime和loadStatus字段提供了来自ImageSurface节点的、关于图像数据有用性的信息。loadStatus有五个可能的值,如“NONE”、“REQUESTED”、“FAILED”、“ABORTED”和“LOADED”。
下面的代码部分说明了MatteSurface节点。
1)MatteSurface:SurfaceNode{
2)field SurfaceNode surface1 NULL
3)field SurfaceNode surface2 NULL
4)field String operation
5)field MF Float parameter 0
6)field Bool overwriteSurface2 FALSE
}
MatteSurface节点使用图像合成操作将来自表面1和表面2的图像数据合并到第三表面上。合成操作的结果以表面2的分辨率进行计算。如果表面1的尺寸不同于表面2,则在实施使表面1的尺寸等于表面2的尺寸的操作之前放大或缩小表面1上的图像数据。
在代码部分的第2和3行,表面1和表面2字段指定为合成操作提供输入图像数据的两个表面。在第4行,操作字段指定用来在两个输入表面上实施的合成函数。可能的操作包括“REPLACE_ALPHA”、“MULTIPLY_ALPHA”、“CROSS_FADE”和“BLEND”。
“REPLACE_ALPHA”利用来自表面1的数据重写表面2的阿尔法通道A。如果表面1具有一个分量(仅仅为灰度级强度),则该分量被用作阿尔法(不透明度)值。如果表面1具有两个或四个分量(灰度级强度+阿尔法或RGBA),则阿尔法通道A用来提供阿尔法值。如果表面1具有三个分量(RGB),则操作未被定义。这个操作可用来为静态或动态图像提供静态或动态阿尔法遮罩。例如,SceneSurface可相对透明背景绘制动画詹姆斯邦德(James Bond)特征。该图像的阿尔法分量可接着用作视频剪辑的遮罩形状。
除了表面1的阿尔法值与表面2的阿尔法值相乘之外,“MULTIPLY_ALPHA”与“REPLACE_ALPHA”是类似的。
利用参数值控制每个可见表面的百分比,“CROSS_FADE”在两个表面之间渐变。这个操作可在两幅静态或动态图像之间动态渐变。通过使参数值(第5行)从0到1变化,表面1上的图像渐变成表面2的图像。
利用表面2的阿尔法通道控制混合百分比,“BLEND”将来自表面1和表面2的图像数据合并。这个操作允许表面2的阿尔法通道控制两幅图像的混合。通过绘制SceneSurface或播放MovieSurface来动画表面2的阿尔法通道,可产生复合移动亚光效果(matteeffect)。如果R1、G1、B1和A1表示红、绿、蓝和表面1的像素阿尔法值以及R2、G2、B2和A2表示红、绿、蓝和表面2相应像素的阿尔法值,则由此得到的红、绿、蓝和该像素的阿尔法分量的值是:
red =R1*(1-A2)+R2*A2 (1)
green=G1*(1-A2)+G2*A2 (2)
blue =B1*(1-A2)+B2*A2 (3)
alpha= 1 (4)
“ADD”和“SUBTRACT”加上或减去表面1和表面2的颜色通道。该结果的阿尔法等于表面2的阿尔法。
在第5行,参数字段提供了可改变合成函数的效果的一个或多个浮点参数。参数值的特定解释取决于指定了哪一个操作。
在第6行,重写表面2字段指示MatteSurface节点是否应当为存储合成操作的结果分配新表面(overwriteSurface2=FALSE)或者存储在表面2上的数据是否应当通过合成操作被重写(overwriteSurface2=TRUE)。
下面的代码部分说明了SceneSurface节点。
1)PixelSurface:SurfaceNode{
2)field Image image 0 0 0
}
PixelSurface节点将用户指定的像素阵列绘制到表面上。在第2行,图像字段描述了绘制到表面上的像素数据。
下面的代码部分说明了SceneSurface节点。
1)SceneSurface:SurfaceNode{
2)field MF ChildNode children
3)field Ulnt32 width
4)field Ulnt32 height 1
}
SceneSurface节点在指定尺寸的表面上绘制指定的孩子。SceneSurface自动重新绘制自身以反映其孩子的当前状态。
在代码部分的第2行,孩子字段描述了将要绘制的ChildNode。在概念上,孩子字段描述独立于包含SceneSurface节点的场景图而被绘制的整个场景图。
在第3和4行,宽度和高度字段以像素指定表面的尺寸。例如,如果宽度是256以及高度是512,则表面包含256×512像素值阵列。
在某些实施例中,MovieSurface、ImageSurface、MatteSurface、PixelSurface和SceneSurface节点被用于绘制场景。
在场景描述的顶层,输出被映射到显示器上,即“顶层表面”。不是将其结果绘制到显示器上,而是利用上述SceneSurface中的一个,三维绘制的场景可在表面上生成其输出,其中该输出可用来如作者所期望的那样结合进更丰富的场景合成。通过绘制表面的嵌入场景描述生成的表面的内容可包括作为表面的结构化图像组织的一部分的颜色信息、透明度(阿尔法通道)和深度。在本文中图像被规定为包括视频图像、静止图像、动画或场景。
表面还被规定为可支持位于内部、公共图像管理界面后面的各种纹理映射系统的专门需求。结果,系统中任何表面发生器可以通过三维绘制过程用作纹理。这样的表面发生器的实例包括ImageSurface、MovieSurface、MatteSurface、SceneSurface和ApplicationSurface。
在通过其嵌入的应用过程(如电子表格或文字处理器、类似于传统的窗口系统中的应用窗口的方式)进行绘制时,ApplicationSurface保持图像数据。
表面模型和绘图产品及纹理使用的集成允许解耦的绘制速率的说明性编辑。传统上,三维场景已经被整体绘制,产生面向观察者的最终的帧速率,由于场景复杂性和纹理交换,所述帧速率由最坏情况下的性能控制。在实时、连续的合成框架中,表面提取为相同屏幕上不同要素提供了用于解耦绘制速率的机制。例如,以或许每秒1帧的速率慢慢绘制来描绘网络浏览器可能是可接受的,但是只有在另一个应用产生并在浏览器的输出旁显示的视频帧速率可以维持在每秒全部30帧时才是可接受的。
如果网络浏览应用进入到其自己的表面,则屏幕组合器可不受阻碍地以全部移动视频帧速率进行绘制,使用来自网络浏览器表面的最后充分绘制的图像作为其快速屏幕更新的一部分。
定时对象
定时对象包括TimeBase节点。其作为定时节点的字段被包括在内并且向媒体提供一组公用的定时语义。通过节点举例,TimeBase节点可用于许多有关的媒体节点,以确保时间同步。包括Score节点的一组节点被用于对媒体事件排序。Score节点是定时节点并且自TimeBase导出其定时。Score节点包括Cue节点列表,其在指定的时间发出事件。下面对各种定时对象(包括Score)进行描述。
下面的代码部分说明了TimeNode节点。节点中函数的描述如下文。
1)TimedNode ChildNode{
2)field TimeBaseNode timeBase NULL
3)function Time getduration()
4)function void updateStartTime(Time now,Time mediaTime,Floatrate)
5)function void updateStopTime(Time now,Time mediaTime,Floatrate)
6)function void updateMediaTime(Time now,Time media Time,Floatrate)
}
该对象是所有受控于TimeBaseNode的节点的父代。在代码部分的第2行,TimeBase字段包含控制TimeBaseNode,在时基开始、停止或推进时,其进行被列示如下的适当的函数调用。
在第3行,getDuration函数返回TimedNode的持续时间。如果无效,则返回值为-1。该函数通常被导出的对象所覆盖。
第4行列示了updateStartTime函数。在被调用时,该函数开始推进其有关的事件或受控的媒体,其中开始偏移量由mediaTime值指定。updateStartTime函数通常被导出的对象所覆盖。
第5行列示了updateStopTime函数,在被调用时,其停止推进其有关的事件或受控的媒体。该函数通常被导出的对象所覆盖。
在第6行,当mediaTime被TimeBaseNode更新时调用updateMediaTime函数。updateMediaTime函数被导出的对象用来实施对其媒体的进一步控制或者发送额外的事件。
下面的代码部分说明了IntervalSensor节点。
1)IntervalSensor:TimedNode{
2)field Timecyclelntarval 1
3)field Float fractin 0
4)field Float time 0
}
随时间的流逝,IntervalSensor节点生成事件。IntervalSensor节点可用于许多用途,包括但不限于:驱动连续的模拟和动画、控制周期性的行为(如每分钟一次)、以及启动单个发生事件(如闹钟)。
当调用其updateStartTime()函数时,IntervalSensor节点发送初始分数和时间事件。在一个实施例中,每当调用updateMediaTime()时,该节点同样发送分数和时间事件。最后,当调用updateStopTime()函数时,发送最后的分数和时间事件。
在代码部分的第2行,由作者设置cycleInterval字段以确定以秒为单位测得的时间长度,其被认为是从0到1的分数。当getDuration()函数被调用时返回该值。
第3行列示了分数字段,无论何时TimeBaseNode利用下面的方程(1)运行时该字段生成事件:
分数=max(min(mediaTime/cycleInterval,1),0)方程(1)
第4行列示了时间字段,无论何时TimeBaseNode运行时,该字段生成事件。时间字段的值是当前的壁钟时间。
下面的代码部分说明了Score节点。
1)Score:TimedNode{
2)field ME CueNode cue
}
该对象为所接收的每一个updateStartTime()、updateMediaTime()和updateStopTime()调用提示(cue)字段中的每一项。对每一个提示项的调用返回当前累积的相对时间。该值被传递至后面的提示项以允许提示项之间的相对偏移量被计算。
在代码部分的第2行,随着mediaTime的流逝,提示字段保持CueNode项列表被调用20。
下面的代码部分说明了TimeBaseNode节点。
1)TimeBaseNode:Node{
2)fieldTime mediaTime 0
3)function void evaluate(Time time)
4)function void addClient(TimedNode node)
5)function void removeClient(TimedNode node)
6)functfion 1nt32 getNumClients 0
7)function TimedNode getClient(1nt32 index)
}
该对象是生成mediaTime的所有节点的父代。代码部分的第2行列示了mediaTime字段,当mediaTime推进时,其生成事件。mediaTime字段通常受控于导出的对象。
第3行列示了评估(evalulate)函数,如果这个TimeBaseNode已经记录对接收时间事件感兴趣,当时间推进时该函数被调用。
第4行列示了addClient函数,当这个TimeBaseNode在其timeBase字段中被设置时,该函数被每个TimedNode调用。当mediaTime开始、推进或停止时,列表中每个客户被调用。如果被传递的节点已经是客户,该函数实施空操作。
第5行列示了removeClient函数,当这个TimeBaseNode在其timeBase字段中不再被设置时,该函数被每个TimedNode调用。如果被传递的节点不在客户列表中,该函数实施空操作。
第6行列示了getNumClients函数,其返回当前客户列表中的客户数。
第7行列示了getClient函数,其返回被传递索引处的客户。如果索引在范围之外,则返回空值NULL。
下面的代码部分说明了TimeBase节点。
1)TimeBase:TimeBaseNode{
2)field Boolloop false
3)field Time startTime 0
4)field Time playTime0
5)field Time stopTime 0
6)field Time mediastartTime 0
7)field Time mediaStopTime 0
8)field Float rate 1
g)field Time duration0
10)field Bool enabled true
11)field fool isActive false
}
该对象控制mediaTime的推进。TimeBase可开始、停止和重新开始该值,以及使mediaTime不断循环。TimeBase允许mediaTime在其范围的子集上被播放。
在代码部分的第2行,当mediaTime到达其行程的终点时,循环(loop)字段控制mediaTime是否重复其推进。
在第3行,startTime字段控制什么时候mediaTime开始推进。当到达startTime(其单位为壁钟时间)时,TimeBase开始运行。只要stopTime小于startTime,其为真。当其发生时,如果速率大于或等于0,mediaTime被设为mediastartTime的值。如果mediastartTime在范围之外(参见mediastartTime的有效范围的描述),mediaTime被设为0。如果速率小于0,mediaTime被设为mediaStopTime。如果mediaStopTime在范围之外,mediaTime被设为持续时间。TimeBase继续运行直至到达stopTime或到达mediaStopTime(如果速率小于0则为mediastartTime)为止。如果startTime事件被接收同时TimeBase正在运行,则其被忽略。
在第4和5行,除激活时未重置mediaTime之外,playTime字段的表现与startTime相同。在TimeBase用stopTime停止之后,playTime字段允许mediaTime继续推进。如果playTime和startTime具有相同的值,则startTime优先。如果playTime事件被接收同时TimeBase正在运行,则事件被忽略。stopTime字段控制TimeBase什么时候停止。
在第6行,mediastartTime字段设置mediaTime将运行的媒体持续时间的子范围的起点。mediastartTime的范围从零到持续时间的终点(0..持续时间)。如果mediaStartTime字段的值在范围之外,在该处使用0。
在第7行,mediaStopTime字段设置mediaTime运行的媒体持续时间的子范围的终点。mediaStopTime的范围从零到持续时间的终点(0..持续时间)。如果mediaStopTime字段的值在范围之外,在该处使用持续时间值。
在第8行,速率字段允许mediaTime以除壁钟时间的每秒二分之一(one second per second)以外的速率运行。在这个速率字段中设置的速率用作瞬时速率。当调用评估函数时,自上次调用以来的经过的时间乘以速率并且使该结果加上当前的mediaTime。
在第9行,当这个TimeBase的所有客户的持续时间已经确定了它们的持续时间时,持续时间字段生成事件。持续时间字段的值与具有最长持续时间的客户相同。
在第10行,启动字段启动TimeBase。当启动字段变为假时,如果isActive为真则会变为假并且mediaTime停止推进。在为假时,startTime和playTime被忽略。当启动字段变为真时,startTime和playTime被评估以确定TimeBase是否应当开始运行。如果是,则实施如在startTime或playTime中描述的行为。
第11行列示了isActive字段,当TimeBase变为有效时,该字段生成真事件;当timefalse变为无效时,该字段生成假事件。
下面的代码片断说明了CueNode节点。
1)CueNode:Node{
2)field Float offset-1
3)field float delay 0
4)field Bool enabled true
5)field Int32 direction 0
6)function vold updateStartTime(Time now,Time mediaTime,Floatrate)
7)function void updateStopTima(Time now,Time mediaTime,Floatrate)
8)function Time evaluate(Time accumulated,Time now,Timemedia Time,Float rate)
9)function Time getAccumulatedTime(Time accumulated)
10)function void fire(Time now,Time mediaTime)
该对象是Score的提示列表中所有对象的父代。在代码部分的第2行,偏移字段建立从序列开始的0相对偏移量。例如,当输入的mediaTime达到为5的值时,为5的值将激发CueNode。
在第3行,在CueNode激发之前,延迟字段建立相对延迟。如果偏移量为除-1(缺省)以外的值,则这个延迟根据偏移量测得。另外,延迟从以前的CueNode的终点测得或者如果这是第一CueNode则从0测得。例如,如果偏移量具有为5的值并且延迟具有为2的值,则当mediaTime达到7时这个节点将激发。如果偏移量具有为-1的值并且延迟具有为2的值,则在以前的CueNode结束之后这个节点将激发2秒钟。
在第4行,如果启动字段为假,CueNode被禁用。CueNode表现得好像偏移量和延迟均为其缺省值并且它未激发事件。如果其为真,则CueNode表现正常。
在第5行,方向字段控制这个节点如何相对于mediaTime行程的方向激发。如果这个字段为0,无论mediaTime是正在增加(速率大于零)还是正在减少(速率小于零),当达到这个节点的偏移量和/或延迟时该节点激发。如果方向字段小于零,当mediaTime减少时,只有当达到它的偏移量和/或延迟时这个节点才激发。如果方向字段大于零,当mediaTime增加时,只有当达到这个节点的偏移量和/或延迟时该节点才激发。
第6行列示了updateStartTime函数,当父代Score接收updateStartTime()函数调用时,该函数被调用。每个CueNode被依次调用。
第7行列示了updateStopTime函数,当父代Score 25接收updateStopTime()函数调用时,该函数被调用。每个CueNode被依次调用。
第8行列示了评估函数,当父代Score接收updateMediaTime()函数调用时,该函数被调用。每个CueNode被依次调用并且必须返回其累积时间。例如,如果偏移量为5并且延迟为2,CueNode将返回值为7。如果偏移量是-1并且延迟为2,CueNode将返回值为输入累积时间加2。这是缺省行为。某些CueNode(如IntervalCue)具有很好定义的持续时间以及激发时间。
在第9行,利用与evaluate()函数中相同的计算,getAccumulatedTime函数返回累积时间。
第10行列示了激发函数,当CueNode达到其激发时间时,该函数根据缺省evaluate()函数被调用。规定激发函数被特定的导出对象所忽略以此实施适当的行为。
下面的代码部分说明了MediaCue节点。
1)MediaCue CueNodeTimeBaseNode{
2)field Time mediastartTime 0
3)field Time mediaStopTime 0
4)field Time duration 0
5)field Bool isActive false
}
当这个CueNode有效时,这个对象控制mediaTime的推进。MediaCue允许mediaTime将在其范围的子集上被播放。针对mediaStopTime减去mediaStartTime确定的时间长度,根据偏移和/或延迟字段确定的时间,MediaCue是有效的。值MediaCue由getAccumulatedTime()返回,其为通过使缺省函数加上mediaStopTime并减去mediaStartTime计算的值。这个节点生成mediaTime同时为有效时,其通过从输入mediaTime减去激发时间加mediaStartTime计算得到。mediaCue因此以与输入mediaTime相同的速率推进mediaTime。
在代码部分的第2行,mediaStartTime字段设置mediaTime运行的媒体持续时间的子范围的起点。MediaStartTime的范围从零至持续时间的终点(0..持续时间)。如果mediaStartTime字段的值在范围之外,在该处使用0。
在行3行,mediaStopTime字段设置mediaTime运行的媒体持续时间的子范围的终点。MediaStopTime的范围从零至持续时间的终点(0..持续时间)。如果mediaStopTime字段的值在范围之外,在该处使用持续时间。
在第4行,当这个TimeBaseNode的所有客户的持续时间已经确定了它们的持续时间,持续时间字段生成事件。持续时间字段的值与具有最长持续时间的客户的相同。
第5行列示了isActive字段,当这个节点变为有效时,该字段生成真事件;当这个节点变为无效时,该字段生成假事件。
下面的代码部分说明了IntervalCue节点。
1)IntervalCue CueNode{
2)field Float perid 1
3)field Bool rampup true
4)field Float fraction 0
5)field Bool isActive false
}
当时间推进时,这个对象发送从0到1(或者如果rampup为假则从1到0)的分数事件。代码片断的第2行列示了周期字段,其确定以秒为单位的分数匀变(ramp)推进的时间。
在第3行,如果rampUp字段为真(缺省),在IntervalCue的持续时间上分数从0上升到1。如果为假,分数从1下降到0。如果mediaTime正在逆向运行(当速率小于零时),当rampUp字段为真时分数从1下降到0,并且当rampUp字段为假时,分数从0上升到1。
在第4行,分数字段发送对evaluate()的每个调用的事件同时该节点有效。如果mediaTime正在向前移动,当这个节点激发时分数开始输出并且当这个节点达到其激发时间加周期时停止。分数的值被描述如下:
分数=(mediaTime-激发时间)*周期 方程(2)
第5行列示了isActive字段,当节点变为有效时,该字段发送真事件;当节点变为无效时,该字段发送假事件。如果mediaTime正在向前移动,当mediaTime大于或等于激发时间时该节点变为有效。当mediaTime大于或等于激发时间加周期时该节点变为无效。如果mediaTime正在向后移动,当mediaTime小于或等于激发时间加周期时该节点变为有效并且当mediaTime小于或等于激发时间时该节点变为无效。这些事件的激发受方向字段的影响。
下面的代码部分说明了FieldCue节点。
1)FieldCite:CueNode{
2)field Field cueValue NULL
3)field Fild cueOut NULL
}
当FieldCue激发时,这个对象将cueValue作为事件发送至cueOut。FieldCue允许任何字段类型被设置和省略。cueOut值可以被发送至任何类型的字段。如果cueValue的当前类型不与目的字段的类型兼容,不明确的结果可发生。
在代码部分的第2行,cueValue字段是这个节点激发时将被发出的编辑值。第3行列示了cueOut字段,当这个节点激发时,该字段发送具有cueValue的值的事件。
下面的代码部分说明了TimeCue节点。
1)Timecue:CueNode{
2)fied Time cueTime 0
}
当TimeCue激发时,这个节点将当前壁钟时间作为事件发送至cueTime。代码部分的第2行列示了cueTime字段,当这个节点激发时,该字段发送具有当前壁钟时间的事件。
在实时场景合成的范围内构建计分使得作者能够说明性地描述对各种各样的表示和重放技术的时间控制,包括:图像动画书和图像合成动画(如动画GIF);视频及音频剪辑和流;几何动画剪辑和流,如连锁转化、几何形态和纹理坐标;绘制参数的动画,如照明、雾和透明度;行为、模拟或生成系统的参数的调制;以及资源加载、事件净噪和逻辑函数的动态控制。例如,下面的实例发出字符串以便预载图像资源,接着利用该图像实施动画,而后放映影片。下面实例中的字符串还可以是逆向运行的(即首先影片回播,接着动画回播,而后图像消失)。
1)Score{
2)timeBase DEF TB TimeBase {}
3)cue[
4)Fieldcue{
5)cueValue String″″
6)cueout TO ISURF.URL
7)direction-1
8)}
9)FieldCue{
10)cueValueString ″imagel.png″
11)cutOut TO ISURF.url
12)direction-10
13)}
14)IntervalCue{
15)delay 0.5
16)period 2.5#2.5 second animation
17)Fraction TO Plfractlon
18)}
19)DEF MC MedlaCue{
20)offset2
21)}
22)Fieldcue{
23)cueValue String″″
24)cueOut TO ISURF.URL
25)direction-1
26)delay-0.5
27)}
28)Fieldcue{
29)cue Value String ″imagel.png″
30)cueOut TO ISURF.URL
31)direction-1
32)delay-0.5
33)}
34)]
35)}
36)#Slide out image
37)DEFT Transform{
38)children Shape{
39)appearance Appearance{
40)texture Texture{
41)surface DEF ISURF ImageSurface {}
42)}
43)}
44)geometry IndexedFaceSet{...}
45)}
46)}
47)DEF P1 PositionInterpolator
48)key...
49)keyValue...
50)value TO T,transiation
51)}
52)#Movie
53)Shape{
54)appearance Appearance{
55)texture Texture{
56)surface MovieSurface{
57)urf″myMovie.mpg″
58)timeBase USE MC
59)}
60)}
61)}
62)geornetry IndexedFaceSet{...}
63)}
在一个实施例中,相对于TimeBase的媒体时间,Score中的Cue节点激发,提供公共参考并且因此产生各种媒体资源的定时之间的精确关系。在上面的代码片断中,当TimeBase开始时,FieldCue(第9行)就激发,因为该FieldCue具有缺省偏移和延迟字段,从而使得图像显现。代码部分的第35-45行将图像(500,图5)加载到表面上。IntervalCue(第13行)接着起动0.5秒之后并且在接下来的2.5秒内运行,增加其从0到1的分数输出。IntervalCue的激发开始图像的动画(502,图5)。第46-50行控制动画。在TimeBase开始之后,或者当InterCue是1.5秒进入其动画中从而开始播放影片时,MediaCue(第18行)起动2秒。
第51-62行将影片的第一帧(504,图5)加载到表面上。当这个字符串回放时,首先影片反向播放。接着0.5秒之后图像出现,以及0.5秒之后图像显现,动画开始播放。动画反向播放2.5秒,当其停止并且0.5秒之后图像消失。这个实例表明Cue彼此偏移或者自TimeBase偏移的能力并且表明后面的Cue可在最后一个已经完成之前起动。
在一个实施例中,MediaCue为作者提供了同步工具。MediaCue是Cue的一种形式,其表现类似于TimeBase。实际上,正如上面的实例所示的,在某些情况下,在可使用TimeBase的地方可使用MediaCue。然而,因为MediaCue被嵌入事件的时间序列中,实际应用具有的信息足以请求预载资源。
图6说明了利用预载函数对图5的媒体序列的同步。例如,在上述的实例中,如果实际应用了解影片花费0.5秒预载并且即刻播放,在TimeBase开始之后,等待(块610)1.5秒后,在块615中,
“准备就绪”信号被发送至MovieSurface。当接收到准备就绪信号时,在块620中影片被预载。这将提供请求的0.5秒用来预载。
在块625中,请求开始被接收,并且当接受到请求开始时,块630即刻开始播放影片。
TimeBase和系统411中允许的媒体排序能力的组合使得能够产生具有复杂定时的表示。图7A示出了系统411的各个部件的时间关系。观察者在选择新的表示(760)时观看其中他可以选择故事(762)的屏幕。当用户从五个故事S1、S2、S3、S4和S5的备选物中选择故事S3时,带有预告的欢迎屏幕被显示(764)。在欢迎屏幕上,观察者可选择切换到另一个故事(774),从而中断故事S3。在欢迎语句之后,屏幕移至故事(766)的位置并且所选择的故事被播放(768)。这里,观察者可进到下一个故事,前一个故事,倒退到当前故事或者选择播放故事S3的扩展版本(770)或者跳到(772)比如另一个故事S5。在选择的故事播放之后,用户可进行下一个选择。
表面模型同绘图产品以及纹理使用的结合允许嵌套场景能够被说明性地绘制。当图像允许可扩充编辑时,子场景的重组被绘制。尤其是,接着由图像混合成更大视频内容的动画子场景的使用使得娱乐性计算机图形更有相应美感。例如,图像混合方法为视觉艺术家提供了窗口系统以前生成的未经加工的硬边剪辑的替代物。
图7B示出了系统100的各种部件的时间关系。与图7A类似,观察者在选择新的表示(760)时观看其中他可以选择故事(762)的屏幕。带有预告的欢迎屏幕被显示(764)。在欢迎屏幕上,观察者可选择切换到另一个故事(774)从而中断故事S3。在欢迎语句之后,屏幕移至故事(766)的位置并且所选择的故事被播放(768)。在这一点上,观察者可进到下一个故事,前一个故事,倒退到当前故事或者选择播放故事S3的扩展版本(770)或者跳到(772)比如另一个故事S5。在所选择的故事被播放之后,用户可进行下一个选择。
另外,TimeBase还允许使当前行为暂停的“停止时间”函数出现。通过暂停当前的行为,时钟临时停止。在一个实施例中,暂停当前的行为允许调试将要实施的操作。在另一个实施例中,暂停当前行为允许观察者以较慢的步调体验当前的行为。
在一个实施例中,停止块(779)用来在新的表示选择(760)之后并且在用来选择故事(762)的屏幕显示之前使各种选择的显示暂停。在另一个实施例中,停止块(789)用来在进行选择之前使用户的选择显示暂停。例如,停止块(789)允许可能的选择呈现在欢迎屏幕上(764)并且防止故事(774)和故事(766)的选择。在另一个实施例中,对于内容(772)的选择已经实施之后,停止块(787)用来使显示内容(772)暂停。
在一个实施例中,停止块(779、789和787)使预定时间量的行为暂停。在另一个实施例中,停止块(779、789和787)使行为暂停直至额外输入被接收以便重新开始该行为。
图8描绘了包括动画子场景的嵌套场景。图9是表示被实施用来绘制图7的嵌套场景的行为的流程图。块910绘制在屏幕显示器800上显示的背景图像,并且块915将立方体802放进于屏幕显示器800上显示的背景图像内。立方体802外的面积是构成显示器800上立方体802的背景的表面的一部分。立方体802的表面804被定义为第三表面。块920利用MovieSurface节点在第三表面上绘制影片。因此,立方体的表面804显示在第三表面上绘制的影片。立方体802的表面806被定义为第四表面。块925利用ImageSurface节点在第四表面上绘制图像。因此,立方体的表面806显示在第四表面上绘制的图像。在块930中,整个立方体802被定义为第五表面并且在块935中这个第五表面被平移和/或旋转,从而利用在表面804上播放的影片和表面806上显示的静态图像创建移动立方体。按照上述的过程可将不同的绘制图显示在立方体802的每个表面上。应当注意的是,可以任何顺序实施块910至935,包括同时开始所有的块910至935。
图10示出的是说明其中实现了用于为远程平台编辑说明内容的系统1000的示范体系结构的示范结构框图。在一个实施例中,系统1000包括编辑装置1010、目标装置1020、接口装置1030和网络1040。在一个实施例中,网络1040允许编辑装置1010、目标装置1020、和接口装置1030彼此通信。
在一个实施例中,编辑装置1010包括编辑应用,其允许用户通过如上所述的代码片断的说明性语言创建编辑内容。在一个实施例中,文件服务器(如Apache和Zope)在编辑装置1010上运行并且支持本地文件系统。
在一个实施例中,目标装置1020与编辑装置1010进行通信并且接收在编辑装置1010上编写的编辑内容。
在一个实施例中,接口装置1030通过远程装置1020播放编辑内容。接口装置1030可包括可视显示屏和/或扬声器。
在一个实施例中,网络1040是互联网。在一个实施例中,编辑装置1010和远程装置1020之间的通信通过TCP/IP套接字(socket)来实现。在一个实施例中,编辑内容由远程装置1020通过TCP/IP自编辑装置1010获取并且通过HTTP提供给目标。
图11所描绘的流程图是用于为远程平台编辑说明内容的方法和设备的一个实施例。在没有背离用于将信息传递至事件参与者的方法和设备的精神的情况下,可以不同的顺序实施流程图内的块。另外,在没有背离用于为远程平台编辑说明内容的方法和设备的精神的情况下,可以删除、添加或组合这些块。另外,块可以和其他块同时被实施。
图11的流程图说明了按照本发明实施例的、为远程平台编辑说明内容。
在块1110中,编辑内容在编辑装置上被修改或创建。在一个实施例中,编辑装置是利用比如Windows、Unix、Mac OS等这样的操作系统的个人计算机。在一个实施例中,编辑装置利用说明性语言创建编辑内容。一种这样的说明性语言利用在上面说明书中示出的代码片断来说明。另外,在编辑装置上创建的编辑内容特别是为了用于远程装置(如博弈控制台、蜂窝式电话、个人数字助理、机顶盒等)而开发的。
在一个实例中,编辑内容被配置成可在远程装置上显示可视图像。在另一个实例中,编辑内容被配置成可在远程装置上播放音频信号。在又一个实施例中,编辑内容被配置成可同时播放可视图像和音频信号。
在块1120中,远程装置被检测。在一个实施例中,远程装置的通信参数被检测,如特定TCP/IP套接字。
在块1130中,编辑装置与远程装置进行通信。在一个实施例中,编辑装置通过直接的有线连接(如电缆)直接与远程装置通信。在另一个实施例中,编辑装置通过网络(如互联网、无线网络等)与远程装置通信。
在块1140中,编辑内容自编辑装置被传输至远程装置。在一个实施例中,编辑内容作为数据流被传输至远程装置。
在块1150中,通过远程装置使用编辑内容。在一个实施例中,远程装置可视地显示利用远程装置的编辑内容。在另一个实施例中,远程装置播放编辑内容的音频信号。在一个实施例中,在接口装置1030上使用编辑内容。在一个实施例中,当编辑内容流至远程装置时,远程装置开始使用编辑内容。在另一个实施例中,在编辑内容被传输至远程装置之后,远程装置使用编辑内容。
在一个实施例中,在块1140中,在远程装置上使用编辑内容的一部分同时剩余的编辑内容正被传输至远程装置。
在块1160中,当编辑内容被远程装置使用时,编辑装置监控编辑内容。例如,编辑装置追踪与远程装置上显示的编辑内容相对应的编辑内容的特定部分。在另一个实例中,在块1140中,编辑装置监控远程装置使用的编辑内容同时编辑内容的一部分仍然正被传输至远程装置。
在块1170中,编辑装置控制远程装置上编辑内容的重放。例如,编辑装置能够暂停、倒退、向前和启动远离编辑装置的远程装置上的编辑内容的重放。
在块1180中,编辑装置调试编辑内容。在一个实施例中,编辑装置通过在编辑装置上观看编辑内容的脚本同时在远程装置上经过编辑内容的重放来调试编辑内容。在另一个实施例中,编辑装置使远程装置上编辑内容的重放暂停同时在编辑装置上调试编辑内容的相应脚本。例如,当编辑内容在远程装置上被暂停时,相应的编辑内容被监控并且可用来在编辑装置上进行修改和/或调试。
出于说明和描述的目的,前面已经对本发明特定实施例进行了描述。本发明可用于各种其他的应用。
它们不是用来穷举的或是将本发明限于所公开的精确实施例的,并且自然地,按照上面教导的观点,许多修改和变更是可能的。选择并描述实施例以便于解释本发明的原理及其实际应用,从而使得本领域其他技术人员能够更好地使用本发明和在适于预计的特定用途时具有各种不同修改的各种实施例。本发明的范围旨在由所附权利要求书及其等同物来界定。
Claims (37)
1.一种方法,包括:
将编辑内容自编辑装置传输至远程装置;
在所述远程装置上直接播放所述编辑内容;以及
在所述编辑装置上监控所述编辑内容的一部分,同时在所述远程装置上播放所述编辑内容的一部分,
其中所述编辑内容以说明性标记语言来编写。
2.如权利要求1所述的方法,还包括在所述编辑装置上修改所述编辑内容的一部分同时在所述远程装置上播放所述编辑内容的一部分的步骤。
3.如权利要求1所述的方法,其中直接播放的步骤还包括显示与所述编辑内容相对应的多个图像。
4.如权利要求1所述的方法,其中直接播放的步骤还包括播放与所述编辑内容相对应的音频信号。
5.如权利要求1所述的方法,还包括在所述编辑装置上创建所述编辑内容的步骤。
6.如权利要求5所述的方法,其中创建所述编辑内容的步骤还包括利用驻留在所述编辑装置上的工具来创建所述编辑内容。
7.如权利要求6所述的方法,其中所述工具是(这里的实例)。
8.如权利要求1所述的方法,还包括在所述编辑装置上调试所述编辑内容的一部分同时在所述远程装置上播放所述编辑内容的一部分的步骤。
9.如权利要求1所述的方法,还包括在所述远程装置上控制来自所述编辑装置的编辑内容的步骤。
10.如权利要求9所述的方法,其中控制编辑内容的步骤还包括在所述远程装置上启动所述编辑内容的重放。
11.如权利要求9所述的方法,其中控制编辑内容的步骤还包括在所述远程装置上暂停所述编辑内容的重放。
12.如权利要求9所述的方法,其中控制编辑内容的步骤还包括在所述远程装置上使所述编辑内容的重放位置快进。
13.如权利要求9所述的方法,其中控制编辑内容的步骤还包括在所述远程装置上使所述编辑内容的重放位置倒退。
14.如权利要求1所述的方法,其中所述远程装置是博弈控制台、蜂窝式电话、个人数字助理、机顶盒或寻呼机中的一个。
15.如权利要求1所述的方法,其中所述编辑装置是个人计算机。
16.一种系统,包括:
用于将编辑内容自编辑装置传输至远程装置的组件;
用于在所述远程装置上直接播放所述编辑内容的组件;以及
用于所述编辑装置上监控所述编辑内容的一部分同时在所述远程装置上播放所述编辑内容的一部分的组件,
其中所述编辑内容以说明性标记语言编写。
17.一种方法,包括:
在编辑装置上修改编辑内容,其中所述编辑内容以说明性标记语言编写;
将所述编辑内容自所述编辑装置传输至远程装置;以及
在所述远程装置上播放所述编辑内容的一部分同时将所述编辑内容自所述编辑装置传输至所述远程装置。
18.如权利要求17所述的方法,还包括在所述编辑装置上监控所述编辑内容的一部分同时在所述远程装置上播放所述编辑内容的一部分的步骤。
19.如权利要求17所述的方法,还包括在所述编辑装置上调试所述编辑内容的一部分同时在所述远程装置上播放所述编辑内容的一部分的步骤。
20.如权利要求17所述的方法,其中播放步骤还包括显示与所述编辑内容相对应的多个图像。
21.如权利要求17所述的方法,其中直接播放的步骤还包括播放与所述编辑内容相对应的音频信号。
22.如权利要求1所述的方法,还包括在所述编辑装置上创建所述编辑内容。
23.如权利要求22所述的方法,其中创建所述编辑内容的步骤还包括利用驻留在所述编辑装置上的工具来创建所述编辑内容。
24.如权利要求23所述的方法,其中所述工具是(这里的实例)。
25.如权利要求17所述的方法,还包括在所述远程装置上控制来自所述编辑装置的编辑内容的步骤。
26.如权利要求25所述的方法,其中控制所述编辑内容的步骤还包括在所述远程装置上启动所述编辑内容的重放。
27.如权利要求25所述的方法,其中控制所述编辑内容的步骤还包括在所述远程装置上暂停所述编辑内容的重放。
28.如权利要求25所述的方法,其中控制所述编辑内容的步骤还包括在所述远程装置上使所述编辑内容的重放位置快进。
29.如权利要求25所述的方法,其中控制所述编辑内容的步骤还包括在所述远程装置上使所述编辑内容的重放位置倒退。
30.如权利要求17所述的方法,其中所述远程装置是博弈控制台、蜂窝式电话、个人数字助理、机顶盒或寻呼机中的一个。
31.如权利要求17所述的方法,其中所述编辑装置是个人计算机。
32.一种系统,包括:
编辑装置,用来修改编辑内容,其中所述编辑内容以说明性标记语言编写;
远程装置,被配置成播放所述编辑内容;以及
网络,被配置成可将所述编辑内容自所述编辑装置流至所述远程装置,
其中所述编辑内容的初始部分同时被所述远程装置利用,而所述编辑内容的剩余部分流至所述远程装置。
33.如权利要求32所述的系统,还包括所述远程装置内的存储模块,用来缓冲由所述远程装置接收的所述编辑内容。
34.如权利要求32所述的系统,其中所述远程装置是博弈控制台、蜂窝式电话、个人数字助理、机顶盒或寻呼机中的一个。
35.如权利要求32所述的系统,其中所述编辑装置是个人计算机。
36.如权利要求32所述的系统,其中所述网络是互联网。
37.一种计算机可读介质,具有用于实施包括以下步骤的方法的计算机可执行指令:
在编辑装置上修改编辑内容,其中所述编辑内容以说明性标记语言编写;
将所述编辑内容自所述编辑装置传输至所述远程装置;以及
在所述远程装置上播放所述编辑内容的一部分同时将所述编辑内容自所述编辑装置传输至所述远程装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/938,106 | 2004-09-09 | ||
US10/938,106 US20050035970A1 (en) | 1999-08-03 | 2004-09-09 | Methods and apparatuses for authoring declarative content for a remote platform |
PCT/US2005/029744 WO2006031381A2 (en) | 2004-09-09 | 2005-08-19 | Methods and apparatuses for authoring declarative content. |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101095130A true CN101095130A (zh) | 2007-12-26 |
CN101095130B CN101095130B (zh) | 2010-12-29 |
Family
ID=36060495
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2005800379248A Expired - Fee Related CN101095130B (zh) | 2004-09-09 | 2005-08-19 | 用于为远程平台编辑说明内容的方法和设备 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20050035970A1 (zh) |
EP (1) | EP1800266A4 (zh) |
JP (1) | JP2008518286A (zh) |
KR (1) | KR20070101844A (zh) |
CN (1) | CN101095130B (zh) |
WO (1) | WO2006031381A2 (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7681114B2 (en) * | 2003-11-21 | 2010-03-16 | Bridgeborn, Llc | Method of authoring, deploying and using interactive, data-driven two or more dimensional content |
EP1911278A2 (en) * | 2005-08-04 | 2008-04-16 | Nds Limited | Advanced digital tv system |
US8117541B2 (en) | 2007-03-06 | 2012-02-14 | Wildtangent, Inc. | Rendering of two-dimensional markup messages |
CN101647045A (zh) * | 2007-03-15 | 2010-02-10 | 汤姆森特许公司 | 用于场景图中的参数的访问及控制的方法和系统 |
US20090079744A1 (en) * | 2007-09-21 | 2009-03-26 | Microsoft Corporation | Animating objects using a declarative animation scheme |
WO2011155141A1 (ja) * | 2010-06-08 | 2011-12-15 | パナソニック株式会社 | コンテンツ管理サーバ及びコンテンツ管理方法 |
US8634695B2 (en) * | 2010-10-27 | 2014-01-21 | Microsoft Corporation | Shared surface hardware-sensitive composited video |
US10382287B2 (en) * | 2012-02-23 | 2019-08-13 | Ajay JADHAV | Persistent node framework |
US9952953B2 (en) | 2015-11-02 | 2018-04-24 | Microsoft Technology Licensing Llc | Non-monotonic eventual convergence for desired state configuration |
US20220134222A1 (en) * | 2020-11-03 | 2022-05-05 | Nvidia Corporation | Delta propagation in cloud-centric platforms for collaboration and connectivity |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5764241A (en) * | 1995-11-30 | 1998-06-09 | Microsoft Corporation | Method and system for modeling and presenting integrated media with a declarative modeling language for representing reactive behavior |
US20030093790A1 (en) * | 2000-03-28 | 2003-05-15 | Logan James D. | Audio and video program recording, editing and playback systems using metadata |
US6359619B1 (en) * | 1999-06-18 | 2002-03-19 | Mitsubishi Electric Research Laboratories, Inc | Method and apparatus for multi-phase rendering |
EP1067458A1 (en) | 1999-07-09 | 2001-01-10 | CANAL+ Société Anonyme | Running and testing applications |
US6084393A (en) * | 1999-10-15 | 2000-07-04 | U.S. Army Corps Of Engineers As Represented By The Secretary Of The Army | Scour probe assembly |
US6567091B2 (en) * | 2000-02-01 | 2003-05-20 | Interactive Silicon, Inc. | Video controller system with object display lists |
US7107462B2 (en) * | 2000-06-16 | 2006-09-12 | Irdeto Access B.V. | Method and system to store and distribute encryption keys |
US6791574B2 (en) * | 2000-08-29 | 2004-09-14 | Sony Electronics Inc. | Method and apparatus for optimized distortion correction for add-on graphics for real time video |
JP2002073367A (ja) * | 2000-09-05 | 2002-03-12 | Hudson Soft Co Ltd | 光ディスクエミュレーション装置 |
JP4670136B2 (ja) * | 2000-10-11 | 2011-04-13 | ソニー株式会社 | オーサリング・システム及びオーサリング方法、並びに記憶媒体 |
WO2002050719A2 (en) * | 2000-12-18 | 2002-06-27 | Kargo, Inc. | A system and method for delivering content to mobile devices |
US20020078103A1 (en) * | 2000-12-20 | 2002-06-20 | Gorman William Phillip | Wizard development kit |
JP2002268999A (ja) * | 2001-03-09 | 2002-09-20 | Toshiba Corp | コンテンツ再生方法及び装置 |
EP1241857A1 (en) * | 2001-03-15 | 2002-09-18 | Nokia Corporation | Method for accessing files stored in a mobile terminal device supporting an internet protocol |
US20030088511A1 (en) * | 2001-07-05 | 2003-05-08 | Karboulonis Peter Panagiotis | Method and system for access and usage management of a server/client application by a wireless communications appliance |
US7400729B2 (en) * | 2001-12-28 | 2008-07-15 | Intel Corporation | Secure delivery of encrypted digital content |
JP2004234497A (ja) * | 2003-01-31 | 2004-08-19 | Canon Inc | リモートデバッグ装置 |
WO2005008385A2 (en) * | 2003-07-07 | 2005-01-27 | Cryptography Research, Inc. | Reprogrammable security for controlling piracy and enabling interactive content |
US20060015580A1 (en) * | 2004-07-01 | 2006-01-19 | Home Box Office, A Delaware Corporation | Multimedia content distribution |
-
2004
- 2004-09-09 US US10/938,106 patent/US20050035970A1/en not_active Abandoned
-
2005
- 2005-08-19 CN CN2005800379248A patent/CN101095130B/zh not_active Expired - Fee Related
- 2005-08-19 EP EP05788777A patent/EP1800266A4/en not_active Withdrawn
- 2005-08-19 KR KR1020077007912A patent/KR20070101844A/ko not_active Application Discontinuation
- 2005-08-19 JP JP2007531186A patent/JP2008518286A/ja active Pending
- 2005-08-19 WO PCT/US2005/029744 patent/WO2006031381A2/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
WO2006031381A3 (en) | 2007-07-19 |
US20050035970A1 (en) | 2005-02-17 |
CN101095130B (zh) | 2010-12-29 |
EP1800266A4 (en) | 2012-06-13 |
KR20070101844A (ko) | 2007-10-17 |
EP1800266A2 (en) | 2007-06-27 |
WO2006031381A2 (en) | 2006-03-23 |
JP2008518286A (ja) | 2008-05-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101095130B (zh) | 用于为远程平台编辑说明内容的方法和设备 | |
US20100083077A1 (en) | Automated multimedia object models | |
US20180330756A1 (en) | Method and apparatus for creating and automating new video works | |
US20190252000A1 (en) | Methods and apparatus for remote motion graphics authoring | |
Sawhney et al. | Authoring and navigating video in space and time | |
US20040071453A1 (en) | Method and system for producing interactive DVD video slides | |
US8559792B2 (en) | System, method and medium generating frame information for moving images | |
US20080126939A1 (en) | System, method and medium playing moving images | |
CN102752639A (zh) | 使用元数据来处理多个视频流的方法和设备 | |
WO2007034455A2 (en) | Method for programming by rehearsal | |
US20050128220A1 (en) | Methods and apparatuses for adjusting a frame rate when displaying continuous time-based content | |
US7532217B2 (en) | Methods and systems for scoring multiple time-based assets and events | |
CN101401130B (zh) | 提供视频帧序列的设备和方法,提供场景模型的设备和方法,场景模型,创建菜单结构的设备和方法,以及计算机程序 | |
US20050021552A1 (en) | Video playback image processing | |
JP4260747B2 (ja) | 動画像構成方法及びシーン構成方法 | |
WO2005109269A1 (ja) | コンテンツ提供システム | |
KR101199643B1 (ko) | 가상홍보공간 구현시스템 | |
KR20090000099A (ko) | 애니메이션 공정관리 시스템을 이용한 사용자 중심의콘텐츠 생성과 사용방법 및 그 시스템 | |
Larson et al. | Flash Video for Professionals, Expert Techniques for Integrating Video on the Web | |
WO2001018655A1 (en) | Method and system for music video generation | |
JP2005352994A (ja) | コンテンツ再生方法 | |
JP2006505049A (ja) | メディアシーケンスの構成方法及びメディア表示方法 | |
CN117370692A (zh) | 一种页面显示方法以及相关设备 | |
KR20020028594A (ko) | 대용량 기록매체 제작 및 판매사업기법 | |
KR20120137967A (ko) | 영상 컨텐츠의 가공 및 판매 시스템 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20101229 Termination date: 20130819 |