快速渲染三维场景的方法和系统的制作方法

文档序号:6476360阅读:248来源:国知局
专利名称:快速渲染三维场景的方法和系统的制作方法
相关专利申请的交叉参考
本申请要求美国第61/016, 136号,名称为"三维计算机图像系统中动态图形化用户界面的 产生",于2007年12月21日提交的预先专利申请的优先权,以及美国第61/085, 386号,名 称为"对象自动化的方法与系统",于2008年7月31日提交的预先专利申请的优先权。这些 专利申请的内容被本申请引用而包含在本申请中。
技术背景
三维计算机图像是利用存储的几何数据的三维表示。利用这些数据进行计算可渲染得到用 于稍后显示或者实时观看的二维图像。这些几何数据通常是存储于一图形化数据文件,在数学 上表示该三维的对象。通过一称为渲染(rendering)的处理,该对象被显示为一个二维图像。
在渲染发生之前, 一个或多个对象可以被放置在一个虚拟的场景(scene)中。这些对象的 布置与属性定义了这些对象之间的空间关系,包括位置和尺寸。 一个动画可以定义一个对象的 时序描述(temporal description),比如,该对象如何随时间移动和变形。常用的动画方法包括 关键巾贞(keyframing)、逆向运云力学(inverse kinematics)以及运动捕捉(motion capture)。也 可以通过物理模拟描述运动。
基于所述场景,渲染产生真实的二维画面或者动画用于显示。 一些不同的各有特色的渲染 方法可供使用。从独特的非现实线框渲染(distinctly non-realistic wireframe rendering)到基于多 边形的渲染再到更先进的渲染技术,如扫描线渲染(scanline rendering)、光线追踪渲染(ray tracing)或光能传递渲染(radk)sity)。渲染一幅Z帧画面可能需要几秒至几天,通常其计算非
*曰虫 吊卬贝。
一些技术已经被开发出来用于模拟自然发生的效果,比如光与其他形式的物质之间的相互 作用。这些技术的例子包括粒子系统(parade systems)(可模拟雨、烟或者火)、体积化采样(volumetric sampling)(可模拟雾、尘以及其他空间大气效果)、焦散(caustics)(用于模拟 不规则光折射表面所产生的光的汇聚,比如可在泳池底部看到的光的波纹)、光线追踪(通过 跟踪光线经过一画面平面中像素的路径产生一画面)以及次表面散射(subsurface scattering)
(用于模拟光纤在固体对象,比如人的皮肤,中的反射)。
非互动媒体,比如电影和录像,的动画包括按顺序显示的多个帧。这些帧是以相对较慢的 速度以及相对较高的质量渲染获得。渲染一帧的时间可能从几秒到,如果场景比较复杂,几 天。渲染获得的帧可以存储在存储器中,并可转录至其他媒介,比如电影胶片或者光盘。这些 帧被按序以较高的帧速播放,通常为每秒24、 25或30帧,以获得运动的视觉。
已有的三维可视化软件采用一种耗时的有限的包括以下清楚地描述的步骤的方法修改一场 景并对应地产生一序列。首先建立一个摄影机位置,接着描述角色的行为,再布置纹理,然后 调整材质,再设置灯光。做完每一步后,在检査结果和做可能的改动之前,用户都要指示计算 机做渲染。若做了改动,那么该场景还要被再渲染一次以进行检査。再加上现有的软件渲染耗 时较长,该方法非常繁琐及不直观,对鼓励用户的创造性没有任何好处。
已有的提7i性能的方法包括将一些渲染任务,比如光线层和材质着色,交给图形处理单 元。來用这种方法的软件的例子有Gelato和针对三维StudioMax用户的Click-VR。但是这些软 件依然要求用户在渲染场景以进行检査之前定义该场景中的每一个变化。
现有的方案提供了一个用于从用户接收一场景的对象值(object value)的用户界面。对应 用户的渲染该场景的命令,这些值被提供给一处理单元进行渲染。该处理单元执行必要的计算 并输出一渲染。例如,该处理单元可以是一个中央处理器。不幸的是该方法较繁琐并且速度较 慢,迫使用户进入一个反复创造一个场景的过程。
另外,现有的方法在渲染一个动画序列的各帧时,要定义该场景内每一对象的初始状态, 然后部分地根据前一帧渲染获得每一帧。这使得随机显示一中间帧(比如在剪辑的过程中)变 得非常耗时,因为必须首先渲染获得之前的每一帧。


图l展示了提供快速计算一动画序列中的一指定帧的系统的 -个例子。图2展示了提供快速计算一动画序列中一指定帧的数据结构的一个例子。
图3展示了提供快速计算一动画序列中一指定帧的方法的一个例子。
图4展示了提供根据用户输入值进行接近实时渲染的方法的一个例子。
图5展示了提供一三维可视化软件的方法的一个例子。
图6A展示了一三维可视化软件的屏摄的一个例子。
图6B展示了一三维可视化软件的屏摄的又一个例子。
图6C展示了一三维可视化软件的屏摄的又一个例子。
图6D展示了一三维可视化软件的屏摄的又一个例子。
图6E展示了一三维可视化软件的屏摄的又一个例子。
图6F展示了一三维可视化软件的屏摄的又一个例子。
图6G展示了 一三维可视化软件的屏摄的又一个例子。
图6H展示了一三维可视化软件的屏摄的又一个例子。
图6I展示了一三维可视化软件的屏摄的又一个例子。
图6J展示了一三维可视化软件的屏摄的又一个例子。
图6K展示了一三维可视化软件的屏摄的又一个例子。
图6L展示了一二维可视化软件的屏摄的又一个例子。
图6M展示了一三维可视化软件的屏摄的又一个例子。
图6N展示了一三维可视化软件的屏摄的又一个例子。
图7A展示了一三维可视化软件的一个节点添加界面(attachment node interface)的屏摄的 一个例子。
图7B展示了一三维可视化软件的一个通道编辑器界面(channel editor interface)的一个例子。
图7C展示了一三维可视化软件的一个毛发图形化用户界面(fiirGUI)的一个例子。图7D展示了一三维可视化软件的一个辉光着色器(glowshader)界面的一个例子。
图7E展示了一三维可视化软件的一个热键定义界面(hot key definition interface)的一个例子。
图7F展示了一三维可视化软件的一个层界面(layers interface)的一个例子。
图7G展示了一三维可视化软件的一个光线设置对象界面(light set object interface)的一个例子。
图7H展示了一三维可视化软件的一个多面着色器界面(phong shader interface)的一个例子。
图7I展示了一三维可视化软件的一个点光系统界面(point light system interface)的一个例子。
图7J展示了一三维可视化软件的一个投射光系统界面(projected light system interface)的
个例子。
图7K展示了一三维可视化软件的一个反射着色器界面(reflection shader interface)的一个例子。
图7L展示了一三维可视化软件的一个渲染参数界面(render preferences interface)的一个例子。
图7M展示了一三维可视化软件的一个高光偏移毛发着色器界面(specular shift hair shader interface)的一个例子。
图7N展示了一三维可视化软件的一个次表面散射着色器界面(sub surface scatter shader interface)的一个例子。
图70展示了一三维可视化软件的一个表面环境遮挡系统界面(surface AO system interface)的一个例子。
图7P展示了一三维可视化软件的一个水着色器界面(water shader interface)的一个例子。
具体实施方式一三维场景被基本实时地渲染,对应用户输入改变该场景中对象值的值。当一图形化用户 界面接收到这些对象值,该场景即被立刻渲染,而无需等待特定的渲染用户命令。该用户界面 直接将新的和修改后的对象值直接送至计算所述渲染的处理单元(processing unit)和计算硬 件。如此,对象值的改变被立刻反映在一个输出的渲染中,从而允许在用户创造或修改一个场 景的过程中向用户提供接近实时的反馈。
在三维可视化软件中,需要对应用户对一场景的改动的自动的接近实时的显示 (visualization)。 一方法和系统提供了一动态产生的图形化用户界面与一图形处理器(graphics processing unit)的整合,以用于一三维可视化软件。该图形处理器对应用户输入的对一场景中 对象的修改自动产生对应的显示,从而对应用户对该场景的修改提供了几乎实时的反馈。
进一步的,所述系统通过计算一动画序列中被选中的对应某一时间点的一帧提供了快速渲 染。该动画序列中的三维模型在一计算机图形系统中由软件对象(software object)表示。这些 软件对象使得该系统在计算被选中的帧之前无需再计算之前的帧。
对象属性(object properties),如表示对象的位置、色彩、着色、光线等的数据被存储在 "通道"(channel)中。"驱动"(driver)存储与通道相关的值,在该动画序列中这些值随时 间而改变。"键"(key)则存储与该动画序列中某一时间点的通道相关的一个值或一组值。
该指定的帧是应要求基于存储于所述驱动和键中的信息计算获得。存储于驱动内的对象属 性被立刻读取以将其纳入该指定的帧。存储于键内的对象属性被混合,用以计算该指定帧在该 时间点上的一属性值。 一旦完成该指定帧的属性的计算,该指定帧就完成了,从而可被显示c
图1展示了用于快速计算一动画序列中被选中的一帧的系统的一个例子。该系统可包括一 工作站100。工作站100包括一中央处理器102, 一图形处理器104, 一处理器单元(processor unit) 104A, 一存储器106, 一大容量存储器108, 一输入/输出接口 110, 一网络接口 112, 一 显示器114, 一输出装置116,以及一输入装置118。工作站100可与网络120进行通信。
在图l所示的例子中,工作站100可以是一个计算装置,比如个人计算机,台式计算机, 手提计算机或其他计算机。工作站100可被用户操作并且为一三维可视化软件提供一计算平 台。工作站100可被设置成能够提供较高性能的图形处理能力,计算能力,存储容量以及多任 务处理能力。可选的,可采用任何计算装置,如移动计算机,个人数字助理,分布式系统或其 他设备。例如,计算装置可以是渲染农场(render farm)。渲染农场是指一个可以离线批量处理模 式渲染计算机图形的计算机群。因为图像渲染可以并行处理,可用大量的计算装置来提升渲染 速度。
在如图l所示的例子中,中央处理器102可以是一个被配置为进行大量计算并适用于多种 计算应用的集成电路。所述中央处理器可以安装在所述的工作站内的一主板上以控制该工作站 的其他部件。所述中央处理器可以通过一总线或一物理交换界面(physical interchange)或其他 通信通道与工作站的其他部件进行通信。
在如图1所示的例子中,图形处理器104可以是用于个人计算机、工作站、游戏控制台 (game console)或移动装置如个人数字助理、移动电话、超级移动个人计算机或其他计算装置 的一个专用的图形渲染装置。比如,该图形处理器可以是一个专用的类似于所述中央处理器的 集成电路处理器。该图形处理器可以设计成可高效处理和显示计算机图形。该图形处理器可以 拥有高度并行的结构,使其比通用中央处理器更适于复杂算法。比如,该图形处理器可以集成 在图形卡(video card)上或者主板上。
在如图1所示的例子中,处理器单元104A可以是通用处理器,也可以是配置成执行图形 应用相关计算的专用处理器。处理器单元104A可以与图形处理器104相类似。
另夕卜,也可以采用通用图形处理器(general purpose graphics processing units ,简称 GPGPUs),其中,在非图形应用中,该通用图形处理器被配置成图形处理器执行计算。比 如,该通用图形处理器可以与图形处理器类似,但增加了可编程的阶(programmable stages)并 拥有更高计算精度的渲染管道(rendering pipelines)。这允许程序开发人员对非图形数据采用 流处理(stream processing)。
虽然只描述了一个中央处理器102、 一个图形处理器104以及一个处理器单元104A,可以 想像,工作站100可以包括任何数量的中央处理器、图形处理器、处理器单元或其他计算装 置。增加的单元为工作站IOO增加了计算资源。可以想象,任何可被配置成执行渲染相关的计 算的计算装置可以被用作中央处理器102和图形处理器104。
在如图l所示的例子中,工作站100还可包括其他硬件以帮助渲染一个场景。比如,可添 加额外的存储装置或处理单元(processing unit)以提高性能。在一个例子中,用户输入的值被立刻传送至图形处理器104和/或处理器单元104A以计算 该场景的渲染。在另一个例子中,图形处理器104和处理器单元104A中可以包括能被中央处 理器102直接存取的寄存器。当值被写入这些寄存器,图形处理器104和处理器单元104A被 立刻用于渲染的计算。
在如图l所示的例子中,存储装置106包括中央处理器和图形处理器可存取的易失存储器 和非易失存储器。该存储器可以是随机存取存储器,以为图形相关计算或其他计算提供快速的 存取。可选的,中央处理器和图形处理器均设有内置的高速缓冲存储器(cache memory)以提 高性能。
在如图l所示的例子中,大容量存储器108可以是易失存储器和非易失存储器配置成可存 储大量记忆,如图形文件。该大容量存储器可以被中央处理器和图形处理器存取。例如,该大 容量存储器可以是硬盘、RAID阵列、快闪存储器(flash memory) 、 CD-ROM、 DVD、 HD-DVD或蓝光媒介。
在如图l所示的例子中,输入/输出接口 110可以包括用于连接和控制周边设备,如输入和 输出设备,的逻辑和物理接口。例如,输入/输出接口可允许输入和输出设备连接至所述工作 站,并且作为所述装置与工作之间的接口。
在如图l所示的例子中,网络接口 112可以包括用于连接至一个或多个网络的逻辑和物理 接口。例如,该网络接口nj以通过翻译两者间的通信接受一个物理网络连接,并且作为该网络 与所述工作站之间的接U 。网络的例子包括以太网或其他物理网络架构。
在如图1所示的例子中,显示器114可以是将由所述工作站产生的可视图像向用户显示的 电子设备。例如,该显示器可以是阴极射线管或平板显示装置比如薄膜晶体管液晶显示器 (TFTLCD)。该显示器包括显示装置,利用i计算机发送的电子信号产生图像的电路,以及 一外壳或机壳。该显示器可与所述输入/输出接口进行数据交换,所述输入/输出接口可将数据 转换成该显示器兼容的格式。
在如图l所示的例子中,输出装置116可以是任何将计算结果送给用户的硬件。例如,除 了前面讨论过的显示器外,它还可以包括扬声器和打印机。
在如图1所示的例子中,输入装置118可以是任何将用户输入翻译成所述工作站可用的数 据的硬件。输入装置可包括键盘、鼠标、麦克风、扫描器、摄影机及数字摄像机等。在如图l所示的例子中,网络120可以是任何用于传送数字信息的网络。例如,网络可以 是以太网、英特网、局域网或宽域网。
可选的,所述工作站可以是通过网络与服务器连接的用户端装置。在该例子中,该用户端 装置可以配备成较低的性能(以降低硬件成本),而该服务器则提供必要的处理能力。
在如图l所示的例子中,在操作过程中, 一用户与输出装置116和输入装置118上的用户 界面进行互动。用户输入一个场景内的对象的值。这些对象的值被中央处理器102接收并被直 接写入图形处理器104和处理单元104A的适当的寄存器。图形处理器104和处理单元104A立 刻基于这些对象的值计算渲染,接着计算获得的渲染在输出装置116上向用户显示。
因为不在存储器106内存储对象值,而是直接存取于寄存器,工作站100提供了对应用户 输入的对象值几乎实时的渲染。
在如图1所示的例子中,在操作过程中,表示三维模型的对象被存储于存储器106内。对 象属性可存储于"键"内或者"驱动"内,如下所述,键和驱动被用于计算一指定帧。工作站 IOO通过输出装置116和输入装置118与用户互动。
在如图1所示的例子中,在操作过程屮,用户通过由输出装置116和输入装置118提供的 一图形化用户界面输入新的或者经修改的值至各键及驱动。这些值立刻被输入/输出接口 110以 及中央处理器102处理,然后输入图形处理器104和/或处理单元104A。存储于存储器106的 数据对象也被更新。
执行渲染或者渲染的一部分的进程或程序,比如着色器,直接在图形处理器104和/或处理 单元104A上执行。这里用了图形处理器104的图形处理能力以获得快速渲染计算。对应每一 输入图形处理器104的更新的值, 一个新的渲染会被计算并输出。这使得对用户对一个场景的 值的改变的近乎实时的反馈成为可能。
图2展示了提供一动両序列中一指定帧的快速计算的数据结构的一个例子。该数据结构可 被提供所述三维可视化软件以及存储必要数据的工作站采用,以执行用户要求的修改,可视化 用户的修改,以及渲染该序列。该数据结构可被优化以节省存储空间,加快可视化和渲染,或 者提升其他性能或者这些性能的组合。
在如图2所示的例子中, 一三维可视化序列可被存储为一个场景200。该场景可包括一系 统A202,该系统可包括一驱动A204和一键A206。该场景可包括一对象A208,该对象可包括一方法A210和一属性A212。虽然只描述了一个系统和一个对象,但一个场景可包括任何数量 的系统和对象。虽然只描述了一个驱动和一个键,但一个系统可包括任何数量的驱动和键。虽 然只描述了一个方法和一个属性, 一个对象可包括任何数量的方法和属性。
在如图2所示的例子中,场景200可存储表示一三维视频序列的数据,包括所有对象和效 果。该场景可以一数字数据集合存储于存储器以用于处理:。例如,该场景可被用户输入修改。 例如,该场景可被进行可视化和渲染处理。
在如图2所示的例子中,系统A202可以是该场景中一个对象的一个效果。例如, 一个效 果可以是一个表面纹理,或一个光反射特性,或一个材质效果等。
在如图2所示的例子中,驱动A204存储一个属性在一段时间内一连续系列值。例如,驱 动A204可包括随所述动画序列或所述动画序列的一个子集的长度而变化的值。例如, 一频闪 对象(strobe light object)可包括一闪光率属性(rate of strobe property)和闪光颜色属性 (strobe color property)。用户可以设置闪光率属性驱动和闪光颜色属性驱动。在该动画序列 中,当所述驱动存在时,所述驱动将随时间改变每一帧中的所述模型。
在如图2所示的例子中,键A206可以是比如一个表示时间中的一个状态的简学-驱动。键 存储所述系统中对象的属性。具体的,键存储所述动画序列中某一时间点的一个值或一组值。 例如, 一个光线对象可以在时间0:00:01.5处有一个"R:100 G:52 B:243"的颜色属性。
在如图2所示的例子中,对象A208可以是,例如,所述场景中描述的一个对象如一个角 色或者一个道具。每一对象可以包括发生在其上的方法,比如修改,和存储其状态的属性。
在如图2所示的例子中,方法A210可以是,比如,所述对象的一个显示方法。例如,所 述显示方法可找到所述对象的状态并适当地显示所述对象。在另一个例子里, 一图形化用户界 面产生显示方法可以产生和显示-图形化用户界面以接收有关对所述对象的可能的修改的用户 输入。
在如图2所示的例子中,属性A212可以是,例如,所述对象的属性。例如,对象的属性 可以包括在所述场景中的位置、颜色、与其他对象的关联、在所述序列中的运动等。
在如图2所示的例子中,在操作中,所述场景的所述对象和系统可利用相关的显示方法被 读取和显示。所述场景是以一对象导向方式设计和存储,从而允许每一编程级(level of programming)不同层的提取。图3展示了提供一动画序列中一指定帧的快速计算的方法300的例子。该方法可在如图2 所示的系统中执行以计算一动画序列中的一指定帧。多幅帧可被计算以产生所述动画序列。
在操作302中,所述工作站确定是否收到用户计算一指定帧的指示。例如, 一用户可输入 一渲染所述动画序列中一指定帧或一系列帧的用户命令。
在操作304中,所述工作站确定一被要求的对象属性是否存储于一驱动或一键内。若该对 象属性存储于一驱动,所述工作站跳至操作306。若所述对象属性存储于一键,所述工作站跳 至操作308。
所述动画序列可被存储为一系列的对象,这些对象表示一个三维模型。每一对象包括可影 响所述动画序列外观的属性。
在操作306中,所述工作站从一驱动读取所述指定帧在某一时间点的一个属性值。如上所 述,所述驱动存储一个属性在所述动画序列中随时间变化的连续系列值。所述工作站从所述驱 动中读取所述指定帧的在所述时间点的值。
如果所述驱动不包括所述指定帧的在所述时间点的值,所述工作站可使用一个缺省值,也 可以由前一时间点或后一时间点的值进行推算,或采用其他方法计算一属性值。
在操作308中,所述工作站从所述对象的键中读取属性值。如前所述,键存储某一时间点 的表不一个属性的一个值或者一组值。
在操作310中,所述工作站从操作308中获取的键值推算所述指定帧在所述时间点的属性 值。如果所述指定帧所处的时间点与其中的一个键相符,那么该键值被采用。
如果指定帧所处的时间点位于多个键之间,即使没有键与该指定帧在时间上相符,可采用 一个混合函数(blending function)快速计算一个属性值。该混合函数可以是一线性或指数平均 函数(averaging function),或者其他可输出一复合结果(blendedresult)的函数。
在操作312中,所述工作站确定是否所有软件对象已经被处理。 一动画序列可包括多个软 件对象,每一软件对象有自己的属性。所述工作站重复执行所述方法直至所有对象被处理。
在操作314中,可选的,所述工作站可显示和存储所述计算获得的指定帧。可想像,可通 过从所述软件对象渲染一定数量的指定帧,渲染获得整个动画序列或者所述动画序列的一个子 集。在操作306中,所述工作站退出所述流程。
图4展示了对应用户输入的一个三维场景的值提供接近实时渲染的流程的一个例子。该流 程可在如图1所示的系统中执行。该流程可利用如图2所示的数据对象。该流程提供一个图形 化用户界面,用户可将新的或者经修改的场景的值输入该图形化用户界面,而该图形化用户界 面可对应用户输入接近实时地显示相应的渲染。该用户可从任何角度观看渲染获得的动画中的 任意一帧,也可以观看相关的动画特辑(animation clip)。通过提供接近实时的渲染,在创造 和编辑场景的过程中,用户可以很容易的可视化对场景值所做的修改。
在操作402中,所述工作站可以提供一图形化用户界面。例如,该图形化用户界面包括输 入区域以接收用户输入的值,输出区域以显示场景属性,以及一渲染窗口以显示所述场景的当 前渲染。例如,所述渲染窗口可从所述动画序列中的任何时间点以及所述三维空间中的任何角 度显示所述场景。
在操作404中,所述工作站可检测是否接收到用户输入值。若有必要,所述图形化用户界 面等待用户输入并将用户输入值转化为场景值。若有必要,所述图形化用户界面还将用户输入 值以一数据对象的格式存储于一可存取的存储器。
在操作406中,所述工作站将所述接收到的用户输入值发送给所述图形处理器。例如,所 述图形处理器可以包括一个所述图形化用户界面可存取的寄存器。可选的,所述用户输入值也 可以存储于存储器,然后所述图形化用户界面自动提示所述图形处理器计算渲染。所述图形处 理器可在执行所述渲染之前检查存储器里的用户输入值。
可选的,所述用户输入值可以被传送给所述工作站内的任何处理装置。可以通过在一用于 图形相关计算的专用的处理器上计算所述渲染以提升性能。
在操作408中,所述工作站检测是否自所述图形处理器收到渲染。对应上述接收用户输入 值,所述图形处理器可立刻运算图形处理器。通过在图形处理器上计算渲染,因为特殊的硬件 和处理能力,可获得非常快的渲染时间。
可想像的,所述图形处理器可以是所述工作站的一个部分。可想像的,所述渲染可以用所 述工作站所可操作的任何处理装置进行计算。
所述图形处理器可根据用户指示的参数计算所述渲染。例如,所述场景的特定的方面可以 被忽略以提升渲染性能,例如光线、着色、纹理或其他方面。在操作410中,所述工作站在所述图形化用户界面中向用户显示所述渲染。例如,如上所 述,可在所述渲染窗口向用户显示从一个选定角度观看的所述渲染的选定帧。用户可选择任意 帧和任意角度。用户还可以观看与该场景相关的一个动画或者该动画的一部分。
在操作412中,所述流程结束。
图5展示了提供一三维可视化软件的流程500的一个例子。该流程可在工作站上执行并产 生一图形化用户界面以在修改一场景时与用户交流。该场景可被从存储器中读取,并对应用户 对该场景中的对象的改变被所述三维可视化软件可视化。当用户完成任何想要的修改后,该流 程可将该场景渲染成一个视频序列。
在图5所示的例子中,在操作502中,所述工作站可从存储器读取软件对象。例如,这些 软件对象可存储于一大容量存储装置内的一场景数据结构中,这些软件对象可以先被读至存储 器中使得所述工作站可快速读取。软件对象可以包括所述场景中描述的对象以及表示场景中效 果的系统,以及任何其他在所述场景中描述的内容。
在图5所示的例子中,在操作504中,所述工作站可产生一个图形化用户界面。例如,所 述工作站可读取一个将每一软件对象类型与一显示方法关联的列表。对于每一被描述的软件对 象,可以依据该软件对象的类型调用一个显示方法。这可创建一个统一的界面,所有相同类型 的软件对象被显示于一个类似的图形化用户界面。
可选的,每一软件对象可以包括一个显示方法,该显示方法被调用以显示所述软件对象。 这允许创建定制的显示方法以唯一地服务于关联的软件对象。这样,通过简单地调用所述场景 中每一软件对象的显示方法,所述场景可以很容易被显示。可选的,其他方法也可用于产生所 述图形化用户界面。
在图5所示的例子中,在操作506中,所述工作站可以显示所述产生的图形化用户界面。 所述图形化用户界面可以如上述般被产生,并通过一输入/输出接口被显示于一监视器。
在图5所示的例子中,在操作508中,所述工作站可以检测是否接收到有关针对至少一个 所述软件对象的修改或修饰的用户输入。例如,所述图形化用户界面可以向用户提供修改或修 饰所述场景中软件对象各属性的界面。如果接收到用户输入,所述工作站可以跳至操作510。 如果未收到用户输入,所述工作站可以保持在操作508等待用户输入,或者跳至操作516。在图5所示的例子中,在操作510中,所述工作站可以根据用户输入改变一个受影响的软 件对象的一个属性。例如,用户输入可以通过所述图形化用户界面提高或降低一个属性值,如 光线亮度、雾透明度或其他属性。可选的, 一个组选择功能可允许用户同时修改多个相关的属 性。
在图5所示的例子中,在操作512中,可选的,所述工作站可以检测是否接收到有关改变 可视化设置的一用户输入。例如,基于被改变的软件对象的所述场景的可视化可以在一个图形 处理器上执行以提升效率。可视化可通过由所述图形化用户界面操作的各设置所控制,以影响 可视化的表现效果,比如所述被可视化的场景的复杂度。如果接收到用户输入,所述工作站可 以执行到操作514,在此所述受影响的可视化设置被改变。如果未接收到用户输入,所述工作 站可保持在操作512以等待用户输入,或者跳至操作516。
在图5所示的例子中,在操作514中,可选的,所述工作站可以根据用户输入更新所述可 视化设置。所述可视化设置可被改变以修改所述被可视化场景的复杂度。
在图5所示的例子中,在操作516中,所述工作站可以自动产生接近实时的可视化以描述 所述更新后的场景,以反映任何接收到的用户修改。所述可视化可以为在所述图形处理器上的 执行而优化以达到快速执行。所述可视化可接近实时地发牛,例如,达到每秒大于一帧的速 度,并允许用户将针对所述软件对象所作的任意修改或修饰造成的影响立刻PJ视化。如果需要 额外的用户输入,所述工作站可回到操作508等待用户输入。
在另一实施例中,所述可视化可在所述中央处理器上执行。在另一实施例中,所述可视化 可在所述处理器的组合上执行。
在图5所示的例子中,在操作518中,可选的,所述工作站可以一期望的质量渲染所述场 景。所述渲染可以根据一指示渲染所述最后场景的用户指令而执行。例如,所述渲染可以与所 述可视化类似,口J在所述图形处理器上执行,也可以在所述中央处理器上执行,还可以在位于 所述工作站之内或之外的一处理器的组合上执行。例如,所述渲染可在一高性能渲染服务器上 执行。
在图5所示的例子中,在操作中,对应用户对所述场景的修改,可自动产生接近实时的可 视化并向用户显示。例如,用户可以更新所述场景中的一个光线属性,并可立刻看到该修改所带来的影响。用户可在所述场景中重新放置对象、摄影机以及光线,并立刻将所述修改可视 化。这使得与所述三维可视化软件之间的互动更直观。
图6A展示了一三维可视化软件的屏摄的一个例子。该屏摄可包括一可视化窗口以显示当 前场景,并向用户提供一图形化用户界面供用户操作以提供所述场景的不同的视图。可提供一 点击-拖动(click-and-drag)界面,以用于改变一摄影机的位置,从而允许用户从不同的角度观 看所述场景。
在如图6A所述的例子中,根据用户输入,所述可视化窗口中描述的对象可被移动以及修 改。所述屏摄可包括一个时间线窗口,该时间线窗口包括一个或多个可在该场景中移动的摄影 机在一个序列中的通道和键。每一键定义所述序列中的一个状态,该序列中的其他键可从一场 景中的一个或多个已经定义的键推算获得。
在如图6A所述的例子中,所述屏摄可包括一个场景窗口,该场景窗口包括放置在所述场 景内的一系列系统,比如摄影机、雾化效果、光线等等。这些系统可以被分成组或者子组,所 述图形化用户界面可允许用户选择或者取消选择在所述可视化窗口中用于描述的系统。
在如图6A所述的例子中,所述屏摄可包括 -对象窗口以描述所述对象的属性。 一图形化 用户界面可为用广提供一修改所述对象属性的界面,例如,对象名称及描述。另外,对象类型 特定属性可被显示。例如, 一摄影机对象可包括摄影机属性,比如模糊距离(blur distance)、 焦距(focal distance)以及其他属性以修改选中摄影机对所述场景的捕捉。
在如图6A所述的例子中,用户通过所述图形化用户界面所作的任何改变都会被自动地在 所述可视化窗口中被可视化。例如,对对象位置、对象属性设置、系统位置及系统设置的改变 可改变对一场景的描述。通过对所有改变提供迅速的自动的可视化,所述三维可视化软件帮助 用户的创造过程而无需打断设计流程。
图6B展示了一三维可视化软件的又一屏摄的例子。所述屏摄可包括一场景窗口,该场景 窗口包括可放置于该场景内的可用的系统。这些系统可以以树形结构显示,被分为组或子组。 所述图形化用户界面可允许用户通过点击-拖动选择一个系统并将其放入所述可视化窗口。另 外,所述图形化用户界面可允许用户将所述系统分成组或子组。如上所述,对所述场景所作的 改动可在所述可视化窗口被立刻可视化。图6C展示了一三维可视化软件的又一屏摄的例子。所述屏摄可包括一场景窗口,该场景 窗口包括以展开的树形结构(collapsed tree structure)组织的可用的系统。该场景窗口可与上述 的场景窗口类似,只是所有的组均展开。如上所述,对所述场景所作的改动可在所述可视化窗 口被立刻可视化。
图6D展示了一三维可视化软件的又一屏摄的例子。该屏摄可包括选中系统的驱动及属 性。每一系统可包括一个或多个驱动及属性,这些驱动和属性可被显示于所述图形化用户界面 并被用户操作。如上所述,对所述场景所作的改动可在所述可视化窗口被立刻可视化。
图6E展示了一三维可视化软件的又一屏摄的例子。该屏摄可包括一当前选中的系统。该 系统可被突出或在所述可视化窗口中被指出。该屏摄还可进一步显示曾被选中的对象的历史记 录,以便于用户的编辑过程。如上所述,对所述场景所作的改动可在所述可视化窗口被立刻可 视化。
图6F展示了一三维可视化软件的又一屏摄的例子。该屏摄可包括一情节串联图板 (storyboard)图形化用户界面。如上所述,对所述场景所作的改动可在所述可视化窗口被立刻 可视化。
图6G展示了一三维可视化软件的又一屏摄的例子。该屏摄可显示一个组图形化用户界 面,该界面允许用户将相关的系统和对象放入不同的组。例如,这可便于用户对一组内容作批 量修改,而无需要求用户手动地选择每一系统或组进行修改。如上所述,对所述场景所作的改 动可在所述可视化窗口被立刻可视化。
图6H展示了一三维可视化软件的又一屏摄的例子。该屏摄可包括一光线设置图形化用户 界面,允许用户修改在所述场景中采用的光线。每一光线系统可被包括在一组,从而环境光设 置可被更改。光线系统的例子包括太阳对象(sun-object)、点光(pm light)、聚光(spot light)或其他光系统。每一光系统包括可改变光线被投入所述场景的方式的属性。如上所述, 对所述场景所作的改动可在所述可视化窗口被立刻可视化。
图61展示了一三维可视化软件的又一屏摄的例子。该屏摄可包括一层图形化用户界面 (layers GUI),允许用户修改所述场景屮的层。例如,对象和系统可在一层中相关联。每一层 可以是相关对象和系统的一个集合,并可被用户作为一个单元进行处理。例如,用户可改变一个层的位置或修改该层内的对象的属性。如上所述,对所述场景所作的改动可在所述可视化窗 口被立刻可视化。
图6J展示了一三维可视化软件的又一屏摄的例子。该屏摄可包括一带对象属性的对象窗 口。例如,这可显示所述对象的各属性及通道。如上所述,对所述场景所作的改动可在所述可 视化窗口被立刻可视化。
图6K展示了一三维可视化软件的又一屏摄的例子。该屏摄可包括一时间线窗口,该时间 线窗口可包括一系统,比如一点光(point light)。该点光系统可通过所述图形化用户界面被修 改和移动。如上所述,对所述场景所作的改动可在所述可视化窗口被立刻可视化。
图6L展示了一三维可视化软件的又一屏摄的例子。该屏摄可包括一时间线窗口,该时间 线窗口可包括一系统,比如一投射光系统(projected light system)。这可以与上述的显示点光 系统的图形化用户界面类似。如上所述,对所述场景所作的改动可在所述可视化窗口被立刻可 视化。
图6M展示了一三维可视化软件的又一屏摄的例子。对应指示将所述场景渲染为一个序列 的一用户输入, 一捕捉选项窗口可与渲染选项一起显示以供用户选择。用户可在执行渲染流程 之前选择选项并输入值以控制所述渲染。比如,所述渲染可在所述工作站上执行,也可通过一 网络在渲染服务器上执行。
图6N展示了一三维可视化软件的又一屏摄的例子。所述场景的最终渲染结果可以一视频 特辑的方式向用户显示以供用户观看。 一个进展窗口可显示所述渲染的进展,以及各输入选项 如暂停、保存及放弃所述渲染过程。
图7A展示了一三维可视化软件中的一节点添加界面的一个屏摄的例子。该屏摄可包括附 于一对象的所有节点的列表。可根据用户输入增加或i除节点。
图7B展示了一三维可视化软件中的一通道编辑界面的-个屏摄的例子。该屏摄可包括多 个通道,每一通道由一个驱动或者一个或多个键表示。所述键可定义在所述序列中的特定的状 态,所述软件可以推算出所述键之间的驱动值(drive values)。
图7C展示了一二维可视化软件中的毛发图形用户界面的一个屏摄的例子。该屏摄可包括 有关毛发属性的选项和选择。例如,可在一个对象上设置毛发, 一个纹理可被从一个指定的文 件中上载,毛发的各种属性可被指定。毛发属性包括长度縮放(length scale)、伸展縮放毛发打薄(fiir thinning )、各向异性光 (anisotropic light)、夕卜壳及缝片。
图7D展示了一三维可视化软件中的辉光着色器界面的一个屏摄的例子。该屏摄可包括与 辉光属性相关的选项和选择。例如,可在所述对象上打开辉光,可以选择一个辉光遮罩(glow mask),可选择一个恒定的辉光选项,可以指定一个辉光的量和尺寸,可以定义一个辉光縮放 (glow scale)。
图7E展示了一三维可视化软件中的热键定义界面的一个屏摄的例子。该屏摄可显示所述 软件中可与一热键关联的各功能。例如,热键可允许用户通过在一键盘上输入一热键组合快速 激活一项功能。
图7F展示了一三维可视化软件中的一层界面的一个屏摄的例子。该屏摄可包括与每一层相 关的属性。例如, 一层可被创建,并且多种属性可被打开。 一层可以包括多个名称,属性可以 包括该层是否可在所述预览窗口内可视,该层是否被用户选中,或者该层是以全帧显示还是以 低分辨率显示。
图7G展示了一三维可视化软件中的一光线设置对象界面的一个屏摄的例子。该屏摄可以 包括一场景的可选的光线设置对象的一个树形结构。用户可选择何种光线设置对象将显示于所 述场景内。
图7H展^了一三维可视化软件中的一多面着色器界面的一个屏摄的例子。该屏摄可包括 所述场景内采用的多而着色的各种特性的用户输入。多面着色可以是一三维计算机图形中的一 组技术的组合,组合了一表面反光模型与一兼容的像素颜色估计法,该像素颜色估计法是利用 穿过光栅化多边形的曲面法线(surface normals across rasterized polygon)的内插值。
图7I展示了一三维可视化软件中的一点光系统界面的一个屏摄的例子。该屏摄可包括一界 面以接收有关一点光系统的用户输入。例如,所述点光系统可以包括一名称、 一打开选项以及 光属性。点光属性包括衰减(fall off)、范围、颜色、强度以及开启阴影源(shadow source)、漫射以及高光效果。点光属性也可以被选择以影响毛发和辉光。也可输入一点光转 换(point light transform)。图7J展示了一三维可视化软件中的一投射光系统界面的一个屏摄的例子。该屏摄可包括一 界面以接收有关投射光系统的用户输入。例如, 一投射光系统可包括名称、纹理文件以及开启 选项。所述光可以包括以下属性如颜色、角度、方位、范围、角度、轴以及阴影质量。
图7K展示了一三维可视化软件中的一反射着色器界面的一个屏摄的例子。该屏摄可包括 一界面以接收有关反射属性的用户输入。例如,反射属性可包括颜色、折射率、模糊度、平整 度等。各种贴图(map)可被用于修改所述反射。
图7L展示了一三维可视化软件中的一渲染参数界面的一个屏摄的例子。该屏摄可包括一 界面以接收有关渲染参数的用户输入和选择。例如,用户可选择使用某一个渲染器,是否渲染 阴影,是否渲染纹理遮罩(texture matte),是否以低分辨率渲染。所述的选择可影响渲染性能 以及最终序列的质量。
图7M展示了一三维可视化软件中的一高光偏移着色器界面的一个屏摄的例T。该屏摄可 包括一界面以接收有关高光偏移属性的用户输入。例如, 一高光偏移着色器可改变它的颜色、 高光、环境反射以及纹理。另外,该高光着色器可利用一贴图控制属性。
图7N展示了一三维可视化软件中的一次表面散射着色器界面的一个屏摄的例子。该屏摄 可包括-界面以接收有关次表面散射属性的用户输入。例如,属性可包括一贴图选择(map selection)、高光属性、半透明属性、微结构属性以及纹理属性。
图70展示了一三维可视化软件中的一表面环境遮挡系统界面的一个屏摄的例子。该屏摄 可包括一界面以接收有关表面环境遮挡系统属性的用户输入。例如,用户可设置表面标志 (surface flag)以及修改环境遮挡属性。
图7P展示了一三维可视化软件中的一水着色器界面的一个屏摄的例子。该屏摄可包括一界 面以接收有关水着色属性的用户输入。例如,颜色、反射、噪音以及波属性(wave property) 可被修改。
在上面讨论的屏摄的例子中,图形化用户界面可以是对应将被显示的所述对象而动态产生 的。例如,若所述场景包括一投射光系统对象,而且该对象被用户选中,与该对象关联的显示 方法可被调用。该显示方法可动态产生如图5J所示的界面。当用户选择一可选的选项或改变了 一可更改的属性,该对象可自动更新相关属性。进一步的,所述应用可对应所述用户输入自动 渲染一 览序列或场景。虽然参考了特定的例子讨论了以上的实施例,显然可针对这些实施例作各种修改、组合以 及改动。因而,该说明书及这些附图是被用于说明本申请而非限制本申请。以上说明书在描述 中提供了特定的例子。显然,可针对这些例子做各种修改,但这些修改依然在所附权利要求的 精神和范围之内。所述说明书和附图是被用于说明本申请而非限制本申请。
权利要求
1.一用于计算快速渲染的系统,其包括一图形处理单元;以及与所述图形处理单元通信的一处理器,该处理器被配置成通过一图形化用户界面从一用户接收一三维场景的一用户输入值;基本与接收所述用户输入值同步地,将所述用户输入值提供给所述图形处理单元,并在所述图形处理单元启动一个渲染;从所述图形处理单元接收计算获得的渲染;以及启动向所述用户的所述计算获得的渲染的一个显示。
2. 如权利要求1所述的系统,其中,所述计算获得的渲染是对应所述用户输入值,基本实时 地向所述用户显示。
3. 如权利要求l所述的系统,其中,所述三维场景由多个数据对象表示。
4. 如权利要求3所述的系统,其中,所述用户输入值被存储于一指定数据对象。
5. 如权利要求1所述的系统,其中,所述用户输入值被直接写入所述图形处理单元的一个内 置的存储器。
6. —用于计算一动画序列帧的方法,其包括 根据用户请求,选择一动画序列中的一个时间点上的一指定帧;部分地基于来自一软件对象的帧信息计算所述指定帧,其中,所述帧信息与所述指定帧在 所述动画序列中的时间点有关;若所述帧信息是被存储于所述软件对象的一个时间变量内,从与所述时间点关联的所述软 件对象读取一属性值;以及若所述帧信息是存储于所述软件对象的一单个时间变量内,从至少一个读取的帧信息推算 出所述时间点的帧信息。
7. 如权利要求6所述的方法还包括显示所述计算获得的指定帧。
8. 如权利要求7所述的方法还包括,其中,所述计算获得的指定的帧被作为所述动画序列的 一部分显示。
9. 如权利要求6所述的方法还包括,其中,所述计算是在一图形处理单元上执行。
10. 如权利要求9所述的方法还包括,其中,所述帧信息是被直接写入所述图形处理单元的一 内置存储器。.
11. 一用于提供一用户界面的方法,其包括 获取一组表示一三维场景的软件对象产生一图形化用户界面,其中,该图形化用户界面是通过激活与所述三维场景中的每一软 件对象相关联的一显示方法而产生的;显示所述图形化用户界面;对应通过所述图形化用户界面接收改变一场景属性的一用户输入,改变 -受影响的软件对 象的一属性;以及自动产生一基本实时的可视化,该可视化描绘反映所述软件对象属性的改变的一更新的场旦 眾。
12. 如权利要求ll所述的方法还包括在一图形处理单元上执行所述可视化。
13. 如权利要求12所述的方法,其中,所述受影响的软件对象的被改变的属性被直接写入所述 图形处理单元的一 内置存储器。
14. 如权利要求ll所述的方法,其中,所述三维场景中的每一软件对象是在所述图形处理单元 的一个管道中被可视化的。
15. 如权利要求14所述的方法还包括对应指示一期望可视化复杂度的一用户输入,更改至少 一个可视化复杂度设置。
16. 如权利要求11所述的方法还包括对应接收指示改变一可视化设置的一用户输入,更改至少一个可视化输入。
17. 如权利要求11所述的方法还包括将所述软件对象渲染为一二维画面供观看。
18. 如权利要求17所述的方法,其中,所述可视化和渲染是在一服务器上发生。
19. 如权利要求ll所述的方法,其中,每一通道与至少一个属性关联,每一属性与受所述通道 内的一改变的影响的一软件对象关联。
20. 如权利要求ll所述的方法,其中,所述通道的改变包括以下至少之一 一摄影机在所述场 景中的位置, 一软件对象的位置, 一软件对象上的一纹理放置,以及一软件对象的一材质 调整。
全文摘要
一方法及系统,用于计算三维场景的快速渲染。软件对象包括表示一动画序列中的三维模型的对象属性。对象属性存储在所述动画序列中的一个时间点的离散数值。根据需求,利用对象属性计算出一动画序列的某一指定帧,而无需计算该指定帧之前的帧。根据对象属性可动态产生图形化用户界面,作为用户与对象属性之间的界面。
文档编号G06T15/10GK101617343SQ200880003744
公开日2009年12月30日 申请日期2008年8月25日 优先权日2007年12月21日
发明者优尼·科恩格, 大卫·科恩格, 布莱恩·安德森, 罗伯特·科奈克 申请人:工作室图形处理器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1