CN1791850A - 用于操纵三维对象的数字表示的方法和*** - Google Patents

用于操纵三维对象的数字表示的方法和*** Download PDF

Info

Publication number
CN1791850A
CN1791850A CNA2004800136720A CN200480013672A CN1791850A CN 1791850 A CN1791850 A CN 1791850A CN A2004800136720 A CNA2004800136720 A CN A2004800136720A CN 200480013672 A CN200480013672 A CN 200480013672A CN 1791850 A CN1791850 A CN 1791850A
Authority
CN
China
Prior art keywords
building block
connection element
candidate
virtual building
dimensional
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
Application number
CNA2004800136720A
Other languages
English (en)
Other versions
CN100340960C (zh
Inventor
龙尼·谢勒
奥尔加·提姆森科
内奥米·克拉克
彼得·阿克
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Lego AS
Original Assignee
Interlego AG
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Interlego AG filed Critical Interlego AG
Publication of CN1791850A publication Critical patent/CN1791850A/zh
Application granted granted Critical
Publication of CN100340960C publication Critical patent/CN100340960C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63HTOYS, e.g. TOPS, DOLLS, HOOPS OR BUILDING BLOCKS
    • A63H9/00Special methods or compositions for the manufacture of dolls, toy animals, toy figures, or parts thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04845Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range for image manipulation, e.g. dragging, rotation, expansion or change of colour
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2219/00Indexing scheme for manipulating 3D models or images for computer graphics
    • G06T2219/20Indexing scheme for editing of 3D models
    • G06T2219/2008Assembling, disassembling

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Graphics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Processing Or Creating Images (AREA)
  • Image Generation (AREA)
  • Ultra Sonic Daignosis Equipment (AREA)
  • Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)

Abstract

依靠二维光标移动来操纵三维虚拟积木模型的方法,虚拟积木模型包括许多虚拟积木式组件,每块虚拟积木式组件包括许多用于根据一组连接规则连接该虚拟积木式组件与另一虚拟积木式组件的连接元件,该方法包括依靠光标在代表该模型二维投影的计算机显示区域中的移动来定位要被连接到结构的第一虚拟积木式组件的二维投影,得到该虚拟积木式组件的二维位置;由该二维位置确定第一虚拟积木式组件在三维坐标系中的许多候选位置;根据连接规则和一组预定的位置分级规则来选择候选位置其中之一;以及在选定候选位置上将第一积木式组件连接到结构。

Description

用于操纵三维对象的数字表示的方法和***
技术领域
本发明涉及操纵三维对象的数字表示。本发明尤其涉及由计算机实现的、依靠二维光标移动对三维虚拟积木模型所进行的操纵,虚拟积木模型包括多个虚拟积木式组件,每一块虚拟积木式组件包括许多连接元件,这些连接元件用于根据一组连接规则将虚拟积木组件与其它虚拟积木组件连接起来。
背景技术
虚拟现实的计算机辅助建模的任务是创建物理对象模型、操纵模型,此外在计算机***中处理物理对象的模型。
从第一观点,虚拟现实的建模是令人感兴趣的主题,因为它使得可能当概念在现实世界中真正实现之前就将概念形象化。假如虚拟现实模型很容易修改,在与在现实世界中实现同样过程相比,能够在开发和改进物理对象的过程节约大量时间。在现实世界里给对象上色这样简单的任务可能就轻易花去几个小时,而计算机能够在几毫秒或几秒内就给模型涂上新颜色。
从第二观点,虚拟现实建模是令人感兴趣的,因为它使得可能创建现实世界中存在的对象模型,以及通过计算机来形象化和操纵模型。因此,可以存储对象模型以用于不同的目的,例如用于高级文档编制的目的。
尽管存在大量用于计算机辅助虚拟现实建模的可能应用,但一个特殊应用是将虚拟现实建模用于娱乐或教育。
物理建构玩具组的不同类型的建模思想同样是已知的。特别是,使用组合式或半组合式概念的思想是非常流行的。典型地,这些思想提供了一组预制元件,这些元件能够根据预制元件的模块以某种预定方式彼此互联。这种建构玩具组的一个实例是名为LEGO的塑料玩具建构元件。
当在计算机上操纵三维(3D)对象或场景的表示时,通常的问题在于,对象在3D中的定位、选择或移动是借助于工作在二维中的输入设备来执行的,例如计算机鼠标在鼠标垫上的二维(2D)移动。此外,计算机的显示区域也是二维的。特别地,计算机屏幕的2D显示区域上的每一个选定的位置对应于3D空间内的多个位置,3D空间具有对应于所选定的2D位置的到2D显示区域的投影。问题在于确定可能符合用户意图的其中一个位置。
尽管已经进行了相当地努力来开发更适于操纵3D计算机图像中的对象的计算机接口设备,但是这种工具没有被广泛使用,特别是没有与用于家庭娱乐、教育等的计算机***相关。
已知的定位虚拟积木式组件的建构游戏典型地在对象的移动和旋转自由度或者将它们与其他对象连接的方式方面受到限制。
美国专利6,426,745描述了一种用鼠标操纵3D图形对象的方法,其中3D中的移动是通过在某个时刻把移动限制在一个平面或一个方向上来实现的,从而把3D移动用一系列受限的移动来实现,例如在3D坐标系中的X方向、随后在y方向、最后在Z方向上的一系列移动。
上述现有技术的***的问题在于,用传统的用户接口来把积木式组件放置在3D场景中以及它们与3D结构的连接是个麻烦的过程,这个过程需要高水平的技巧和训练。尤其是在儿童及十几岁的青少年的娱乐和教育的环境中,这是个问题,因为儿童通常还没有发展出足够的肌肉运动技巧或者执行冗长操纵过程所需的耐性。因此,他们可能很快就丧失对虚拟建构游戏的兴趣。
发明内容
上述问题及其他问题将通过由计算机实现的方法来解决,这种方法依靠二维的光标移动来操纵三维虚拟积木模型,虚拟积木模型包括多个虚拟积木式组件,每块虚拟积木式组件包括许多连接元件,连接元件用于根据一组连接规则将虚拟积木式组件与其它虚拟积木式组件相连接,该方法包括:
-为结构的数字表示提供三维坐标系中的许多所述虚拟积木式组件;
-借助于光标在表示所述结构的投影的二维计算机显示区域中的运动来定位第一虚拟积木式组件的二维投影,以使其连接到结构上,从而产生二维位置坐标;
-根据二维位置坐标确定第一虚拟积木式组件在三维坐标系中的许多三维候选位置;以及
-基于连接规则和一组预定的位置分级(position rating)规则来选择所述候选位置中的一个;以及
-在选定的候选位置上将第一积木式组件连接到所述结构。
因此,提供了用于操纵三维对象的数字表示的有效方法,这种方法以对于用户直观的方式将2D显示区域中的位置转变(resolve)为相应的3D位置,因此使得用户很容易操纵3D虚拟结构。用户可以简单地在2D屏幕区域中定位新的积木式组件,因而只固定新积木式组件在两个方向上的坐标。随后根据许多连接规则以及一组位置分级规则,自动确定多个符合2D放置的可能3D位置中适当的一个。
特别地,通过根据一组预定的位置分级规则选择许多候选位置中的一个,处理导致的结果是把积木式组件定位在3D场景中可能符合用户意图的位置上。
进一步的优点在于,不符合用于连接元件的连接规则的位置被拒绝。例如,建构***中可能有很多种不同的连接元件,例如不同形状和/或尺寸的突出物以及不同类型的、用于与相应一种突出物结合的孔洞。
假设新积木式组件被放置在符合2D放置的候选3D位置,通过选择靠近新积木式组件上连接元件的候选连接元件,并且通过检查与候选连接元件的有效连接是否可能,从而将计算机屏幕上新积木式组件的2D放置正确地转变为3D模型中的3D位置。此外,避免了根据一组连接规则可能导致无效连接的2D到3D转变,例如突出物与不同类型孔洞的连接。
因此,优点在于,虚拟积木式组件与相应的实物建构组的物理限制一致,从而提高了虚拟建构游戏的教育价值。特别地,虚拟建构随后可以通过用相同类型的积木式组件建构物理模型而被变换成物理模型。
进一步的优点在于,本方法提供了大的移动和连接自由度。例如,积木式组件可以在任意方向上被定位和连接。特别地,在水平和垂直面上都可能连接到其他积木式组件。此外,即使积木式组件被旋转,例如围绕垂直轴或水平轴旋转,也能正确地定位它们。
优选地,通过经由诸如指针设备之类的适当输入设备从用户处接收到的控制命令来控制图形表示的定位。例如,定位可以作为标准光标操纵技术而被执行执行,诸如“拖放”操作,“单击-拖动-松开”操作及其他类似操作。
在一个优选实施例中,确定许多三维候选位置的步骤进一步包括确定第一虚拟积木式组件在三维坐标系中的许多候选位置。通过旋转第一积木式组件以获得旋转后的积木式组件的候选位置,将用户控制的2D位置转变为3D放置以及三个维度上的定向,从而只基于2D屏幕区域中的单个光标控制就确定3D场景中放置的全部六个自由度。当第一积木式组件的旋转被限制在用户选定定向周围的预定空间角度时,避免了诸如积木的完全翻转(complete flipping around)之类的令人混淆的旋转,从而避免了用户的迷惑(disorientation)。在该实施例中,可以通过允许用户选择虚拟积木式组件的定向来获得更多的定向。
在一个优选实施例中,方法进一步包括:
-确定所述结构的许多候选连接元件,每个候选连接元件具有第一虚拟积木式组件的连接元件的投影周围的预定邻域内二维显示区域中的投影;
-基于连接规则和该组预定的位置分级规则,选择所述候选连接元件中的一个;以及
-如果根据该组连接规则,第一虚拟积木式组件和所述结构之间的连接是有效的,则通过至少一个选定的候选连接元件将第一虚拟积木式组件与结构连接。
因此,提供了检测候选位置的计算有效方法,因为检测只依赖于单独连接元件的位置和属性。此外,提供了有效的选择机制,用于选择最可能符合用户意图的3D位置。
当分级包含一个或多个下述分级规则时,提供了特别有利的连接元件分级:
-关于它们到虚拟摄像头位置的距离地对候选连接元件进行分级;
-丢弃从当前虚拟摄像头位置看不到的候选连接元件;以及
-关于它们的二维投影到第一虚拟积木式组件的相应连接元件的二维投影的距离地对候选连接元件进行分级。
特别地,当分级规则是基于到虚拟摄像头位置的距离组合以及基于他们的二维投影与第一虚拟积木式组件的相应连接元件的二维投影的相应间距时,获得了可靠的3D定位。
在一个优选实施例中,对于每个虚拟积木式组件,所述结构的数字表示包括对应于虚拟积木式组件的至少一个表面的许多规则的栅格,每个规则的栅格包括许多栅格点,每个栅格点代表一个连接元件。因此,提供了***化的框架,其允许3D位置的正确转变以及大量不同积木式组件的正确互联,即使积木式组件具有大量连接元件,甚至不同类型的连接元件。
优选地,所述第一虚拟积木式组件的连接元件的投影周围的所述预定邻域具有对应于相应规则栅格的相邻栅格点之间距离的线性标注(linear dimension),诸如直径。因此,提供了一种由用户控制的精确细致的放置,其产生3D分辨率和对于用户可预测的、透明的积木式组件连接。
进一步的优选实施例在从属权利要求中被公开。
本发明可以以不同的方式来实现,包括上述的以及下文中的方法、数据处理***以及其他产品装置,其中每一种方式都产生一个或多个结合第一被提到的方法描述的好处和优点,并且每一种途径都具有对应于结合第一被提到的方法描述的优选实施例的一个或多个优选
实施例。
注意,上述以及下文中的方法的特征可以在软件中实现,并且可以在数据处理***或其他处理装置中通过执行计算机可执行指令而实现。指令可以是从存储介质或通过计算机网络从另一台计算机加载到诸如RAM之类的存储器中的程序代码单元。可选地,所述特征可以通过硬布线电路来实现,而不是通过软件或者结合软件来实现。
本发明还涉及包括程序代码单元的计算机程序,当所述程序在计算机中运行时,程序代码单元用于执行上述以及下文中的方法的所有步骤。计算机程序可以被实现为计算机可读存储介质,数据信号被实现为载波,等等。
本发明还涉及包含存储在计算机可读介质上的程序代码单元的计算机程序产品,当所述计算机程序运行在计算机上时,程序代码单元用于执行上述以及下文中的方法。
附图说明
以下将结合优选实施例,并参照附图来更为完整地阐明本发明,其中:
附图1a-b表示用于生成和操纵几何对象的计算机可读取模型的数据处理***;
附图2表示虚拟积木***的图形用户界面;
附图3a-d阐明了积木式组件及其连接元件的实例;
附图4a-b阐明了物理积木式组件的数字表示的实施例;
附图4c阐明了连接点周围的体积元素(volume element)的实例;
附图5表示在3D场景中定位积木式组件并且将它连接到已存在于场景中的积木式组件的结构上的处理的流程图;
附图6a-b阐明了将新积木式组件定位在先前放置的积木式组件顶部上的实例;
附图7a-b阐明了由于屏幕上图形表示的略微不同的2D放置所导致的积木式组件的两个位置;
附图8表示在试验性的3D放置中,新积木式组件的连通性验证子程序的实施例的流程图;
附图9a-b阐明了包含了旋转的积木式组件的连接。
具体实施方式
附图1a-b表示用于生成和操纵几何对象的计算机可读取模型的数据处理***;
附图1a表示计算机***实例的示意图。计算机***包括被适当编程的计算机101,例如个人计算机,计算机101包括显示器120、键盘121以及计算机鼠标122和/或另一指针设备,诸如触摸板、轨迹球、光笔、触摸屏等。
标号为101的计算机***适用于促进设计、存储、操纵以及共享虚拟积木式组件模型。计算机***101可以用作单机***或者客户端/服务器***中的客户端。
附图1b表示用于生成和操纵计算机可读取的虚拟积木模型的数据处理***的方框图。计算机101包括存储器102,存储器可以部分被实现为易失性存储装置,并且部分被实现为非易失性存储装置,例如随机存取存储器(RAM)和硬盘。存储器具有存储在其上的模型代码解释器107、模型代码产生器108、UI事件处理程序109以及建模应用110,其中每一个都可由中央处理单元103执行。而且,存储器具有存储在其中的模型数据111,即代表物理对象的数字表示的一组数据结构,例如虚拟积木模型。用于存储虚拟积木模型的数据格式的一个实例在美国专利6,389,375中被公开了。
代码解释器107适用于读取和解释定义模型的代码,即代表模型的积木式组件的数据结构的代码。在优选实施例中,代码解释器适用于读取模型并将这种模型转换为已知图片格式,用于在计算机显示器上显示。
UI事件处理程序109适用于将用户与用户接口的交互转换为代码发生器108可识别的适当的用户命令。一组可能的并且可识别的命令可包括:从元件库获取积木式组件,放置积木式组件以连接到另一积木式组件,分离积木式组件,丢弃积木式组件,例如通过发起旋转等来操纵积木式组件或一组积木式组件等等。每一个命令可以与一组相应的参数相关联,例如相对于显示器坐标系的光标坐标、积木式组件的类型等。
代码解释器108适用于响应于用户的命令修改模型的数据结构。作为同时的或后续的任务,可以执行代码解释器,用于表示代码产生器的结果。
建模应用110适用于控制存储器、文件、用户接口等。
用户105能够借助于用户接口106与计算机***101进行交互,用户接口106优选地包括显示在计算机屏幕上的图形用户界面,以及一个或多个诸如键盘和/或指针设备的输入设备。
为了加载、存储或传递模型、几何描述或其他数据,计算机***包括输入/输出单元(I/O)104。输入/输出单元可以用作与不同类型存储介质和不同类型计算机网络,例如因特网,的接口。此外,输入/输出单元(I/O)104可以被用于例如交互地与其他用户交换模型。
借助于数据总线112实现存储器102、中央处理单元(CPU)103、用户接口(UI)106以及输入/输出单元104之间的数据交换。
附图2表示了虚拟积木***的图形用户界面。
用户界面包括显示区域201,用于显示具有底盘202以及包含许多互联的虚拟积木式组件204的3D结构203的3D场景视图。从预定的观察点显示场景。以下,这个观察点也被称为(虚拟)摄像头位置,因为它对应于这样一个位置,从这个位置上摄像头记录对应于显示区域中所示图形图像的实际结构的图像。
每个积木式组件204对应于图形用户界面中的活性元件,例如通过用计算机鼠标点击可以将其激活,从而选择该积木式组件。在一个实施例中,被选中的虚拟积木式组件改变了外观。例如,被选中的积木式组件可以改变颜色、纹理等;可以通过在被选中的积木周围显示有边界框等来加亮这个积木。用户可以操纵被选中的积木式组件,例如改变其属性,例如其颜色、将其删除、执行复制和粘贴操作、将其拖放到不同位置等。
用户界面还包括选项面板(palette panel)205,选项面板205包括许多可以被用户选择的不同积木式组件206。例如,用户可以用鼠标在其中一个积木式组件206上点击,从而选择积木式组件,以及将被选中的积木式组件拖进显示区域201,以将它连接到结构203或者连接到底盘202。
用户界面还包括菜单栏207,菜单栏包含许多用于启动各种功能或工具的菜单按钮208。例如,工具栏可以包括用于改变虚拟摄像头位置的旋转工具,从而允许用户从不同方向观察构造区域。菜单栏可以进一步包括用于放大和缩小3D场景的缩放工具。工具的其他实例包括用于选择不同选项面板205的选项面板工具,其中每个选项面板包括不同的积木式组件组合、用于为结构的部分上色的上色工具、用于擦除积木式组件的橡皮擦工具等。
菜单栏207可以进一步提供标准功能,诸如用于保存模型的功能、用于打开以前保存的模型的功能、用于打印模型图像的功能、帮助功能等。
附图3a-d阐明了积木式组件及其连接元件的实例。
附图3a表示积木式组件301的透视图。积木式组件301的上表面302带有8个突起303a-h,这些突起能够与另一积木式组件的相应孔眼,例如另一积木式组件底面上的孔眼,结合。相应地,积木式组件301包括带有相应孔眼的底面(未表示)。积木式组件301还包括不包含任何连接元件的侧面304。
通常,连接元件可以被分组为不同种类的连接元件,例如连接件、接受件以及混合元件。连接件是可以被另一积木式组件的接受件接纳以提供积木式组件之间连接的连接元件。例如,连接件可以容纳在另一组件的部分之间、***孔眼内等等。接受件是能够接纳另一积木式组件的连接件的连接元件。混合元件是既能充当连接件又能充当接受件的部分,这通常取决于另一积木的合作连接元件的类型。
附图3b表示从底部观察积木式组件310的透视图。积木式组件310具有非矩形的顶面和底面。底面包括用于接纳一个或多个其他积木式组件,例如附图3a中的积木式组件301,的相应突起的孔眼311、312以及313。孔眼由边沿314、由二级销柱(secondary pin)315以及拐角316和317限定。因此,所有上述元件的属性决定了积木式组件310底面的连接属性。
附图3c阐明了积木式组件320与积木式组件321连接,从而形成组合的积木式组件。积木式组件320在其上表面上包含突起322,突起322容纳到另一积木式组件的相应孔眼中。然而,如附图3c中所阐述的,也可以实现其他类型的连接。突起之间的间隙323充当其他连接件,诸如积木式组件321的侧面324,的接受件。对于物理积木式组件,这种属性由间隙的尺寸以及积木式组件321的尺寸,即它的侧面宽度325,决定。然而,在数字表示中,通过规则的栅格上的连接点的相应属性来表示这些属性,如在下文中更为详细地阐述。
附图3d表示两个积木式组件331和332。积木式组件331是砖形的,在它的上表面上具有4个突起333,在底面(未表示)上具有4个相应的孔眼。砖形物332是具有包含不相互正交的平面的表面的积木式组件实例。特别地,积木式组件332具有斜面334。如附图3d所阐明的那样,在当前位置,积木式组件331和332不连接,因为在所示的位置上没有任何彼此结合的连接元件。
应该理解,上述积木式组件仅仅用作可能的积木式组件的实例。
附图4a-c阐明了物理积木式组件的数字表示的一个实施例。物理积木式组件的数字表示包括存储在计算机存储器中的数据结构,其中数字表示代表该积木式组件的属性。根据该实施例,积木式组件的连接元件可以在种类(nature)、外形、连接属性等方面各不相同。然而,他们在积木式组件上的位置遵循一组规则。
积木式组件具有许多与它相关的平面,例如由积木式组件的有边界框的表面所定义的平面。积木式组件的连接元件位于这些平面内,使得每个连接元件具有与其相关的轴。相同平面内所有连接元件的轴对应于规则的栅格,例如正交的栅格,的相应栅格点,所谓的节点,并且邻近栅格点之间的间距是固定的。优选地,与积木式组件关联的平面成对地彼此平行,例如通过定义一组对应于积木式组件的上表面和底面的水平平面以及许多对应于积木式组件侧面的垂直平面。优选地,在所有水平平面上,相邻栅格点之间的间距是相同。在一个实施例中,垂直平面中相邻栅格点之间的间距与水平平面中相邻栅格点之间的间距不相等。
附图4a-b示意性地阐明了数据结构的实施例如何描述附图3a的积木式组件301的属性。在附图4a-b中,显示了积木式组件301及其上表面和底面各自的相应正交栅格405和406。附图4a表示积木式组件的透视图,而附图4b表示积木式组件的顶视图。在附图4a-b中,没有表示积木式组件301侧面上的栅格。积木式组件的某些实例,例如积木式组件301,在某些面上,例如在侧面上,没有任何连接元件。积木式组件的其他实例可能在所有侧面上具有连接元件。
正交栅格也被称为连通性栅格,栅格点也被称为连接点。用如圆周407a-k所示例的圆周来阐明连接点。因此,连接点407a-h分别对应于突起303a-h。由于侧面304没有任何连接元件,因此不需要为它们定义任何连接栅格。在可选实施例中,可以为侧面定义只包含虚接受件的连接栅格,即既不连接也不抵制其他连接元件的接受件。
相对于内部右手坐标系408描述积木式组件的数字表示。应该理解,坐标系的选择,特别是其原点的位置和坐标轴的方向,可以根据任意适当的惯例来选择。因此,在相应的数据结构中,积木式组件在3D场景中的位置和定向可以由坐标系408相对于外部坐标系,例如另一积木式组件的坐标系或全局“世界”坐标系,的原点坐标以及坐标轴的方向来表示。
正如从附图4a中所能看到的那样,通过置于规则栅格中的连接点来表示积木式组件的连接元件就将某些约束强加在物理积木式组件上的连接元件的物理放置上。栅格405位于突起303从其延伸的积木式组件上表面的平面内。
在附图4a-b的实例中,栅格点被放置在正方形栅格内,其中每个正方形的尺寸为5*5个的任意长度单位(LU)。因此,在这个几何里,连接元件也被放置在相应的正方形栅格上,并且积木式组件的平面内连接元件之间的间距为10LU的倍数。在附图4的实例中,积木式组件的上表面和下表面是矩形的,其尺寸为20LU*40LU,并且相邻连接元件的空间距离为10LU。另一方面,在垂直方向上,连接元件的空间距离为12LU。
相对于积木式组件的内部坐标系408来定义连接点的位置。每个栅格点还具有与其相关联的方向,指示连接元件在哪个方向上可以与相应的连接元件结合。栅格点的方向垂直于平面,并且指向有边界框的外部,即在附图4b中指向图中平面的外部。
在一个实施例中,对于每个连接点,代表连接点的栅格的数据结构包括:连接点相对于坐标系408的坐标,连接元件的方向,以及连接类型。
在一个实施例中,代表积木式组件的数据结构包括积木式组件ID(识别符),描述积木式组件的有边界框的位置、定向以及尺寸的数据结构,以及描述各个栅格以及它们的相应连接点的许多数据结构。代表连接点的栅格的数据结构包括:
-用作局部栅格坐标系原点的栅格点相对于坐标系408的坐标。在栅格405的例子中,栅格点307i被作为原点,坐标为P0=(-5,12,-15),单位为LU。
-连接元件的方向。在栅格405的例子中,这为(0,1,0),即坐标系408的Y轴方向。
-X和Z方向上栅格点的数量。在栅格405的例子中,分别是nx=9和nz=5。
-nx*nz数据结构的阵列,每个包括相应的连接点的连接属性。每个栅格点的数据结构包括连接点的连接类型,例如“孔眼”、“边”、“突起”等等。
在一个实施例中,每个连接点还具有与之相关的体积元素,定义了该连接点周围的邻域。
附图4c阐明了连接点周围的体积元素的实例。在一个实施例中,每个连接点具有与之相关联的球形,其中心位于连接点上。在附图4c中,这是通过上述积木式组件301的连接栅格405的连接点407g和407j来示例的。对于连接点407g和407j,分别示出了相应的球形410g和410j。球形的半径等于相邻连接点之间间距的一半,例如在附图4a-b的实例中为2.5LU。应该了解,在可选实施例中,球形可以更小或更大,即它们可以交叉或者在相邻球形的球面之间可以有间隙,从而允许相对于小误放的定位方法的灵敏度控制。
还应该理解,也可以使用不同类型的体积元素。例如体积元素可以是包围连接元件的圆柱体,如包围连接点407c的圆柱体410c所示例。在这个实例中,圆柱体的半径为2.5LU并且高度为5LU。体积元素的其他实例包括正方体、椭圆体等。
还应该理解,在某些实施例中不同类型的连接元件可以与不同体积元素相关联,例如不同尺寸,例如不同半径和/或不同高度,的体积元素,或者甚至不同几何形状。在这种实施例中,代表连接点的数据结构可以还包括一个或多个用于识别相关联的体积元素的类型和/或尺寸的参数。
应该理解,当在显示器,例如计算机屏幕,上图形表示积木式组件时,边界范围(bounding volume)、坐标系、体积元素以及栅格不需要被显示。优选地,图形表示只包括积木式组件自身的图形描述。
以下将更加详细地描述把新积木式组件放入包含3D结构的场景的过程。将参照附图5和6a-b。
附图5表示把积木式组件定位在3D场景并且将它连接到已经出现在场景中的积木式组件结构上的过程的流程图。
在步骤501中,新积木式组件被放置在场景中,例如通过选择选项面板上的积木式组件并且根据鼠标移动将积木式组件的图形表示拖到2D显示区域中用户所选定的位置,其中2D显示区域表示3D场景的2D投影。在一个实施例中,当鼠标的移动至少停止了一个预定时间,例如GUI事件处理程序所检测到的,时,程序进入步骤503。
附图6a-b阐明了将新积木式组件定位在先前放置的积木式组件的顶部的实例。新积木式组件601被图示为有边界框620,有边界框620具有上表面621和底面622,每一面包括许多如上所述的连接栅格的连接点,其一般地由603标示。类似地,先前放置的积木式组件602具有许多连接点,其一般地用604标示。在附图6a中没有表示积木式组件601和602的侧面的连接栅格和连接点。在这个实例中,3D场景只包括一个先前放置的积木式组件602。
附图6a阐明了在计算机屏幕的2D显示区域600中看到的积木式组件601和602的2D投影,其对应于2D显示坐标系630。
附图6b阐明了显示区域600中的2D投影和积木式组件601和602在3D坐标系640中的3D位置之间的关系。当新积木式组件601被放置在屏幕600上时,只确定了它在2D坐标系630中的坐标,并且,如虚线投影线631所述,产生投影601a的任何3D位置符合这个投影。因此,由用户控制的将积木式组件放置于屏幕上并没有提供关于垂直于显示区域的第三维的信息。在附图6b中,投影是平行投影,即投影线631彼此平行,相当于虚拟摄像头位置632距离投影平面600无限远。
再次参照附图5,在步骤503中,处理确定了,对于新积木式组件的每个连接点,是否存在属于已经存在于场景中的任何积木式组件(或,如果存在,属于底盘)的连接点,其具有在新积木式组件的该连接点投影的预定邻域内的2D投影。在一个实施例中,对于新积木式组件的每一个连接元件,确定显示区域内包围连接元件的圆周。类似地,确定已经存在于场景中的连接元件的相应圆周。如果这些圆周中的任何圆周与新积木式组件的连接元件的圆周重叠,则选择相应的连接元件作为候选的连接元件。
在附图6a中,用新积木式组件601的连接点605来阐明这个步骤。标号606标示了包围连接元件605的圆周。类似地,标号608、610和612分别标示了积木式组件602的连接元件607、609和611的圆周,这些圆周与圆周605交叠。因此,在这个实例中,连接元件607、609和611被确定为候选连接元件。应该理解,在这个实例中,可以选择进一步的连接元件。然而,它们的圆周在附图6b中没有被表示。
应该注意,圆周606、608、610和612分别对应于包围连接元件605、607、609和611的相应球形的投影。应该理解,在可选实施例中,为了确定哪些连接元件具有在新积木式组件的连接元件的邻域之内的投影,可以使用不同类型体积元素的投影。结合上述附图4c已经描述了体积元素的更多实例。当使用球形时,相应投影的确定尤为有效,因为球形的投影始终是圆,而与视点无关。
在一个优选实施例中,圆周的直径对应于每个栅格中相邻连接点之间的间距。
应该进一步理解,在某些实施例中,候选连接元件的搜索可以被限制在已经存在于场景中的积木式组件的连接元件的子集内,从而减少完成搜索所需要的时间以及候选连接元件的结果列表的大小。例如,搜索可以被限制在还没有连接到另一连接元件的连接元件。在一个实施例中,搜索被限制在具有合适连接属性的连接元件,即能够被实际连接到新积木式组件的连接元件上的连接元件,如下文中将更详细地描述的。
步骤530产生已经存在于场景中的积木式组件的候选连接元件的列表520。因此,候选连接元件的3D坐标是已知的。在一个实施例中,列表520中的每个条目包括:已经存在于场景中的积木式组件的候选连接点的3D坐标,识别相应积木式组件的标识符,以及识别新积木式组件的相应连接元件的标识符和/或坐标。
在步骤505中,通过根据预定的一组分级规则对候选连接元件进行分级来对候选连接元件的列表520排序。
在一个实施例中,候选连接元件是根据他们与虚拟摄像头的距离,即它们与对应于显示区域600的投影平面的相对距离,以及根据候选位置和用户选定放置之间的2D距离,即候选位置在显示区域中的投影与新积木式组件的图形的位置的位移,而被分级。例如,候选位置对于其更靠近摄像头位置的连接元件可以被分集为更高,即更可能符合用户所想要的位置。同样,在3D中与用户选定位置的位移对于其是高的候选连接点可以被分集为更低。
在某些实施例中,作为上述条件的附加或替代,根据其他标准执行排序。这种位置分级规则的实例可以包括以下一条或多条:
-与摄像头位置的相对距离;
-与用户选定的2D位置的位移;
-积木式组件所需旋转的角度,以便允许与候选连接元件的连接;
-可见性检测,例如候选连接元件从当前摄像头位置上是否可见。在某些实施例中,从列表中丢弃从当前摄像头位置不可见的候选连接元件。
在某些实施例中,上述标准中的几个或者全部可被组合运用,例如通过定义上述条件的价值函数,可选地具有相应的加权因子。在其他实施例中,首先根据上述规则其中之一,例如所需的2D位移,执行分级。如果两个或多个候选连接元件具有相同的分级,可以用另一规则来区分它们,例如与摄像头的相对距离、所需的旋转等。
因此,完成了对所确定的候选连接元件的分级,并且有序列表520根据上述分级对应于有序列表。在此,有序列表520包括基于上述位置分级规则没有被丢弃的所有候选连接点。
在步骤508中,确定有序列表520是否为空。如果列表为空,即没有任何连接元件具有与新积木式组件的连接元件的足够小的投影距离,则3D放置被拒绝(步骤509),即处理终止;否则,处理前进到步骤510。
如果处理通过拒绝3D放置(步骤509)而终止,则优选地将其指示给用户,例如通过提供可视的指示。例如,可以以指示积木式组件还没有被放置的形式显示响应于鼠标移动而被移动的积木式组件的图形表示。仅当发现3D放置时,图形表示切换,从而向用户指示放置已经完成。例如,只要3D放置没有成功完成,积木式组件可以被显示为透明和/或具有可视的有边界框和/或闪烁和/或任何其他适当的形式。
在步骤510中,选择具有最高分级的候选连接元件,并且新积木式组件被放置在3D坐标系中,使得选中的候选连接点的坐标和新积木式组件的相应连接点的坐标相一致。因此,选择根据最高分级的候选位置。应该理解,该放置只是试验性的,即仍然没有被显示在计算机屏幕上。
在步骤511中,处理验证连接是否符合预定的一组连接规则,例如,在新积木式组件的这些和其他连接点上的连接元件是否允许与新积木式组件要连接到的积木式组件的连接元件的连接。这个其实施例将在下文中更详细描述的检查也将被称为连通性验证。在优选实施例中,处理进一步验证新积木式组件在连接到候选连接元件时从摄像头位置上是否可见,或者其是否被存在的结构完全遮挡(obstruct)。如果连接被拒绝或者积木式组件将是不可见的,则试验性的3D放置被拒绝,并且处理前进到步骤512;否则,如果处理成功地验证了连接,则处理前进到步骤513。
在步骤512中,连接对于其被拒绝的候选连接点被从有序列表520中移除,并且处理返回步骤508,即如果存在,则选择下一个候选连接点。
在步骤513中,即如果连接检查是成功的,则3D放置被接受,即通过在被接受的位置上“咬住”新积木式组件以及通过改变积木式组件的外观来更新结构的图形表示。在一个实施例中,用户可以接受位置,例如通过用鼠标在积木式组件上点击,从而完成放置处理。如果用户希望把积木式组件放置在另一位置,那么用户可以简单地移动鼠标,而不需要在积木式组件上点击,从而把新积木式组件的外观变回最初的外观,并且把积木式组件移动到2D显示区域的另一位置。
处理保持一组数据结构,每个数据结构表示放置在3D场景中的积木式组件,例如如结合附图4a-b所描述。当接受新积木式组件的3D放置时,处理通过增加对应于新积木式组件的数据结构的新实例作为数据结构组的一部分来更新该数据结构组。
附图7a-b阐明了由屏幕上图形表示的略微不同的2D放置所导致的附图6a-b的新积木式组件的两个位置。在附图7a中,积木式组件701被放置在结构702的顶部。另一方面,在附图7b中,积木式组件701被定位在结构702后面在底盘703上。因此,新积木式组件的2D位置的小调整允许用户区分3D场景中的两种相当不同的放置。附图7a-b进一步阐明了新积木式组件701当其被用户操纵时与结构702的积木式组件704相比的不同外观。
附图8表示在试验性的3D放置中新积木式组件的连通性验证子处理511的实施例流程图。由此,处理验证新积木式组件是否能够被连接到现有结构的至少一个其他积木式组件上。该其他积木式组件被称为第二积木式组件。
在初始步骤801中,处理执行冲突检测和可视性检查,即检测新积木式组件是否与已经存在于场景中的任何其他积木式组件相交,以及检查新积木式组件是否将被已存在的结构完全遮挡并因此从当前摄像头位置是不可见的。冲突检测可以通过任何适当的冲突检测方法来执行,优选为基于积木式组件的边界范围的冲突检测方法。这种算法的实例被公开在例如David H.Eberly的“3D Game Engine Design”,Morgan Kaufmann,2001中。同样,可视性检查可以通过本技术领域中已知的任何适当的方法来执行。如果检测到无效的交点,即如果积木式组件的边界范围相交,或者如果积木式组件从当前摄像头位置将是不可见的,则拒绝在这个位置和定向上放置积木式组件;否则,如果积木式组件将是至少部分可见的以及如果检测到有效的交点,即如果至少部分有边界框表面相交但它们的体积不相交,则处理进入步骤802。
在步骤802中,确定新积木式组件和第二积木式组件的属于所检测到的有边界框表面交点的所有连接点。只有那些还没有被连接的连接点需要被考虑;这些连接点将被称为相关连接点。
在步骤803中,选择新积木式组件的第一相关连接点,例如任意选择的连接点。
在步骤804中,对于新积木式组件的选定连接点,处理检查是否存在任何坐标与所选中的连接点相同的第二积木式组件的相关连接点。在一个实施例中,其中积木式组件被放置在离散的体积参考栅格中,并且所有坐标都是任意长度单元的倍数,可能需要坐标的精确匹配。在连续或准连续的参考坐标系中,可能需要栅格点在预定限制中一致。
如果没有发现这种匹配连接点,那么处理进入步骤814。
在步骤814中,检测在被选中的连接点的预定邻域内是否存在任何其他相关连接点。例如,在其中相邻的两个连接元件之间的间距为10LU的实施例中,可以选择预定邻域为包围着被选中的、位于(x,y,z)的连接点的立方体(x±5LU,y±5LU,z±5LU)。如果在被选中的连接点的预定邻域之内存在任何其他相关连接点,那么两个积木式组件的连接被拒绝(步骤811)并且算法终止。因此,当该实施例中的连接点被放置在规则的栅格上时,积木式组件的无效放置可以被有效地检测:如果对于新积木式组件的相关连接点中的一个,发现与第二积木式组件的相关连接点不匹配,则不需要检测新积木式组件的剩余连接点,从而提高了检测处理的速度。
如果在步骤814中没有找到任何冲突的相关连接点,则处理进入步骤809。
如果在步骤804中找到匹配的连接点,那么处理进入步骤805,其中检测在被选中的连接点的预定邻域内是否存在任何其他相关连接点,例如如上所述,在包围着被选中的、位于(x,y,z)的连接点的立方体(x±5LU,y±5LU,z±5LU)之内。如果在预定邻域内找到另一连接点,那么拒绝位置(步骤811);否则,程序进入步骤806。
在可选实施例中,上述约束可能是不希望的。而且,在再一实施例中,上述约束可能被限制到某些连接类型。
在步骤806中,处理检测被选中的连接点以及被检测到的匹配的连接点是否具有相反的方向,即它们的关联轴是否沿同一直线但在相反定向上。因此,只接受定位在适合他们结合的相关定向上的连接元件。
应该注意,在可选实施例中,这种限制可以被放松,例如通过在其中连接元件接受一个定向范围的实施例中接受一定定向范围。
如果连接点的相对方向被接受,那么处理进入步骤807,否则,这个位置被拒绝(步骤811)。
在步骤807中,比较被选中的连接点以及相应的被检测到的匹配连接点的连接类型。在一个实施例中,每个连接点都具有相关联的连接类型,例如“突起”、“孔眼”、“边”、“拐角”、“合叶”、“销”、“细销”等。处理存取存储在存储器中的连接表813。连接表包括所有连接类型对的连通性类型,指示特定连接类型对如何影响两个积木式组件的连接。例如,每对连接类型可以被关联到连通性类型“真”、“假”或“空”。连通性类型“真”指示连接是有效的,并且相应连接元件结合以连接两个积木式组件,例如突起与相应的孔眼结合。连通性类型“假”指示连接不被允许。例如,突起与突起之间的连接是不可能的:它们不仅不结合以提供连接,而且它们甚至妨碍/抵触,使得连接不可能。最后,连通性类型“空”指示没有任何阻止连接的东西,也没有任何实际连接的东西。例如,孔眼和孔眼就是这样的例子。因此,对于给定的一对连接点,处理能够从所存储的连接表813中检索相应的连通性类型。
在随后的步骤808中,检查连通性结果是否为“假”,即在相应的连接类型之间不可能有任何有效的连接。如果连通性结果为“假”,那么新积木式组件的位置被拒绝(步骤811),否则存储连通性结果,并且处理进入步骤809。
在步骤809中,检查新积木式组件的所有相关连接点是否都已经被处理。如果没有,则选择仍然没有被处理的相关连接点(步骤812),并且通过执行上述步骤804、805、806、807以及808来处理当前选中的连接点。
如果新积木式组件的所有相关连接点都已经被处理,并且位置也没有被拒绝,则接受这个位置并且处理进入步骤810。在步骤810中,基于存储的连通性结果确定积木式组件如何连接,以及相应地更新它们各自的数据结构。
起初,检验是否所有连通性结果为“空”。如果是,即如果没有任何东西阻止积木式组件的位置,但是也没有任何连接元件实际结合以连接积木式组件,则允许新积木式组件处于其当前位置。在一个实施例中,附加的算法可以决定,例如基于边界范围,被放置在这个位置上的物理积木式组件是否会掉落、倾斜等,并相应地允许或拒绝这个位置。
否则,即如果一个或多个连通性结果为真,则处理确定积木式组件如何被连接,即它们是否被刚性连接或者连接是否允许相对旋转、转换和/或类似操作。
一旦数据结构被更新,则子处理终止并且返回到附图5的总处理。
附图9a-b阐明了包含旋转的积木式组件的连接。在某些实施例中,只对屏幕上可见的新积木式组件的定向,即用户选定的定向或缺省定向,检查连接点。当用户希望在积木式组件旋转之后连接新积木式组件时,可以通过适当的用户接口控制来控制定向,例如借助于可以在图形用户界面的菜单中选择的旋转工具、借助于键盘命令等。例如,用户可以控制新积木式组件的定向,使逐步遍历(step through)离散定向序列,例如对应于围绕不同轴线的90度旋转。例如,在附图9a和9b中,积木式组件901根据积木式组件901的用户选定定向以不同的方式被连接到结构902中。在附图9a中,积木式组件901被连接到结构902的顶部。在附图9b中,积木式组件901被连接到结构902中位于垂直平面上的突起903上。
在一个可选实施例中,允许积木式组件的自动重定向。例如,当在附图5的步骤510和511中分析候选位置时,可以考虑新积木式组件的不同旋转作为附加的候选位置,并且根据所实现的分级和随后的连通性验证来分析其。例如,当新积木式组件要在某任意角度上被连接到合叶上时,用户不必精确地将新积木式组件对准到合叶的轴上。处理将估计旋转后的位置并在旋转之后连接新积木式组件。在某些实施例中,自动重定向被限制到预定的空间角度,例如45度、30度等,因而避免了大的旋转,大的旋转可能使用户混淆并导致意外的结果。
上述处理的另一个优点在于,用户接收到关于新积木式组件将被放置和连接到何处的清晰的指示。而且,考虑了由用户控制的、屏幕上新积木式组件的2D位置的细小修正,从而提供了流畅自然的工作流程印象。
应该理解,本领域熟练技术人员可以在本发明的范围之内实现上述方法的变型。例如,某些上述步骤的顺序可以被改变,步骤可能被结合等。
例如,当新积木式组件已经被放置到3D场景之后,用户可以启动搜索工具以搜索类似的位置。在一个实施例中,搜索工具可以允许用户逐步遍历附图5的有序列表520的所有位置,从而允许用户选择其中一个可能的位置。
术语“操纵”对象的数字表示是用来代表对于数字表示的任何受用户控制的操作,例如新积木式组件的连接,把现存积木式组件从一个位置移动到另一个位置,或者任何改变积木式组件在3D场景中的位置的其他操作。

Claims (18)

1.一种由计算机实现的、借助于二维光标移动来操纵三维虚拟积木模型的方法,所述虚拟积木模型包括多个虚拟积木式组件,其中每个虚拟积木式组件包括许多用于根据一组连接规则连接所述虚拟积木式组件和另一虚拟积木式组件的连接元件,所述方法包括:
-提供结构在三维坐标系中的数字表示,其中所述结构包括许多所述虚拟积木式组件;
-借助于光标在代表所述结构的投影的二维计算机显示区域中的移动来定位要被连接到所述结构的第一虚拟积木式组件的二维投影,从而产生二维位置坐标;
-根据所述二维位置坐标确定所述第一虚拟积木式组件在所述三维坐标系中的许多三维候选位置;
-基于所述连接规则和一组预定的位置分级规则来选择所述候选位置中的一个;以及
-在所述选定候选位置上将所述第一积木式组件连接到所述结构。
2.根据权利要求1所述的方法,其中所述确定许多三维候选位置的步骤进一步包括确定所述第一虚拟积木式组件在所述三维坐标系中的许多候选定向。
3.根据权利要求1或2所述的方法,进一步包括:
-确定所述结构的许多候选连接元件,其中每个所述候选连接元件所述二维显示区域内在所述第一虚拟积木式组件的连接元件的投影周围的预定邻域内具有投影;
-基于所述连接规则和所述一组预定位置分级规则来选择所述候选连接元件中的一个;以及
-如果根据所述一组连接规则,所述第一虚拟积木式组件和所述结构之间的连接是有效的,则至少通过所选定的候选连接元件连接所述第一虚拟积木式组件与所述结构。
4.根据权利要求3所述的方法,其中所述选择候选连接元件中一个的步骤进一步包括对所述候选连接元件进行分级,其中所述分级对于它们与虚拟摄像头位置的距离来进行。
5.根据权利要求3或4所述的方法,其中所述选择候选连接元件中一个的步骤进一步包括丢弃从当前虚拟摄像头位置不可见的候选连接元件。
6.根据权利要求3到5中任一项所述的方法,其中所述选择候选连接元件中一个的步骤进一步包括对所述候选连接元件进行分级,其中所述分级是对于它们的二维投影与所述第一虚拟积木式组件的相应连接元件的二维投影的距离来进行的。
7.根据权利要求3到6中任一项所述的方法,其中对于每个虚拟积木式组件,所述结构的数字表示包括许多对应于所述虚拟积木式组件至少一个表面的规则的栅格,其中每个规则的栅格包括许多栅格点,每个栅格点代表连接元件。
8.根据权利要求7所述的方法,其中所述第一虚拟积木式组件的连接元件的投影周围的预定邻域的直径对应于所述相应规则栅格的相邻栅格点之间的间距。
9.根据权利要求1到8中任一项所述的方法,其中所述确定许多候选位置的步骤进一步包括旋转所述第一积木式组件以获得旋转后的积木式组件的候选位置。
10.根据权利要求9所述的方法,其中所述第一积木式组件的旋转被限制到用户选定的定向周围的预定空间角度。
11.根据权利要求1到10中任一项所述的方法,进一步包括接收控制所述第一虚拟积木式组件的用户选定定向的用户命令。
12.根据权利要求11所述的方法,其中所述用户选定定向被限制到一组离散定向中的一个。
13.根据权利要求1到12中任一项所述的方法,其中所述二维投影是平行投影。
14.一种包括存储介质的数据处理***,其中在所述存储介质上存储有包括程序代码单元的计算机程序,当所述程序在所述数据处理***上运行时,所述程序代码单元用于执行权利要求1到13中任一项的所有步骤。
15.一种包含程序代码单元的计算机程序,当所述程序在计算机上运行时,所述程序代码单元用于执行权利要求1到13中任一项的所有步骤。
16.一种包含程序代码单元的计算机程序产品,所述程序代码单元存储在计算机可读取介质上,当所述计算机程序产品被运行在计算机上时,所述程序代码单元用于执行权利要求1到13中任一项的方法。
17.一种在其上存储有包含计算机程序单元的计算机程序的计算机可读取存储介质,当所述程序被运行在计算机上时,所述程序代码单元用于执行权利要求1到13中任一项的所有步骤。
18.一种被实现为载波的数据信号,所述数据信号包括程序代码单元,其中当所述程序代码单元被运行在计算机上时,所述程序代码单元用于执行权利要求1到13中任一项的所有步骤。
CNB2004800136720A 2003-05-20 2004-05-13 用于操纵三维对象的数字表示的方法和*** Expired - Fee Related CN100340960C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DKPA200300759 2003-05-20
DKPA200300759 2003-05-20

Publications (2)

Publication Number Publication Date
CN1791850A true CN1791850A (zh) 2006-06-21
CN100340960C CN100340960C (zh) 2007-10-03

Family

ID=33462050

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2004800136720A Expired - Fee Related CN100340960C (zh) 2003-05-20 2004-05-13 用于操纵三维对象的数字表示的方法和***

Country Status (10)

Country Link
US (1) US7755620B2 (zh)
EP (1) EP1625488A2 (zh)
JP (1) JP4418468B2 (zh)
KR (1) KR101071011B1 (zh)
CN (1) CN100340960C (zh)
CA (1) CA2524031C (zh)
HK (1) HK1090720A1 (zh)
NO (1) NO337287B1 (zh)
PL (1) PL378138A1 (zh)
WO (1) WO2004104811A2 (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102460510A (zh) * 2009-05-27 2012-05-16 奥布隆工业有限公司 用于与空间操作***一起使用的空间多模式控制设备
CN102614658A (zh) * 2011-01-29 2012-08-01 无锡爱睿芯电子有限公司 交互式电子积木***
CN103702726A (zh) * 2011-05-23 2014-04-02 乐高公司 用于搭建元件模型的构建指令的产生
CN104616554A (zh) * 2015-02-25 2015-05-13 朱琳莉 虚拟积木***
CN107029424A (zh) * 2017-05-10 2017-08-11 北京派希教育科技有限公司 一种用于增强现实的积木搭建***及方法
CN108339284A (zh) * 2017-01-25 2018-07-31 智高实业股份有限公司 连接积木
CN109407945A (zh) * 2018-11-08 2019-03-01 山东数字人科技股份有限公司 一种基于vr的三维拼图实现方法和三维拼图***
CN110189580A (zh) * 2018-02-23 2019-08-30 洪荣昭 空间能力评测方法及***

Families Citing this family (81)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7480597B2 (en) 2003-05-20 2009-01-20 Lego A/S Method, system and storage medium for generating virtual brick models
US7596473B2 (en) * 2003-05-20 2009-09-29 Interlego Ag Method of constructing a virtual construction model
US7467154B2 (en) 2005-06-29 2008-12-16 Microsoft Corporation Producing a locally optimal path through a lattice by overlapping search
US20080036758A1 (en) * 2006-03-31 2008-02-14 Intelisum Inc. Systems and methods for determining a global or local position of a point of interest within a scene using a three-dimensional model of the scene
US8374829B2 (en) 2007-03-16 2013-02-12 Lego A/S Automatic generation of building instructions for building element models
US20100138793A1 (en) 2008-12-02 2010-06-03 Microsoft Corporation Discrete objects for building virtual environments
US9092110B2 (en) * 2008-12-16 2015-07-28 Cadence Design Systems, Inc. Method and system for implementing a user interface with ghosting
US8255807B2 (en) * 2008-12-23 2012-08-28 Ganz Item customization and website customization
WO2011017101A2 (en) 2009-07-27 2011-02-10 Fina Biosolutions, Llc Method for producing protein-carbohydrate vaccines reduced in free carbohydrate
US20110029904A1 (en) * 2009-07-30 2011-02-03 Adam Miles Smith Behavior and Appearance of Touch-Optimized User Interface Elements for Controlling Computer Function
US9595108B2 (en) 2009-08-04 2017-03-14 Eyecue Vision Technologies Ltd. System and method for object extraction
US9498721B2 (en) 2009-08-04 2016-11-22 Eyecue Vision Technologies Ltd. System and method for object extraction
CA2774114C (en) * 2009-10-02 2018-07-31 Lego A/S Connectivity depended geometry optimization for real-time rendering
EP2333682B1 (en) * 2009-11-06 2020-05-20 Dassault Systèmes Method and system for designing an assembly of objects in a system of computer-aided design
EP2333683A1 (en) * 2009-11-06 2011-06-15 Dassault Systèmes Method and system for designing an assembly of objects in a system of computer-aided design
BR122022002136B1 (pt) 2009-12-17 2022-08-23 Fina Biosolutions, Llc Processo de conjugação de carboidratos na preparação de vacinas conjugadas e suas respectivas vacinas
US20110165939A1 (en) * 2010-01-05 2011-07-07 Ganz Method and system for providing a 3d activity in a virtual presentation
CN105120262A (zh) * 2010-02-24 2015-12-02 夏普株式会社 图像解码装置
JP5303754B2 (ja) * 2010-02-24 2013-10-02 日本電信電話株式会社 多視点映像符号化方法、多視点映像復号方法、多視点映像符号化装置、多視点映像復号装置、及びプログラム
JP5223062B2 (ja) * 2010-03-11 2013-06-26 株式会社ジオ技術研究所 3次元地図描画システム
JP2011205513A (ja) 2010-03-26 2011-10-13 Aisin Seiki Co Ltd 車両周辺監視装置
US8836719B2 (en) 2010-04-23 2014-09-16 Ganz Crafting system in a virtual environment
US8383783B2 (en) 2010-04-23 2013-02-26 Serum Institute Of India, Ltd. Simple method for simultaneous removal of multiple impurities from culture supernatants to ultralow levels
KR101379188B1 (ko) * 2010-05-17 2014-04-18 에스케이 텔레콤주식회사 인트라 블록 및 인터 블록이 혼합된 코딩블록을 이용하는 영상 부호화/복호화 장치 및 그 방법
CN102907094A (zh) * 2010-05-20 2013-01-30 星河通信株式会社 适用利用选择性参考影像的运动补偿方法的视频压缩编码装置及解码装置和用于运动补偿的选择性参考影像决定方法
WO2011145763A1 (ko) * 2010-05-20 2011-11-24 갤럭시아커뮤니케이션즈 주식회사 선택적 움직임 검색영역을 이용한 움직임 보상기법이 적용되는 동영상 압축부호화장치및 복호화 장치와 움직임 보상을 위한 선택적 움직임 검색영역 결정방법
CN102004623B (zh) * 2010-11-29 2013-02-27 深圳市九洲电器有限公司 一种三维图像显示装置及方法
US8660375B2 (en) 2011-02-22 2014-02-25 Panasonic Corporation Image coding method, image decoding method, image coding apparatus, image decoding apparatus, and image coding and decoding apparatus
AU2012221587B9 (en) * 2011-02-22 2017-10-12 Tagivan Ii Llc Filtering method, moving picture coding apparatus, moving picture decoding apparatus, and moving picture coding and decoding apparatus
WO2012135843A1 (en) * 2011-03-31 2012-10-04 Tetris Holding, Llc Systems and methods for manipulation of objects
WO2012160055A1 (en) 2011-05-23 2012-11-29 Lego A/S A toy construction system for augmented reality
BR112014000062B1 (pt) 2011-07-05 2021-04-27 Lego A/S Conjunto de construção de brinquedo, e método de fabricar um conjunto de construção de brinquedo
EP2736253B1 (en) 2011-07-19 2020-03-11 Tagivan Ii Llc Filtering method, moving image decoding method, moving image encoding method, moving image decoding apparatus, moving image encoding apparatus, and moving image encoding/decoding apparatus
CN103930826B (zh) * 2011-09-13 2016-12-28 富士胶片株式会社 立体摄像装置
US20130107029A1 (en) * 2011-10-26 2013-05-02 Mysnapcam, Llc Systems, methods, and apparatus for monitoring infants
US9237358B2 (en) 2011-11-08 2016-01-12 Qualcomm Incorporated Context reduction for context adaptive binary arithmetic coding
US9392235B2 (en) 2011-11-18 2016-07-12 Google Technology Holdings LLC Explicit way for signaling a collocated reference picture for video coding
US9350992B2 (en) 2011-11-18 2016-05-24 Google Technology Holdings LLC Explicit way for signaling a collocated picture for high efficiency video coding
BR112014012038A2 (pt) 2011-11-18 2017-05-30 Motorola Mobility Llc armazenamento eficiente de informação de movimento para codificação de vídeo de alta eficiência
BR112014012187A2 (pt) 2011-11-21 2017-05-30 Motorola Mobility Llc determinação implícita e determinação implícita e explícita combinadas de imagem colocalizada para predição temporal
US9639959B2 (en) * 2012-01-26 2017-05-02 Qualcomm Incorporated Mobile device configured to compute 3D models based on motion sensor data
US20130235038A1 (en) * 2012-03-06 2013-09-12 Benjamin Michael Tkacheff Method for Preselecting Three-Dimensional Space for Triggering Automated Construction of a Three-Dimensional Structure
US9549177B2 (en) 2012-04-11 2017-01-17 Google Technology Holdings LLC Evaluation of signaling of collocated reference picture for temporal prediction
KR102099485B1 (ko) 2012-04-11 2020-04-09 구글 테크놀로지 홀딩스 엘엘씨 시간적 예측을 위한 시간적 모션 벡터 예측기(mvp) 플래그의 시그널링
US9319681B2 (en) 2012-07-18 2016-04-19 Google Technology Holdings LLC Signaling of temporal motion vector predictor (MVP) enable flag
US9854138B2 (en) * 2012-09-20 2017-12-26 Gyrus Acmi, Inc. Fixed pattern noise reduction
JP5903023B2 (ja) * 2012-10-04 2016-04-13 株式会社ジオ技術研究所 立体視地図表示システム
JP2014102685A (ja) * 2012-11-20 2014-06-05 Sony Corp 情報処理装置、情報処理方法及びプログラム
US9500526B2 (en) * 2013-02-01 2016-11-22 Dicon Fiberoptics Inc. High-throughput and high resolution method for measuring the color uniformity of a light spot
JP6027554B2 (ja) 2014-01-21 2016-11-16 株式会社ソニー・インタラクティブエンタテインメント 情報処理装置、情報処理システム、ブロックシステム、および情報処理方法
US10130883B2 (en) 2014-01-21 2018-11-20 Sony Interactive Entertainment Inc. Information processing device and information processing method
JP6193135B2 (ja) * 2014-01-21 2017-09-06 株式会社ソニー・インタラクティブエンタテインメント 情報処理装置、情報処理システム、および情報処理方法
US10583354B2 (en) * 2014-06-06 2020-03-10 Lego A/S Interactive game apparatus and toy construction system
MX2017004225A (es) 2014-10-02 2018-03-28 Lego As Sistema de juego.
KR101653878B1 (ko) * 2014-10-29 2016-09-05 중앙대학교 산학협력단 3차원 형상의 모델링을 위한 블록 및 사용자 단말기와 이를 이용한 3차원 형상의 모델링 방법
GB2532075A (en) 2014-11-10 2016-05-11 Lego As System and method for toy recognition and detection based on convolutional neural networks
US10223589B2 (en) * 2015-03-03 2019-03-05 Cognex Corporation Vision system for training an assembly system through virtual assembly of objects
US20170232354A1 (en) * 2015-03-19 2017-08-17 Edwin N. Arboleda Play Mat System
WO2016153080A1 (ko) * 2015-03-20 2016-09-29 주식회사 와이즈게코 블록을 이용한 3차원 프린터용 모델링 도구
US10552550B2 (en) 2015-09-26 2020-02-04 Intel Corporation Technologies for physical programming
KR101758781B1 (ko) 2016-01-25 2017-07-17 (주)버블블록 조립식 블록 기초판 및 조립식 블록 기초판 조립체
US10275222B2 (en) 2016-03-15 2019-04-30 Intel Corporation Technologies for physical programming
US10102768B2 (en) * 2016-03-19 2018-10-16 Fujitsu Limited Behavior variability and complexity modeling using a construction toy
US10074205B2 (en) 2016-08-30 2018-09-11 Intel Corporation Machine creation of program with frame analysis method and apparatus
US10773179B2 (en) * 2016-09-08 2020-09-15 Blocks Rock Llc Method of and system for facilitating structured block play
USD844394S1 (en) 2018-03-29 2019-04-02 Kraft Foods Group Brands Llc Mold
US10894342B2 (en) 2018-03-29 2021-01-19 Kraft Foods Group Brands Llc System and method for molding comestible building blocks
CN109615691B (zh) * 2018-11-27 2022-10-28 中国科学技术大学 积木模型生成***
KR102019629B1 (ko) * 2019-02-15 2019-09-06 박성이 양방향 체결돌기를 갖는 레고식 블록 조립체
EP3956800A4 (en) * 2019-04-15 2022-12-21 Fastbrick IP Pty Ltd METHOD AND SYSTEM FOR DESIGNING A SEQUENCE OF BLOCKS FOR USE IN SCHEDULING BLOCKS FOR INSTALLATION DURING CONSTRUCTION
US20220198085A1 (en) * 2019-04-15 2022-06-23 Fastbrick Ip Pty Ltd Method and system for designing block layouts for use in block placement during construction
CN110211243B (zh) * 2019-06-06 2023-12-01 北京悉见科技有限公司 Ar设备及其实体标注方法
CN110992472A (zh) * 2019-12-06 2020-04-10 广东邦宝益智玩具股份有限公司 一种积木3d模型智能搭建***的构建方法
US11393153B2 (en) * 2020-05-29 2022-07-19 The Texas A&M University System Systems and methods performing object occlusion in augmented reality-based assembly instructions
CN111832104B (zh) * 2020-06-24 2023-07-28 深圳市万翼数字技术有限公司 三维设备模型的建立方法及相关设备
JP7397237B1 (ja) 2022-03-03 2023-12-12 任天堂株式会社 情報処理システム、情報処理プログラム、情報処理方法、および情報処理装置
WO2023157321A1 (ja) * 2022-03-03 2023-08-24 任天堂株式会社 情報処理システム、情報処理プログラム、情報処理方法、および情報処理装置
CN117337206A (zh) 2022-03-03 2024-01-02 任天堂株式会社 信息处理***、信息处理程序、信息处理方法以及信息处理装置
CN114896812A (zh) * 2022-06-08 2022-08-12 深圳千帜科技有限公司 一种积木打印的自动排版方法、设备、存储介质及***
US20240050854A1 (en) * 2022-08-09 2024-02-15 Reuven Bakalash Integrated Reality Gaming
US20240165520A1 (en) * 2022-08-09 2024-05-23 Reuven Bakalash Build and Design-an Integrated-Reality Educational Gaming Application

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5694142A (en) 1993-06-21 1997-12-02 General Electric Company Interactive digital arrow (d'arrow) three-dimensional (3D) pointing
US5463722A (en) * 1993-07-23 1995-10-31 Apple Computer, Inc. Automatic alignment of objects in two-dimensional and three-dimensional display space using an alignment field gradient
US5757361A (en) * 1996-03-20 1998-05-26 International Business Machines Corporation Method and apparatus in computer systems to selectively map tablet input devices using a virtual boundary
US6426745B1 (en) 1997-04-28 2002-07-30 Computer Associates Think, Inc. Manipulating graphic objects in 3D scenes
US6629065B1 (en) * 1998-09-30 2003-09-30 Wisconsin Alumni Research Foundation Methods and apparata for rapid computer-aided design of objects in virtual reality and other environments
US6389375B1 (en) * 1999-01-22 2002-05-14 Interlego Ag Virtual reality modelling
CN1168048C (zh) 1999-01-22 2004-09-22 英特莱格公司 生成/解释几何对象的计算机可读模型的方法和计算机***
JP2000306121A (ja) * 1999-04-23 2000-11-02 Mitsubishi Electric Inf Technol Center America Inc ネットワークによって接続された複数のオブジェクト
US6438922B1 (en) * 1999-09-24 2002-08-27 Delefevre Patrick Method of designing a building for maximum compatability with modular forms
US20020196250A1 (en) * 2001-06-20 2002-12-26 Gateway, Inc. Parts assembly for virtual representation and content creation
WO2004034333A1 (en) 2002-10-11 2004-04-22 Lego A/S Method of generating a computer readable model

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102460510A (zh) * 2009-05-27 2012-05-16 奥布隆工业有限公司 用于与空间操作***一起使用的空间多模式控制设备
CN102460510B (zh) * 2009-05-27 2016-04-20 奥布隆工业有限公司 用于与空间操作***一起使用的空间多模式控制设备
CN102614658A (zh) * 2011-01-29 2012-08-01 无锡爱睿芯电子有限公司 交互式电子积木***
WO2012100742A1 (zh) * 2011-01-29 2012-08-02 无锡爱睿芯电子有限公司 交互式电子积木***
CN103702726A (zh) * 2011-05-23 2014-04-02 乐高公司 用于搭建元件模型的构建指令的产生
CN103702726B (zh) * 2011-05-23 2016-01-13 乐高公司 玩具搭建***、产生构建指令的方法和数据处理***
CN104616554B (zh) * 2015-02-25 2016-03-16 朱琳莉 虚拟积木***
CN104616554A (zh) * 2015-02-25 2015-05-13 朱琳莉 虚拟积木***
WO2016134651A1 (zh) * 2015-02-25 2016-09-01 朱琳莉 虚拟积木***
CN108339284A (zh) * 2017-01-25 2018-07-31 智高实业股份有限公司 连接积木
CN108339284B (zh) * 2017-01-25 2020-03-10 智高实业股份有限公司 连接积木
CN107029424A (zh) * 2017-05-10 2017-08-11 北京派希教育科技有限公司 一种用于增强现实的积木搭建***及方法
CN110189580A (zh) * 2018-02-23 2019-08-30 洪荣昭 空间能力评测方法及***
CN109407945A (zh) * 2018-11-08 2019-03-01 山东数字人科技股份有限公司 一种基于vr的三维拼图实现方法和三维拼图***
CN109407945B (zh) * 2018-11-08 2021-08-27 山东数字人科技股份有限公司 一种基于vr的三维拼图实现方法和三维拼图***

Also Published As

Publication number Publication date
WO2004104811A3 (en) 2005-05-12
KR20060013407A (ko) 2006-02-09
HK1090720A1 (en) 2006-12-29
US20070063997A1 (en) 2007-03-22
NO337287B1 (no) 2016-02-29
PL378138A1 (pl) 2006-03-06
CA2524031A1 (en) 2004-12-02
CA2524031C (en) 2015-07-07
JP2007500906A (ja) 2007-01-18
EP1625488A2 (en) 2006-02-15
US7755620B2 (en) 2010-07-13
NO20055872L (no) 2006-02-09
WO2004104811A2 (en) 2004-12-02
JP4418468B2 (ja) 2010-02-17
KR101071011B1 (ko) 2011-10-06
CN100340960C (zh) 2007-10-03

Similar Documents

Publication Publication Date Title
CN100340960C (zh) 用于操纵三维对象的数字表示的方法和***
Nebeling et al. The trouble with augmented reality/virtual reality authoring tools
CN1993712A (zh) 用来建造块模型的建造指令的自动生成
JP7028966B2 (ja) 自律型パーソナルコンパニオンのモジュール階層視覚システム
EP2714223B1 (en) Generation of building instructions for construction element models
US7979251B2 (en) Automatic generation of building instructions for building element models
US8374829B2 (en) Automatic generation of building instructions for building element models
CN109069929B (zh) 用于玩具识别的***和方法
US7536655B2 (en) Three-dimensional-model processing apparatus, three-dimensional-model processing method, and computer program
JP2021514775A (ja) 現実世界の仮想現実マップを用いた仮想現実(vr)ゲーム環境の構築
CN1190235A (zh) 三维视窗显示设备及其方法
US20210287451A1 (en) System and method for handling assets for fabrication
CN102262438A (zh) 用于操纵用户界面的姿势和姿势识别
CN1508759A (zh) 用于处理信息的设备、方法和程序
CN104281397B (zh) 多深度区间的重聚焦方法、装置及电子设备
Linowes Unity 2020 virtual reality projects: Learn VR development by building immersive applications and games with Unity 2019.4 and later versions
US11595568B2 (en) System for generating a three-dimensional scene of a physical environment
Mohan et al. Refined interiors using augmented reality
Bhattacharya Automatic generation of augmented reality guided assembly instructions using expert demonstration
US12047674B2 (en) System for generating a three-dimensional scene of a physical environment
Azevedo Framework for creating augmented reality (AR) experiences
Danyluk Designing Camera Controls for Map Environments
CN102375541B (zh) 将用户运动转换成多个对象响应
Nygard Creating Games with cocos2d for iPhone 2
Chim et al. Pick and Place Game App for 3D Printed Robotic Arm

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1090720

Country of ref document: HK

C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: LEGO COMPANY

Free format text: FORMER OWNER: INTERLEGO AG

Effective date: 20080104

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20080104

Address after: Billund

Patentee after: LEGO A/S

Address before: Swiss Swiss

Patentee before: INTERLEGO AG

REG Reference to a national code

Ref country code: HK

Ref legal event code: GR

Ref document number: 1090720

Country of ref document: HK

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20071003

CF01 Termination of patent right due to non-payment of annual fee