CN103488472B - 处理三维图形对象的方法和系统 - Google Patents
处理三维图形对象的方法和系统 Download PDFInfo
- Publication number
- CN103488472B CN103488472B CN201310284574.1A CN201310284574A CN103488472B CN 103488472 B CN103488472 B CN 103488472B CN 201310284574 A CN201310284574 A CN 201310284574A CN 103488472 B CN103488472 B CN 103488472B
- Authority
- CN
- China
- Prior art keywords
- change
- message
- graphic object
- dimensional graphic
- scene
- 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.)
- Active
Links
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
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2219/00—Indexing scheme for manipulating 3D models or images for computer graphics
- G06T2219/024—Multi-user, collaborative environment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2219/00—Indexing scheme for manipulating 3D models or images for computer graphics
- G06T2219/20—Indexing scheme for editing of 3D models
- G06T2219/2021—Shape modification
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Architecture (AREA)
- Computer Graphics (AREA)
- Computer Hardware Design (AREA)
- Processing Or Creating Images (AREA)
- Human Computer Interaction (AREA)
Abstract
本发明公开了一种处理至少一个三维图形对象的方法和系统,其包括:确定至少一个三维图形对象的变化,产生一个消息,分配一个唯一标识符,发送所述消息和所述唯一标识符给一个场景引擎。所述变化是由创作工具做出的。所述消息中嵌有对应所述变化的变化信息。场景引擎的功能可以由执行创作工具的相同或不同的计算装置执行。
Description
【技术领域】
本发明涉及三维图形对象的处理。更具体地,本发明涉及一种方法,用于处理和显示三维图形对象。该三维图形对象可以在相同或不同的计算设备中被改变。
【背景技术】
目前,利用场景引擎和/或对象创作工具(如三维MAX、Maya)来创造和/或修改三维图形对象时要经过许多步骤阶段才可以使修改了的场景或对象反映在场景显示应用程序(如游戏开发软件或用户软件)中,步骤包括:
●把三维建模工具的文档转换成应用程序所需的二进制特定文档;
●烘焙照明信息和产生应用程序特定照明信息;
●优化文档打包来加快下载和流操作;
●加入与三维图形对象有关联的物理数据模型,如凸包或原始创作;应用程序的额外数据关联,如人工智能路径发现或避障;着色器编译(AI)和层次细节(LOD)的产生。
【发明内容】
三维图形场景是由许多三维图形对象组成,包括背景、蒙皮、网格、纹理、照明、着色器、纹理照明、坐标、材质、渲染、顶点、相机、等等,三维图形对象的变化被送进一个内容处理器,被内容处理器处理后被发送到场景引擎。三维图形对象的变化是被至少一个创作工具所产生的。然后场景引擎就能够与三维图形对象中的变化互动。创作工具也可以是场景引擎,使得创作工具可以与它和/或其他创作工具所产生的三维图形对象的变化互动。
一个三维图形对象可以有无数的方式被改变。例如,一种创作工具可以改变三维图形对象的形状、三维图形对象的大小、三维图形对象的物理模型、三维图形对象的网格、三维图形对象的纹理、三维图形对象的照明、三维图形对象在场景中的位置、在场景中使用的光、场景中三维对象的数目、场景摄像机的角度、三维图形对象的摄像机角度、三维图形对象的质地、着色器、蒙皮等。根据其中一个实施例,有多个创作工具在同一时间改变一个三维图形对象。例如,一个创作工具可改变三维图形对象的网格,而同时另一个创作工具可改变场景的光线。然后,所有这些三维图形对象的变化都从创作工具转发到内容处理器。
【附图说明】
从下面的详细描述,结合附图,本发明的进一步的特征和优点将变得明显。
图1A显示一个内容处理器、一个创作工具和一个场景引擎的连接关系。
图1B显示一个内容处理器、多个创作工具和多个场景引擎的连接关系。
图1C显示多个内容处理器、多个创作工具和多个场景引擎的连接关系。
图2A显示一种处理三维图形对象变化的方法流程图。
图2B显示一种处理三维图形对象变化的方流程图。
图3显示一种处理三维图形对象变化的方法流程图。
图4显示一个系统体系结构的方框图,该系统可以用来执行本发明中描述的系统和方法。
图5显示一个系统体系结构的方框图,该系统可以用来执行本发明中描述的系统和方法。
【具体实施方式】
接下来的描述提供了优选的示例性具体实施例,而并非旨在限制本发明的范围、适用性或配置。相反,在优选示例性具体实施例的随后描述中,将提供本领域技术人员在本领域中用于实施本发明的优选示例性实施例的有利的说明。可以理解的是,本发明可以在功能和元素排列上有各种改动和变型,而不会脱离权利要求书中所述本发明的范围和精神。
在下文的描述中,给出了大量具体的细节以便提供对本发明更为彻底的理解。但是要理解,本领域普通技术人员即使没有这些具体细节也可实施这些实施例。在一些情况下,可能没有提供熟知的方法、算法、结构、技术的细节,以避免模糊实施例。
另外,应当注意,实施例可以被描述为一个过程,其可以描绘成流程图、数据流图、结构图、或方框图。尽管流程图可能将操作描述为顺序处理,但是许多操作可以并行或同时执行。此外,操作顺序也可被重新安排。一个过程终止时,它的操作也都已完成,但是也可以有额外的步骤,未包含在图中。一个过程可以对应于一个方法、函数、程序、子例程、子程序等。当一个过程对应于一个函数时,其终止则对应于该函数返回到调用函数或主函数。
此外,本文所披露的术语「存储介质」或「计算机可读存储介质」可以表示一个或多个用于存储数据的设备,包括只读存储器(ROM)、随机存取存储器(RAM)、磁性随机存取存储器、闪存、非挥发性磁心存储器、磁盘存储介质、光存储介质、闪存装置、和/或用于存储信息的其他机器可读介质。术语“计算机可读存储介质”包括,但不限于便携式或固定的存储设备、光存储设备、和各种其他能够存储、含有或保持指令和/或数据的介质。队列可以由存储介质的一个部分或多个部分来实施。
此外,实施例可以由硬件、软件、虚拟机、云计算、固件、中间件、微代码、硬件描述语言、或其任意组合来实施。当由软件、固件、中间件或微代码实现时,执行必要任务的程序代码或代码段可存储在机器可读介质(如存储介质)中。处理单元可用于执行必要任务。处理单元可以是中央处理器、专用集成电路ASIC、半导体芯片、逻辑单元、数字处理器、模拟处理器、现场可编程门阵列FPGA或任何能够进行逻辑和算术功能的处理器。一个代码段可以表示一个过程、函数、子程序、程序、例程、子例程、模块、软件包或任何指令、数据结构、或语句的组合。一个代码段可以连接到另一个代码段或硬件电路,以传递和/或接收信息、数据、参数或存储内容。信息、参数、数据等可经存储器共享,信息传递、令牌传递、网络传输等手段来传递、转发和/或接收。
三维电脑游戏、视频游戏、电脑辅助设计、电影设计和其他系统中使用的三维场景包含多个三维图形对象。场景引擎可利用三维图形对象,如背景、蒙皮、网格、纹理、照明、着色器、纹理照明、坐标、材质、渲染、顶点、相机等等和三维图形对象的其他属性来产生三维的虚拟场景,并显示在计算设备的显示屏幕上。
图1A显示出本发明的实施例之一。实施方案中的系统所包含的内容处理器102、创作工具101和场景引擎103。内容处理器102处理来自创作工具101的场景和三维图形对象的信息和变化信息。然后,内容处理器102处理信息和变化信息,并将对应该信息和变化信息的消息(message)传递到场景引擎103。内容处理器102可以由计算设备上的一个程序来实施,计算设备包括膝上型计算机、台式计算机、平板计算机、移动电话等等。
创作工具101可以创造、修改和删除三维图形对象。创作工具101从一个用户接收其输入,并通过创作工具显示三维图形对象给该用户。因此,创作工具101具有输入装置。创作工具101可以通过计算设备的编程来实现,计算设备包括笔记本电脑,台式电脑,平板电脑,和移动电话。
内容处理器102处理来自创作工具101的消息。内容处理器102可以通过计算设备的编程来实现,计算设备包括笔记本电脑,台式电脑,平板电脑,和移动电话。
场景引擎103允许观看基于三维图形对象及其变化的三维场景。因此,当三维图形对象在创作工具101上变化发生时,整个艺术创作过程可以几乎同时被观看到。因此,这提高三维场景的开发过程(如游戏开发过程)的速度。
有无数的方式能改变一个三维图形对象。例如,创作工具101可以改变三维图形对象的形状、三维图形对象的大小、应用于三维图形对象上的物理模型、三维图形对象在三维场景中的位置、三维图形对象在三维场景中的坐标、三维场景中的用光、在三维场景中三维图形对象的数量、场景的相机角度、三维图形对象的相机角度、三维对象的蒙皮、三维对象的网格、三维图形对象的材料、三维图形对象的着色器、三维图形对象的渲染、三维图形对象的纹理等。
根据本发明其中的一个实施例,本实施例的系统包括创作工具101和内容处理器102。内容处理器102和的场景引擎103彼此通过网络110连通。网络110可以是一个局域网、广域网、互联网、内联网、外联网。创作工具101和内容处理器102,可以是在同一个计算设备运行过程中的不同线程。
根据本发明其中的一个实施例,本实施例的系统包括内容处理器102和场景引擎103。内容处理器102和创作工具101通过网络110彼此连通,网络110包括局域网、广域网、互联网、内联网、外联网。内容处理器102和场景引擎103,可以是在同一个计算设备运行过程中的不同线程。
根据本发明其中的一个实施例,本实施例的系统包括创作工具101、内容处理器102、以及场景引擎103,该系统可以通过一个计算设备或多个计算设备的编程来实现。例如,创作工具101和内容处理器102是由同一台台式电脑的编程实现,而场景引擎103是通过移动电话的编程来实现。在另一个例子中,创作工具101是通过一台台式电脑的编程来实现,内容处理部102是通过托管在云计算服务提供商的服务器的编程来实现,场景引擎103是通过移动电话的编程来实现。在另一个例子中,创作工具101、内容处理器102和场景引擎103都通过一个平板电脑的编程来实现,因此创作工具101、内容处理器102和场景引擎103可以通过平板电脑内的总线系统互相通信。当任何两个或所有的创作工具101、内容处理器102和场景引擎103的编程实现,都在同一个计算设备内时,同一计算设备内编程实现的制作工具101、内容处理器102和场景引擎103之间的通信并不需要通过通信网络进行,而是通过其他通讯技术来进行,包括进程间通信、线程间通信、总线通信、串行通信。
举例说明,当创作工具101改变一个三维图形对象的着色时,该三维图形对象的变化会被转发到内容处理器102进行处理或被内容处理器102获取并进行处理。然后内容处理器102将包含已处理的三维图形对象和/或改变的一个或多个消息转发给一个或多个场景引擎103,以显示更新后的三维图形对象。在另一个方案中,一个或多个含有被处理的三维图形对象和/或改变信息的信息被转发到场景引擎103是由内容处理器102根据从场景引擎103接收到的要求而转发的。
图1B示出本发明其中一个实施例。该实施例系统包括多个创作工具101、一个内容处理器102和多个场景引擎103。多个创作工具101通过网络111与内容处理器102进行通信。多个创作工具101可以同时改变一个或多个三维图形对象。举例说明,第一创作工具101改变一个三维图形对象的网格,而第二创作工具101改变另一个三维图形对象的光线。然后所有这些三维图形对象的变化,都通过网络111被转发到内容处理器102或由内容处理器102获取并进行处理。然后,内容处理器102将包含已处理的三维图形对象和/或改变的一个或多个消息,通过网络111转发给一个或多个场景引擎103,以显示更新后的三维图形对象。创作工具101和内容处理器102之间的通信,可以通过使用互联网协议(IP)数据包来进行。创作工具101送出的互联网协议数据包可使用用户数据报协议(UDP)或传输控制协议(TCP)。
图1C显示本发明其中一个实施例。该实施例系统包括多个创作工具101、多个内容处理器102和多个场景引擎103。这多个创作工具101可以在同一时间改变一个或多个三维图形对象。举例说明,第一创作工具101改变一个三维图形对象的纹理,和第二创作工具101改变同一个三维图形对象的位置。然后,由第一创作工具101所作的三维图形对象变化被转发到第一内容处理器102或被第一内容处理器102获取并进行处理。同样,第二创作工具101所作的三维图形对象改变被转发到第二内容处理器102或被第二内容处理器102获取并进行处理。然后第一和第二内容处理器102将包含已处理信息的一个或多个消息发送到一个或多个场景引擎103,以显示该三维图形对象。
本领域技术人员会认识到,一个服务器系统如一个数据处理系统,包括中央处理器CPU、存储器、输入/输出I/O、程序存储、连接总线、和其他适当的部件,可以被编程或以其它方式设计以实践本发明,包括创作工具101、内容处理器102和场景引擎103。这样的创作工具101、内容处理器102和场景引擎103包括相应的程序来执行和实施本发明。
方法
图2A显示本发明其中一个实施例。为了方便说明,图2A结合图1来说明该实施例。在步骤201,当内容处理器102识别了一个三维图形对象的变化,那么在步骤202,内容处理器102将一个唯一的标识符分配给该三维图形对象变化。然后在步骤203,内容处理器102产生一个关于该三维图形对象变化的消息,并存储该消息于一个队列中。举例说明,该消息包含关于更新了的顶点、蒙皮、着色、纹理的变化信息。在另一个例子中,该消息可包含关于以下更新信息:如更新了的三维图形对象的形状、三维图形对象的大小、三维图形对象的物理模型、三维图形对象的网格、三维图形对象的纹理、三维图形对象的照明、三维图形对象在场景中的位置、场景中使用的光线、场景中三维图形对象的数目、场景的相机角度、三维图形对象的相机角度、三维图形对象的着色器、蒙皮、质感等。根据本发明其中一个实施例,该消息包含了所有三维图形对象变化更新后的数值,或所有三维图形对象的变化信息。或者,该消息只包含该三维图形对象的变化特性值。
然后在步骤204,内容处理器102将消息转发到场景引擎103。然后在步骤205,场景引擎103利用接收到的信息而更新三维场景。根据本发明其中一个实施例,内容处理器102通过减少三维图形对象变化的复杂性来优化该消息的内容。举例说明,减少三维图形对象变化的复杂性包括:通过找到共同顶点而减少顶点数,除去只与创作工具101相关的信息。
内容处理器102在步骤201的识别,可通过使用一个软件钩(software hook),如创作工具101的应用程序可编程接口(API)来执行。因此,当创作工具101改变了一个三维图形对象时,内容处理器102就可以获知该变化。或者,使用散列码(hash code)去计算三维图形对象。当一个三维图形对象的散列码有变化时,意味该三维图形对象有变化。因此,内容处理器102可以识别该三维图形对象有变化。有许多种技术能计算散列码,包括采用循环冗余校验(CRC)和安全散列算法(SHA)。散列码的计算是使用三维图形对象或三维图形文件串行化后的数据。三维图形对象变化的串行化是将三维图形对象的数据结构、对象状态、或三维图形对象变化的文件转换为可以存储和/或传输的格式所达成。散列码的计算能在场景或对象更新时执行,或定期执行。
三维图形对象变化的唯一标识符,是用于协助确认三维图形对象的变化。由于可能在很短的一段时间中,三维图形对象有大量的变化或大量三维图形对象有变化,唯一标识符可以帮助内容处理器102或场景引擎103区分三维图形对象的不同变化。
在步骤203中所产生的消息可以是用一组字符串或二进制的数据形式。三维图形对象变化和唯一标识符构成部分该消息。因此,该信息的大小各不相同。根据本发明其中一个实施例,包含一个三维图形对象新坐标的一个消息,可能只包括x、y、z坐标信息和相应的唯一标识符,该消息的大小范围可以从大约10个字节到一千个字节。例如,包含一个三维图形对象新图像的一个消息,可能有新图像和相应唯一标识符的二进制数据,该消息的大小范围可以从大约一万字节到一千兆字节。另外,根据本发明其中一个实施例,如果有与新图像相关的照明、纹理、网格、和相机信息,该消息的大小范围可以从大约从一个千字节到几十千兆字节,最好不要超过10兆字节,因为网络能力的原因。
在步骤204中的消息转发,可以通过本领域技术人员已知的多种技术来实现。本领域技术人员会明白,有许多技术能在计算设备不同进程之间、在计算设备的不同线程之间、在计算设备的不同虚拟机之间、和在通信网络中的不同计算设备之间转发消息。在一个例子中,该消息嵌入在一个互联网协议包中,并使用传输控制协定发送该互联网协议包。在另一个例子中,该消息嵌入在一个互联网协议包中,并通过蜂窝网络使用传输控制协定发送互联网协议包。
根据本发明其中一个实施例,如果创作工具101和内容处理器102是通过同一个计算设备的编程实现的,那么通过将该消息存储于一块共同的计算机可读存储介质中而实现消息转发。根据本发明其中一个实施例,消息是嵌入在通过网络发送的数据包中来转发的。根据本发明其中一个实施例,创作工具101是通过在有虚拟机能力的计算设备的编程来实现,内容处理器102也是通过该计算设备的另一个虚拟机的编程来实现,而消息是嵌入在数据包在计算设备中转送的。举例说明,消息可以嵌入在互联网协议(IP)数据包中,并使用传输控制协议(TCP)、用户数据报协议(UDP)或其他协议转发。
在收到内容处理器102的消息后,在步骤205,场景引擎103根据包含在消息中的变化信息和已经存储了的场景和三维图形对象,來更新场景,然后显示更新的场景和三维图形对象(如果需要的话)。如果场景引擎103没有与变化信息有关的场景信息或三维图形对象信息时,场景引擎205会要求内容处理器102或其他来源提供有关的场景信息或三维图形对象信息。根据本发明其中一个实施例,场景引擎205通过创作工具101来显示更新后的场景和/或三维图形对象。
图2B显示本发明其中一个实施例。为了方便说明,图2B与图1结合来说明本实施例。图2A中的步骤202,由图2B的步骤202b替换,而图2A中的步骤203,由图2B的步骤203b替换。另外,步骤203b是在步骤202b之前。在步骤203b,产生一个关于三维图形对象变化的消息。然后在步骤202b,分配一个唯一标识符给步骤203b中产生的消息。在图2B中的步骤204和步骤205,基本上执行图2A中步骤204和步骤205相同的操作。在另一个实施中,在图2B中的步骤204,嵌入有唯一标识符与消息的数据包被发送到场面引擎103。在另一个实施中,该消息被修改为包含该唯一标识符,然后发送到场景引擎103。
图3显示本发明其中一个实施例。为了方便说明,图3与图1结合来说明本实施例。图3和图2A之间的差异是,在图3新增了步骤311和步骤312。当内容处理器102在步骤203产生了一个消息后,在步骤311,该消息会首先被存储在一个队列中。存储该消息的目的,是允许该消息在产生后不必被立即发送到场景引擎103。有很多原因使内容处理器102不能或不应立即转发该消息给场景引擎103,包括网络110的网络容量、场景引擎103的处理能力、内容处理器102的处理能力、该消息已经过时、和该信息不是一个高优先级消息。
在步骤312,当内容处理器102确定要将一个消息转发到场景引擎103时,或当场景引擎103通知内容处理器102其已准备接收消息时,该消息从队列中取回。类似于图2中的实施例,然后该消息在步骤205被转发到内容处理器102。
根据本发明其中一个实施例,当队列没有更多的存储空间或队列大小超过一个阈值时,存储在队列中最长时间的那个消息会被除去,使得队列有存储空间来存储刚刚在步骤203产生的消息。或者,删除存储在队列中的多个消息,以释放存储空间。或者,丢弃该消息,不存储,因此省略步骤311。
根据本发明其中一个实施例,当在步骤203产生消息时,一个用作分类三维图形对象变化的标签也是该消息的一部分。该标签可被内容处理器102或场景引擎103使用,用以确定消息的类别。内容处理器102也可以使用该标签以确定该消息是否包含该三维图形对象最新的变化,或是否要删除那些包含过时三维图形对象变化的消息。
根据本发明其中一个实施例,在转发包含数据的消息到场景引擎103之前,内容处理器102从创作工具101所接收的数据由内容处理器102的阴影缓存(shadow cache)处理。数据是从创作工具101以原始格式取回。然后经过初步检查,看看自从上一次处理后有没有变化。一旦决定需要更新,阴影缓存将使用一个线程系统对数据进行处理。不同的数值,如顶点数据、蒙皮数据、着色数据和纹理数据,将从数据中解析出。优化这些数据以产生消息。优化包括找到共同顶点以减少顶点数目。优化能减少场景引擎103所要传输和处理的数据量。
根据本发明其中一个实施例,由内容处理器102从创作工具101接收到的数据被分类。分类是根据消息中的唯一标识符而进行的。一旦数据被分类后,就会被发送到场景引擎103的管道处理。场景引擎103首先从管道读出数据到适当的数据结构,然后在计算设备的GPU存储器或CPU存储器中产生数据缓冲区。数据从数据缓冲区取出后,被加上一个分类标签和管道原始数据的链接,并放入一个队列。当从数据缓冲区中取出的数据已被验证为准备好(ready)时,该数据会被认为是有效的(active),而场景引擎103就删除管道的原始数据。另一个实施例,场景引擎103只有在确认管道中的原始数据不被使用时,才删除该原始数据。
系统
图4是本发明一个例子的内容处理器系统架构401的方框图,图中内容处理器系统401能执行图1至图3所描述的内容处理器102的系统和方法。例如,内容处理器系统401可以由计算设备实现,如个人计算机、服务器、台式机、笔记本电脑、平板电脑、移动电话等。
实施例的内容处理器系统401包括处理单元402、主存储器403、辅助存储器404、和网络接口405。数据总线系统410,如一个数据总线和一块主板,可用于建立和控制组件402、404、和405之间的数据通信。也可以使用其他的系统架构的例子。主存储器403可与处理单元402使用数据总线410或不同的数据总线通信。
例如,处理单元402可以包括一个或多个微处理器,具有一个或多个处理内核。例如,主存储器403可以包括一个随机存取存储装置,如动态随机存取存储器、或其他类型的计算机可读介质存储设备。主存储器403可以用来作为高速缓存以存储临时数据、寄存器的数据和来自处理单元402或辅助存储器404的指令。例如,辅助存储器404可以包括一个或多个硬盘驱动器、闪存、和/或只读存储器、或其他类型的计算机可读介质存储设备。
例如,网络接口405可以包括用于与网络110或111进行数据往来通信的有线或无线网络设备。
在一个实施中,内容处理器系统401包括用于定义存储在主存储器403和/或辅助存储器404中的一个操作系统的指令。操作系统例如包括基于微软视窗电脑操作系统和自由和开放源代码操作系统(Linux)或其他操作系统。操作系统指令执行后,就可进入不同的系统对象。系统对象如包括数据文件、应用程序、功能函数等。
处理单元402根据存储在主存储器403和/或辅助存储器404中的指令执行各种功能,辨认创作工具101中的三维图形对象变化、处理从创作工具101接收的三维图形对象的变化信息、减少三维图形对象变化信息的复杂性、嵌入变化信息到消息内、并经由网络接口405转发消息到场景引擎103。当处理单元402决定要暂时存储该消息时,处理单元402就存储该消息在主存储器403和/或辅助存储器404中。当处理单元402决定要转发先前存储的消息时,处理单元402就从主存储器403和/或辅助存储器404中取出该消息并通过网络接口405转发该消息到场景引擎103。
根据存储在主存储器403和/或辅助存储器404中的指示,处理单元402还执行的功能有:分配唯一标识符给一个三维图形对象的变化。在另一个实施例,处理单元402分配唯一标识符给包含有三维图形对象变化的消息。
处理单元402也可以定期检查主存储器403和/或辅助储器404的消息。当消息可能变得过时和/或没有足够的空间在主存储器403和/或辅助存储器404中以存储新消息时,处理单元402就决定是否需要从主存储器403和/或辅助存储器404中删除一条消息。
一个计算设备上运行创作工具101是至少需要一个人机界面(HCI)与用户互动,和至少需要一个显示用户界面(图形用户界面)用作显示场景或三维图形对象给用户,使用户可以编写、创作、编辑、改变、删除场景和三维图形对象。
在计算设备上运行场景引擎103时,需要至少一个显示用户界面来显示场景或三维图形对象,使用户可以看到场景和三维图形对象。
根据本发明其中一个实施例,当创作工具101和场景引擎103没有与内容处理器102运行在同一系统中时,内容处理器系统401不需要有人机界面与用户互动,不需要有显示用户界面向用户显示场景或三维图形对象。
图5是根据本发明其中一个实施例,创作工具101与内容处理器102运行在同一系统中。内容处理器系统501与内容处理器系统401执行类似的操作。实施例的内容处理器系统501包括处理单元502、主存储器503、辅助存储器504、和网络接口505。此外,内容处理器系统501具有与用户互动的人机界面506和向用户显示场景或三维图形对象的显示接口507。总线系统510,如一个数据总线和一个主板,可用于建立和控制组件502、504、505、506和507之间的数据通信。也可以使用其他的系统架构的例子。主存储器503可与处理单元502使用数据总线510或不同的数据总线进行通信。
处理单元502、主存储器503、辅助存储器504和网络接口505分别被实施为处理单元402、主存储器403、辅助存储器404和网络接口405。
例如,显示接口507可以包括视频卡、图形加速卡、图形处理单元GPU或显示适配器,并配置为能产生和输出图像给一个显示装置。在一个实施例中,显示接口507可用连接到总线系统510的专用硬件卡来实现。在另一个实施方案中,显示接口507可由集成到总线系统510芯片组的一个图形控制器来实现。
例如,连接到人机界面506的输入设备可以包括视频摄像机、键盘、鼠标、手写笔等,而连接到显示接口507的输出设备可以包括显示设备、液晶显示器、三维显示器、计算机屏幕、电视屏幕、投影机、发光二极管显示屏等。
处理单元502也可以根据存储在主存储器503和/或辅助存储器504中的指示来执行创作工具101的功能。处理单元502通过从人机界面506接收到的用户输入来创作、产生、编辑、删除存储在主存储器503和/或辅助存储器504中的场景和三维图形对象。处理单元502处理了场景和三维图形对象后,通过显示接口507显示场景和三维图形对象给用户。处理单元502也可以卸载某些运算给显示接口507,从而加快运算。
图5也显示本发明其中一个实施例的场景引擎103和内容处理器102运行在同一系统中。内容处理器系统501可以具有人机界面(HCI),以与用户进行互动,并具有显示用户界面来显示场景或三维的图形对象给用户。因此内容处理器系统501还可以执行场景引擎103的功能。人机界面506是可选的,这取决于用户输入是否是必需的。然后显示接口507根据消息中包含的变化信息来显示已处理的场景和三维图形对象。
处理单元502也可以根据存储在主存储器503和/或辅助存储器504中的指示,执行场景引擎103的功能。处理单元502通过人机界面506接收来自用户的可选输入。处理单元502处理消息中包含的三维图形对象的变化信息,然后通过显示接口507显示更新后的场景和三维图形对象给用户。处理单元502也可以卸载某些运算给显示接口507,从而加快运算。
本说明书面阐述了本发明的最佳模式,并提供了一些例子,来描述本发明,使本领域普通技术人员能够实施和使用本发明。该书面描述不会将本发明限于所披露的确切形式。因此,虽然本发明书已详细描述不同的实施例,但是在不脱离本发明的范围的情况下本领域普通技术人员仍然可以对实施例实现各种改变和修改。
Claims (12)
1.一种在第一计算设备上处理至少一个三维图形对象的方法,该方法包括:
多个创作工具对一个三维图形对象做出至少一个变化,其中所述创作工具是在第二计算设备中执行的程序;
所述三维图形对象的变化被转发到一个内容处理器进行处理;所述内容处理器配置在所述第一计算设备中;所述内容处理器根据所述变化,使用散列码去计算所述三维图形对象,得到所述三维图形对象串行化后的数据,产生一个消息,并通过减少所述三维图形对象变化的复杂性来优化该消息,其中所述消息嵌入有对应所述变化的变化信息;
所述内容处理器还分配一个唯一标识符和一个标签给所述消息,其中所述唯一标识符是对应所述变化信息的,其中所述标签用作分类三维图形对象变化,并可被内容处理器或场景引擎使用,用以确定消息的类别;
其中所述唯一标识符和所述标签被嵌入在所述消息中;
当所述消息在产生后还没有准备好发送给场景引擎时,存储所述消息在一个队列中;当所述消息已准备好发送给场景引擎时,从所述队列中取出所述消息;
当根据所述标签显示嵌入有变化信息的所述消息已过时,从所述队列中丢弃所述消息;
所述内容处理器通过网络发送所述消息到一个或多个场景引擎,其中所述场景引擎是一个由第三计算设备中执行的程序。
2.根据权利要求1所述的方法,还包括:当所述队列已满时,从所述队列中丢弃所述消息。
3.根据权利要求1所述的方法,其中所述变化是利用所述创作工具的程序编程接口API来确定的。
4.根据权利要求1所述的方法,其中所述消息是通过一个网络使用传输控制协议来发送所述消息的。
5.根据权利要求1所述的方法,其中所述变化信息包含所述变化相对应的原始数据。
6.根据权利要求1所述的方法,其中所述变化选自:蒙皮变化、纹理变化、场景变化、照明变化、着色变化、坐标变化、顶点变化、材料变化、网格变化。
7.一个三维图形对象处理系统,包括:
至少一个处理单元;
计算机可读存储介质,其具有能由所述至少一个处理单元执行的程序指令;
所述处理单元和所述计算机可读存储介质配置在第一计算设备中;
其中所述程序指令确定至少一个三维图形对象的变化,其中所述变化是由多个创作工具做出的,所述创作工具是由第二计算设备执行的程序;
其中所述程序指令根据所述变化,使用散列码去计算所述三维图形对象,得到所述三维图形对象串行化后的数据,产生一个消息,并通过减少所述三维图形对象变化的复杂性来优化该消息,其中所述消息含有对应所述变化的变化信息;
所述程序指令还分配一个唯一标识符和一个标签给所述消息,其中所述唯一标识符是对应所述变化信息的,其中所述标签用作分类三维图形对象变化,并可被程序指令或场景引擎使用,用以确定消息的类别;
其中所述唯一标识符和所述标签被嵌入在所述消息中;
当所述消息在产生后还没有准备好发送给场景引擎时,存储所述消息在一个队列中;当所述消息已准备好发送给场景引擎时,从所述队列中取出所述消息;
当根据所述标签显示嵌入有变化信息的所述消息已过时,从所述队列中丢弃所述消息;
所述程序指令通过网络发送所述消息到一个或多个场景引擎,其中所述场景引擎是在第三计算设备中执行的程序。
8.根据权利要求7所述的系统,其中所述计算机可读存储介质还包括可由所述至少一个处理单元执行的程序指令,所述指令用于:当所述队列已满时,从所述队列中丢弃所述消息。
9.根据权利要求7所述的系统,其中所述变化是通过所述创作工具的程序编程接口API来确定的。
10.根据权利要求7所述的系统,其中所述消息是通过一个网络使用传输控制协议来发送所述消息的。
11.根据权利要求7所述的系统,其中所述变化信息包含所述变化相对应的原始数据。
12.根据权利要求7所述的系统,其中所述变化选自:蒙皮变化、纹理变化、场景变化、照明变化、着色变化、坐标变化、顶点变化、材料变化、网格变化。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/858,324 US9600940B2 (en) | 2013-04-08 | 2013-04-08 | Method and systems for processing 3D graphic objects at a content processor after identifying a change of the object |
US13/858,324 | 2013-04-08 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103488472A CN103488472A (zh) | 2014-01-01 |
CN103488472B true CN103488472B (zh) | 2017-09-12 |
Family
ID=49828729
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310284574.1A Active CN103488472B (zh) | 2013-04-08 | 2013-07-08 | 处理三维图形对象的方法和系统 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9600940B2 (zh) |
CN (1) | CN103488472B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10594828B2 (en) | 2016-04-19 | 2020-03-17 | International Business Machines Corporation | Delivery of incremental sensor data over optimized channel |
CN109377543B (zh) * | 2018-10-29 | 2022-04-15 | 广东明星创意动画有限公司 | 一种快速创建材质连接的方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101933041A (zh) * | 2008-02-01 | 2010-12-29 | 微软公司 | 图形远程化体系结构 |
CN102184008A (zh) * | 2011-05-03 | 2011-09-14 | 北京天盛世纪科技发展有限公司 | 互动投影系统及方法 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060036756A1 (en) * | 2000-04-28 | 2006-02-16 | Thomas Driemeyer | Scalable, multi-user server and method for rendering images from interactively customizable scene information |
JP3687587B2 (ja) * | 2001-03-27 | 2005-08-24 | ソニー株式会社 | データ処理システム及びデータ処理方法、情報処理装置及び情報処理方法、並びにコンピュータ・ソフトウェア |
US7266616B1 (en) * | 2001-08-08 | 2007-09-04 | Pasternak Solutions Llc | Method and system for digital rendering over a network |
US6943800B2 (en) * | 2001-08-13 | 2005-09-13 | Ati Technologies, Inc. | Method and apparatus for updating state data |
US20030193528A1 (en) * | 2002-04-12 | 2003-10-16 | Stegbauer Mark E. | Hierarchical data structure which enables interactive visualization of a geographical space |
US20080140732A1 (en) * | 2006-12-11 | 2008-06-12 | Bentley System, Inc. | Method and system for sharing file based data |
US8543338B2 (en) * | 2007-01-16 | 2013-09-24 | Simbionix Ltd. | System and method for performing computerized simulations for image-guided procedures using a patient specific model |
US8305376B2 (en) * | 2007-04-12 | 2012-11-06 | Dassault Systemes Solidworks Corporation | Locally updating a three-dimensional model |
US8136033B1 (en) * | 2008-10-13 | 2012-03-13 | Adobe Systems Incorporated | Converting a graphic object from a first format to a second format with the aid of a stored checksum |
US20130131840A1 (en) * | 2011-11-11 | 2013-05-23 | Rockwell Automation Technologies, Inc. | Scalable automation system |
EP2780826B1 (en) * | 2011-11-15 | 2020-08-12 | Trimble Inc. | Browser-based collaborative development of a 3d model |
-
2013
- 2013-04-08 US US13/858,324 patent/US9600940B2/en active Active
- 2013-07-08 CN CN201310284574.1A patent/CN103488472B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101933041A (zh) * | 2008-02-01 | 2010-12-29 | 微软公司 | 图形远程化体系结构 |
CN102184008A (zh) * | 2011-05-03 | 2011-09-14 | 北京天盛世纪科技发展有限公司 | 互动投影系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
US20140304662A1 (en) | 2014-10-09 |
CN103488472A (zh) | 2014-01-01 |
US9600940B2 (en) | 2017-03-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106575228B (zh) | 图形处理中的渲染目标命令重新排序 | |
US20160350968A1 (en) | Run-Time Optimized Shader Programs | |
JP5032670B2 (ja) | グラフィックスシステムにおいて2次プロセッサを使用するための方法及びシステム | |
US9426259B2 (en) | Client server interaction for graphical/audio applications | |
KR102046676B1 (ko) | 그래픽스 프로세싱에서의 패치된 쉐이딩 | |
JP5154551B2 (ja) | グラフィックスパイプラインステートの高速再構成 | |
US20170206231A1 (en) | Tree traversal with backtracking in constant time | |
EP3108452B1 (en) | Shader pipeline with shared data channels | |
KR101640904B1 (ko) | 온라인 게이밍 경험을 제공하기 위한 컴퓨터 기반 방법, 기계 판독가능 비일시적 매체 및 서버 시스템 | |
US7884817B2 (en) | Method and system for defining and controlling algorithmic elements in a graphics display system | |
US20090256836A1 (en) | Hybrid rendering of image data utilizing streaming geometry frontend interconnected to physical rendering backend through dynamic accelerated data structure generator | |
US20230120253A1 (en) | Method and apparatus for generating virtual character, electronic device and readable storage medium | |
CN108027957A (zh) | 用于上下文切换的上下文信息的高效保存和恢复 | |
EP3410297A1 (en) | Indirect argument buffers | |
KR101670958B1 (ko) | 이기종 멀티코어 환경에서의 데이터 처리 방법 및 장치 | |
US20050071854A1 (en) | Method and system for efficiently transferring data objects within a graphics display system | |
US9898873B2 (en) | Methods and systems for processing 3D graphic objects at a content processor | |
CN103488472B (zh) | 处理三维图形对象的方法和系统 | |
US7761884B2 (en) | Method and system for maintaining connections between surfaces and objects in a graphics display system | |
US10580106B2 (en) | Graphics processing method utilizing predefined render chunks | |
KR20220061959A (ko) | 선언형 그래픽 서버를 사용한 이미지들의 렌더링 | |
WO2023160041A1 (zh) | 图像渲染方法、装置、计算机设备、计算机可读存储介质以及计算机程序产品 | |
US20220366632A1 (en) | Accelerated processing via a physically based rendering engine | |
US11830123B2 (en) | Accelerated processing via a physically based rendering engine | |
US20220366633A1 (en) | Accelerated processing via a physically based rendering engine |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |