动态工作平面3D渲染环境的制作方法

文档序号:13707105阅读:237来源:国知局
背景许多计算机实现的应用允许用户渲染三维(3D)环境。通常,这样的应用可以把在3D环境内的平面的形式的一个或多个静态向导用作参考,以允许用户确定在环境内的物体放置。触摸接口和鼠标接口本质上是二维的,且在用户想要在3D环境中什么深度处执行动作方面往往是不直观的。借助于3D环境可以支持众多不同的类型的动作,包括造型和物体放置任务。概述提出了提供通过二维用户界面访问的3D渲染环境中的动态工作平面的技术。动态工作平面与用于3D环境的渲染应用中的渲染工具相关联。在3D环境中确定参考平面。参考平面可以是用于初始渲染的记忆平面,或基于3D环境中的现有结构定义。用户通过用户输入设备和具有环境的观看视角的二维用户界面与环境交互。在选择了渲染工具且用户接合环境以便使用工具时,相对于参考工作平面渲染动态工作平面。动态工作平面朝向和位置依赖于观看视角、所选择的渲染工具和3D环境中的交互位置。在一个方面,用于渲染三维环境的计算机实现方法包括用于呈现动态工作平面的技术。确定至少一个参考平面和相对于参考平面的观看视角。然后,用户经由用户输入设备选择渲染工具,在三维环境中渲染工作平面。工作平面朝向和位置依赖于观看视角、所选择的渲染工具和环境中的交互位置。附图简述图1A描绘了使用鼠标和键盘的第一类型的用户界面。图1B描绘了使用触摸屏的第二类型的界面。图1C描绘了具有空3D环境的第二类型的界面。图2是解说在此提出的技术的一个实施例的流程图。图3A到图3F解说了根据本技术的动态工作平面的各种视角和放置。图4是解说本技术的第二方面的流程图。图5A描绘具有三维环境并以第一朝向和位置示出的动态工作平面的触摸屏界面。图5B描绘具有三维环境并以第一朝向和第二位置示出的动态工作平面的触摸屏界面。图6描绘具有三维环境并以第一朝向和第二位置示出的动态工作平面的触摸屏界面,且渲染工具在环境中该在该平面上创建元素。图7描绘具有三维环境并以第二朝向和第三位置示出的动态工作平面的触摸屏界面。图8描绘具有三维环境并以第二朝向和第三位置示出的动态工作平面的触摸屏界面。图9描绘具有三维环境和以相对于图5中的朝向旋转的第三朝向和第四位置示出的动态工作平面的触摸屏界面。图10描绘具有三维环境和以平行于环境的表面的第二朝向示出的动态工作平面的触摸屏界面,且渲染工具在环境中在该屏幕上创建元素。图11解说了适用于执行所提出的技术的第一类型的计算设备。图12解说了适用于执行所提出的技术的第二类型的计算设备。详细描述提出了在通过二维用户界面访问的3D渲染环境中提供动态工作平面的技术。动态工作平面关联到用于3D环境的渲染应用中的渲染工具。在3D环境中确定参考平面。参考平面可以是用于初始渲染的记忆平面,或基于3D环境中的现有结构定义。用户通过用户输入设备和具有环境的观看视角的二维用户界面与环境交互。在选择了渲染工具且用户接合环境以便使用工具时,相对于参考工作平面渲染动态工作平面。动态工作平面朝向和位置依赖于观看视角、所选择的渲染工具和3D环境中的交互位置。动态工作平面的位置和朝向可以是动态的,且随着用户的每一交互、所选择的每一工具以及透视图相对于3D环境的改变而改变。动态工作平面可以由用户锁定或手动放置。图1A和图1B解说了用于植入3D渲染应用的计算系统的用户界面和用户输入设备。在这一上下文中,3D渲染应用可以包括允许以三维解说的环境的创建、修改和显示的计算机实现的应用。图1A解说了显示器116,显示器116可以是耦合到计算设备的独立监视器,或具有集成计算系统。包括键盘150和鼠标162的输入设备可以用来与应用和显示器116交互。如本领域中众所周知的,这样的设备可以用来操纵光标130以便在3D环境120中选择交互点135。交互点是二维显示器上引起确定3D环境中的交互位置的位置。图1B解说了触敏显示器160,显示器160可以是耦合到计算设备的独立显示器,或具有集成计算系统。在图11和图12中解说了可以连接到显示器116/160或与显示器116/160合并的示例性计算系统。图1B解说了使用图1B的触摸界面与环境120交互的人手175。通过在此提出的技术来启用用户输入设备与触摸屏的这样的交互。应理解,用户输入设备不限于图1A-图1B中所解说的那些,而是可以包括其他类型的输入设备,诸如例如使用RGB和/或深度传感器的手势检测设备。这样的接口设备的一个示例是可从华盛顿州雷蒙德市微软公司获取的Kinect。正如图1A和图1B中所解说的,每一显示器116/160可以在其中渲染三维环境120。环境120包括通常是平面的表面125,且在表面125上提供多个特征。3D渲染应用中的工具可以用来向环境添加陆地、特征和其他元素,以及移除和修改环境中的元素。应理解,三维环境120可以采取任何数量的不同的形状和形式,且在此解说的三维环境仅仅是示例性的,并且提供它们只是为了解说在此讨论的技术。另外,图1A–图1C中解说了多个工具选择器图标102、104、106、108。每一选择器启用生成3D环境120的3D渲染应用中的不同的渲染工具,允许添加、删除或修改环境120。图1C解说了图1B的显示器160,且其中没有3D环境元素,但示出了记忆参考平面145的表示。本文的技术可以把参考平面145用作根据本技术创建的任何3D环境的参考。正如图1A-图1C中所解说的,参考工作平面145具有通常对应于表面125的朝向和区域,然而,参考工作平面不需要对应于3D环境120中的任何具体的结构元素。此处提出的技术给用户提供屏幕上可视的工作平面,该工作屏幕依赖于在3D渲染应用中选择的工具以及用户界面相对于3D环境的视角。正如图5A中所解说的,当用户的手710在交互点715处接合触摸屏界面中的屏幕时,基于交互点715、3D环境的透视图以及用户已经选择的工具,以地点、朝向和3D环境内的位置显示工作平面315。图2是解说在3D环境中渲染动态工作平面的技术的流程图。在步骤210,对于在3D渲染应用中渲染的任何环境,做出对环境中的参考平面的朝向的判断。图3A-图3F解说相对于图1C呈现的参考平面145以及动态工作平面相对于参考平面145的用户界面视角的朝向。如以上所描述的,参考平面可以用来判断用于渲染动态工作平面的位置和朝向。在步骤215,做出用户界面相对于参考平面的视角的判断。图3A–3F中解说了多个不同的透视图。在图3A,例如,由相机305的位置以及相对于平面145的观察角310表示用户视角。例如,在这一配置中,以正面图示出动态工作平面315,且该平面的主表面面向相机305,且该平面垂直于参考平面145。在此应注意,图3A的呈现是示例性的,且不仅取决于用户界面相机305的视角,也取决于所选择的工具。在步骤220,连续跟踪参考平面145相对于用户界面视角的朝向。以这种方式,本技术保持了解参考平面145相对于用户界面的观看视角的朝向。随着参考平面145的视角改变,基于与动态工作平面的用户交互(例如,锁定动态工作平面)或工具的功能,工作平面可以随着该视角改变或保持固定。在步骤225,在3D应用中做出对渲染工具的选择。图1A–图1C中示出了多种渲染工具选择按钮102-108。一般地解说工具,但应理解,工具可以包括多种不同类型的渲染工具中的任何。工具可以在3D渲染应用内添加元素、移除元素、改变元素或执行多种不同类型的渲染功能中的任何。出于本描述的目的,术语在3D环境内渲染元素包括在三维渲染应用内添加、删除和编辑任何类型的三维元素。一旦在步骤225选择了工具,在步骤230就做出关于工具是否具有与它相关联的动态工作平面的判断。并非所有渲染工具都要求使用动态工作平面,但给一些工具提供动态工作平面功能是有利的。在此应注意,动态工作平面的放置和朝向可以取决于由渲染工具提供的函数功能。如果该工具不具有动态工作平面,则该方法返回到步骤215。如果工具具有动态工作平面,则在步骤235确定与环境的用户接合。用户接合可以包括使用以上参考图1A所描述的用户输入设备移动光标、触摸参考图1B讨论的显示器160的表面或使用输入设备接合3D渲染应用的功能的任何其他方式。一旦在步骤235用户接合环境,在240就做出关于用户是否希望手动地放置渲染工具平面的判断。渲染工具平面的手动放置覆盖了动态工作平面的使用。用户希望手动地定义渲染工具平面的放置,然后,在步骤270,将在用户定义的接合点处渲染所述动态工作平面,且该方法将进行到步骤262,接合渲染工具。如果在240没有发生渲染平面的手动放置,那么,在245,做出关于动态工作平面与环境的接合点的判断。接合点是如以上参考图1A和1B所描述的光标或触摸界面点的位置或在用户界面和三维环境之间的任何其他接合点。下面应注意,在一个方面,他给出一个点,该点与用户在相对于三维环境的二维界面屏幕上放置他们的界面设备有关。接合点可以用来确定放置和在动态工作平面和参考平面145之间的相交点。如参考图1A-1C通常所理解的,在二维屏幕(例如显示器116/160)上表示接合点,但接合点在3D环境内表示三维位置。因而,接合点的二维表示被转换成3D环境,以便在接合点处于其中的环境内确定位置。一旦在245确定接合点,则在250基于用户界面的视角和工具功能做出网格的朝向的判断。图4提供关于在250判断朝向的额外细节。在步骤255,在3D环境中在接合点且以所判断的朝向渲染动态工作平面。在环境中高亮显示与参考平面或3D环境中的其他元素的任何相交。在渲染动态工作平面之后,在260可以利用与渲染功能相关联的工具。根据该技术,在渲染工具的功能的上下文中,渲染工具功能被约束在动态工作平面,以供各工具利用动态工作平面。与在255渲染动态工作平面重合,在285,用户可以选择把动态工作平面移动或锁定到位。如果在285用户选择锁定工作平面,则用户界面相对于动态工作平面的视角的任何改变将引起动态工作平面看上去是固定的,以使得在290动态工作平面随着3D环境中的元素旋转。渲染该工作平面,直到用户脱离该工具。在用户再次接合工具280时,该过程返回到步骤240。图3A-3F解说了相对于参考平面145的用户视角的各种动态工作平面朝向。应理解,各图中所示出的朝向通常表示相对于参考平面的观看视角如何影响动态工作场所的朝向。对于相同的视角,渲染工具功能可以改变动态工作平面315的放置。在图3A中,以相对于用户视角相机305的观察角310a观察参考平面145。在这个实例中,动态工作平面315a被渲染为垂直于参考平面145的表面,且以通常90°的角与参考平面145相交,且该表面平面被对准为垂直于观察角310a和相机305。图3A解说了与图5A和5B中所示出的视角类似的渲染工具的视角。如上所述,经选择为与渲染应用一起使用的工具可能影响动态工作平面的朝向和位置。在图3A中所解说的情况中,例如,渲染工具可以是添加工具——例如向3D环境添加诸如陆地之类的结构的工具。对于这样的工具,动态工作平面被选择为具有图3A中所解说的朝向。基于工具功能和根据3D渲染应用的设计,可以选择其他朝向。图3B解说了对于图3A中所示出的同一视角工具选择如何改变动态工作平面。在图3B中,对于相同的透视图和相同的观察角310a,动态工作平面被示出为平行于参考平面145。动态工作平面315b的这种位置和朝向可以不同于图3A中所示出的位置和朝向,其中,例如,图3B中的工具移除特征的工具,例如隧道或擦除工具。在这一示例中,使用例如擦除工具可以引起动态工作场所315b的朝向和位置的改变。在擦除工具的示例中,与现有结构相交是工具的适当操作所期望的,或者,相比于其他朝向,工具的功能可以更好适应具体朝向的使用(在这一示例中,平行于参考平面比垂直于参考平面更适当)。图3C解说了相对于图3A中所示出的视角旋转约90°的视角。结果,相对于图3A中所示出的工作平面315a,工作平面315c旋转了90°。图3D解说了相对于图3C中所示出的观察角310c增加了的观察角310d,其中工具的功能规定了动态工作平面315D存在且相对于参考平面145倾斜,但垂直于相机305的观看视角。观察角310d被示出为相对于参考平面145大于45度。图3E解说了相对于参考平面145大于45°的观察角的另一示例,这导致动态工作平面315e被定位为平行于参考平面145的表面。类似地,图3F解说了相对于平面145大约90°的观察角310f。相机305给用户观察呈现了参考平面145的“自顶向下”视图,在图8中解说了该视图的示例。再次,动态工作平面315f将被定位为平行于参考平面的参考平面145。应理解,在参考平面145的表面上的位置依赖于交互点,使得动态工作平面315可以接合表面(这对于删除工具来说是有益的)或被定位在参考平面145上(在使用构造工具时这是必要的)。图4解说根据用于执行图2中的步骤255的技术的方法。在步骤402,确定经由输入设备接收的交互位置。如上所述,交互位置将包括3D环境的三维坐标系中的位置,该位置是从3D环境到显示器的二维投影上的交互位置导出的。在步骤404,确定工具功能。如上所述,工具功能将与观看视角联合影响动态工作平面的渲染的位置和朝向。在406,确定相对于参考的观看视角位置。这包括确定相对平面大于或小于45°的观察角和相对于3D环境中的交互位置点的旋转角。在步骤410,基于工具功能,选择朝向(水平、垂直或朝向角)。为了确定朝向,在412做出关于工具的功能是否将受益于动态工作平面与3D环境中的现有结构的交的判断。在414,再次基于工具功能,做出关于动态工作平面被定位在平面中还是在平面上的判断。在418,做出关于观察角是大于还是小于45度的判断。如果观察角大于45度,则正如图3E和图3F中的所解说的。在420,基于观看视角做出关于动态工作平面的工具朝向是否应覆盖任何偏好的判断。在此应注意,某些工具可以更好利用动态工作平面的不同朝向。例如,如果“创建陆地”工具具有“高原”选项,则可以存在用于水平平面的工具中的偏好。在422,使用来自步骤412、414、418和420的输入,设置朝向,且根据图2的方法可以在显示器上的输入位置处呈现的工作平面。步骤424–430判断对于视角的改变动态工作平面的朝向是否将改变。在步骤424,针对视角的改变,在436做出关于动态工作平面是否被固定在3D环境内的具体位置的判断。如上所述,在使用工具时用户可以把网格锁定到位,或选择根据图2针对与给定工具的每一交互均移动和重新计算网格。在步骤428,网格未固定,那么,针对使用视角的任何改变,网格将旋转。在420,如果工作平面被固定,则该环境将围绕工作平面旋转,把工作平面保持在先前在410确定的固定位置。图5A和图5B解说了放置动态工作平面315。图5A和图5B中所解说的用户界面700包括触摸屏界面,使得用户的手710在交互点705处接合屏幕界面700。图5A–图10中也解说了XYZ坐标基准500,以便解说3D环境的旋转状态。正如图5A中所解说的,用户界面700包括多个工具选择器722、724、726和728。当手710在交互点705处接合屏幕时,把动态工作平面315渲染为垂直于且相交于表面750。工作平面的渲染解说了3D环境中该平面(在这种情况中是陆地表面755)与任何结构相交的交点315-1、315-2、315-3。应明白,不需要呈现参考平面145的网格,但是维护参考平面相对于环境位置和朝向。参考平面可以模仿图5A中所解说的表面755。表面755是一块地形,且动态工作平面315接合该地形,正如交点315-1–315-3所解说的。可以使用相交的其他解说,或不解说相交。图5B解说移动交互点715的影响。正如图5B中所解说的,在用户在不同的交互点和715b处接合界面700时,动态工作平面的位置相对于该交互点移动,且交点315-4到315-7示出动态工作平面与表面755的交。图6解说通过用户界面700结合图5B中示出的动态工作平面315操作渲染工具的使用。在这个实例中,在用户选择具体的渲染工具时,随着用户相对于交互点715前后移动,创建渲染结构600。所构建的结构600被约束在动态工作平面315,或者用户准确地知道三维环境750中所渲染的元素将出现的位置。图7解说了在这一示例中通常平行于表面755的动态工作平面的另一放置。图7中所解说的工作平面的朝向和位置类似于上面在图3B中所示出的工作平面。在该实例中,工作平面315在该表面上的位置处接合该表面,这取决于所使用的工具的类型,但界面700的朝向通常与图5–6中所示出的相同。图8解说了使用渲染工具来在被定位为高于表面755高度H的平行工作平面315中创建结构800。应理解,界面700中没有示出高度指示符。图8中的工作平面的朝向和位置类似于上面在图3B中所示出的工作的表示。图9解说了图7中所解说的工作平面315的自顶向下视图。再次,工作平面是平行于参考工作平面和表面755。图10解说了一种工作平面,该工作平面不是以相对于界面700的观看视角的角度而朝向,而是随着3D环境的旋转(相对于图5–9)而旋转。应注意,通过旋转XYZ参考500解说朝向的改变。在图10中所示出的示例中,工作平面315在虚拟环境中相对于参考平面145的旋转而旋转。因而,用户界面相对于工作平面315的视角处于某种角度。例如,在工作平面相对于虚拟环境的旋转固定时,就是这种情况。图9解说了合适的计算系统环境900的示例,例如可以在其上实现本技术的个人计算机。计算系统环境900仅是合适的计算环境的一个示例,且不旨在暗示关于本技术的使用范围和功能的任何限制。也不应把计算环境900解释成具有涉及示例性操作环境900中所解说的组件中的任何一个或组合的任何依赖性或要求。本技术与多种其他通用或专用的计算系统环境或配置一起操作。适于与本技术一起使用的公知的计算系统、环境和/或配置的示例可以包括但不限于个人计算机、服务器计算机、手持式或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费性电子设备、网络PC、小型计算机、大型计算机、包括以上系统或设备中的任何的分布式计算环境等等。可以在计算机可执行指令的一般上下文例如由计算机执行的程序模块中描述本技术。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本技术,分布式计算环境中,由通过通信网络链接的远程处理设备执行任务。在分布式计算环境中,程序模块可以位于包括存储器存储设备的本地和远程计算机存储介质两者中。图11解说了适于与所提出的技术使用的示例性计算系统。参考图9,用于实现本技术的示例性系统包括以计算机910的形式的通用计算设备。计算机910的组件可以包括但不限于处理单元920、系统存储器930和把包括系统存储器的各种系统组件耦合到处理单元920的系统总线921。系统总线921可以是多种类型的总线结构中的任何,包括使用各种总线架构中的任何的存储器总线或存储器控制器、外围总线和局部总线。作为示例而非限制,这样的架构包括工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、增强ISA(EISA)总线、视频电子设备标准协会(VESA)局部总线和也称为Mezzanine总线的外围组件互连(PCI)总线。计算机910通常包括各种计算机可读介质。计算机可读介质可以是可由计算机910访问的任何可用介质,且包括易失性和非易失性介质、可移动和不可移动介质两者。计算机可读介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据之类的信息的任何方法或技术实现的易失性介质和非易失性介质、可移动介质和不可移动介质两者。计算机介质包括但不限于RAM、ROM、EEPROM、闪速存储器或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁带盒、磁带、磁盘存储或可以用来存储所期望的信息且可由计算机910访问的其他磁存储设备或任何其他介质。系统存储器930包括以诸如只读存储器(ROM)931和随机存取存储器(RAM)932之类的易失性和/或非易失性存储器的形式的计算机存储介质。包含例如在启动期间帮助在计算机910内的元件之间传输信息的基本例程的基本输入/输出系统933(BIOS)通常被存储在ROM931中。RAM932通常包含处理单元920立即可访问和/或目前由处理单元920操作的数据和/或程序模块。作为示例而非限制,图9解说操作系统934、应用程序935、其他程序模块936和程序数据939。计算机910也可以包括其他有形的可移动/不可移动、易失性/非易失性计算机存储介质。仅作为示例,图9解说从不可移动、非易失性磁介质读取或向其写入的硬盘驱动器941、从可移动非易失性磁盘95读取或向其写入的磁盘驱动器951和从可移动非易失性光盘956例如CDROM或其他光学介质读取或向其写入的光盘驱动器955。可以在示例性操作环境中使用的其他可移动/不可移动、易失性/非易失性计算机存储介质包括但不限于磁带盒、闪速存储器卡、数字多功能盘、数字录像带、固态RAM、固态ROM等等。硬盘驱动器941通常通过诸如接口944之类的不可移动存储器接口连接到系统总线921,且磁盘驱动器951和光盘驱动器955通常通过诸如接口950之类的可移动存储器接口连接到系统总线921。以上在图9中所描述和解说的驱动器和它们的关联计算机存储介质为计算机910提供了计算机可读指令、数据结构、程序模块和其他数据的存储。在图9中,例如,硬盘驱动器941被解说为存储操作系统944、应用程序945、其他程序模块946和程序数据947。注意,这些组件可以与操作系统934、应用程序935、其他程序模块936和程序数据939相同或不同。应用程序935的一个示例是在此讨论的3D渲染应用。此处给予操作系统944、应用程序945、其他程序模块946和程序数据949不同的数字,以便解说它们起码是不同的副本。用户可以通过诸如键盘962和通常被称为鼠标、跟踪球或触控板的指点设备961之类的输入设备把命令和信息输入到计算机20。其他输入设备(未示出)可以包括话筒、操纵杆、游戏垫、圆盘式卫星天线、扫描仪等等。这些和其他输入设备常常通过耦合到系统总线的用户输入接口960连接到处理单元920,但可以通过诸如并行端口、游戏端口或通用串行总线(USB)之类的其他接口和总线结构连接。监视器991或其他类型的显示设备也经由诸如视频适配器990之类的接口连接到系统总线921。监视器991可以是触摸接口监视器,例如以上参考图1B所描述的。除了监视器之外,计算机也可以包括可以通过输出外围适配器995连接的其他外围输出设备,例如扬声器997和打印机996。计算机910可以使用到诸如远程计算机980之类的一个或多个远程计算机的逻辑连接来在联网环境中操作。远程计算机980可以是个人计算机、服务器、路由器、网络PC、对等设备或其他普通网络节点,且通常包括以上参考计算机910所描述的元素中的许多或全部,尽管图9中仅解说了存储器存储设备981。图9中所描绘的逻辑连接包括局域网(LAN)971和广域网(WAN)973,但也可以包括其他网络。这样的联网环境常见于办公室、企业范围的计算机网络、内联网和因特网。当在LAN联网环境中使用时,计算机910通过网络接口或适配器970连接到LAN971。当在WAN联网环境中使用时,计算机910通常包括调制解调器972或用于在诸如因特网之类的WAN973上建立通信的其他装置。可以内置或外置的调制解调器972可以经由用户输入接口960或其他适当的机制连接到系统总线921。在联网环境中,参考计算机910描绘的程序模块或其部分可以被存储在远程存储器存储设备中。作为示例而非限制,图9把远程应用程序985解说为驻留在存储器设备981上。应明白,所示出的网络连接是示例性的,且可以使用在计算机之间建立通信链路的其他装置。应用程序935的一个示例是在此讨论的3D渲染应用。可以把在此提供的技术集成到应用程序中,或者在诸如片上系统或专用微处理器之类的硬件设备中提供把在此提供的技术。图12是可以在本技术的实施例中操作的示例性专用硬件设备的框图。设备1200可以用于主控设备或通过主控设备接口1240直接耦合到用户输入设备。其中解说的设备1200可以包括根据本文描述的方法执行所解说的步骤的专用处理器1230。专用处理器1230可以耦合到存储器1220,存储器1220可以包括在此讨论的存储器类型中的任何,允许处理器执行在此讨论的方法步骤且存储允许处理器1210的操作的代码和其他信息。图形处理器1240可以经由主控设备图形接口1250把渲染指令输出到主控设备。备选地,图形接口和主控设备接口可以直接耦合到显示器和用户输入设备。尽管应用对结构特征和/或方法动作来说专用的语言描述了本主题,但应理解,在所附权利要求中界定的本主题并不必定限于以上所描述的特定的特征或动作。相反,以上所描述的特定的特征和动作是作为实现权利要求的示例形式而公开的。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1