CN111566651A - 用于架构的虚拟/增强现实建模应用 - Google Patents

用于架构的虚拟/增强现实建模应用 Download PDF

Info

Publication number
CN111566651A
CN111566651A CN201880085545.3A CN201880085545A CN111566651A CN 111566651 A CN111566651 A CN 111566651A CN 201880085545 A CN201880085545 A CN 201880085545A CN 111566651 A CN111566651 A CN 111566651A
Authority
CN
China
Prior art keywords
virtual object
controller
user
virtual
objects
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.)
Pending
Application number
CN201880085545.3A
Other languages
English (en)
Inventor
H.古纳森
H.D.索瓦尔德森
C.帕尔默
V.赛瓦森
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.)
Aquio Private LLC
Original Assignee
Aquio Private LLC
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 Aquio Private LLC filed Critical Aquio Private LLC
Publication of CN111566651A publication Critical patent/CN111566651A/zh
Pending 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/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/0346Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of the device orientation or free movement in a 3D space, e.g. 3D mice, 6-DOF [six degrees of freedom] pointers using gyroscopes, accelerometers or tilt-sensors
    • 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/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B33ADDITIVE MANUFACTURING TECHNOLOGY
    • B33YADDITIVE MANUFACTURING, i.e. MANUFACTURING OF THREE-DIMENSIONAL [3-D] OBJECTS BY ADDITIVE DEPOSITION, ADDITIVE AGGLOMERATION OR ADDITIVE LAYERING, e.g. BY 3-D PRINTING, STEREOLITHOGRAPHY OR SELECTIVE LASER SINTERING
    • B33Y50/00Data acquisition or data processing for additive manufacturing
    • 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/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • G06F3/014Hand-worn input/output arrangements, e.g. data gloves
    • 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/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • 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/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04815Interaction with a metaphor-based environment or interaction object displayed as three-dimensional, e.g. changing the user viewpoint with respect to the environment or object
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/10Geometric CAD
    • G06F30/13Architectural design, e.g. computer-aided architectural design [CAAD] related to design of buildings, bridges, landscapes, production plants or roads
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/08Volume rendering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/10Constructive solid geometry [CSG] using solid primitives, e.g. cylinders, cubes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/20Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
    • 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/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/0354Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of 2D relative movements between the device, or an operating part thereof, and a plane or surface, e.g. 2D mice, trackballs, pens or pucks
    • G06F3/03547Touch pads, in which fingers can move on a surface
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/24Indexing scheme for image data processing or generation, in general involving graphical user interfaces [GUIs]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/04Architectural design, interior design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/21Collision detection, intersection
    • 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/2016Rotation, translation, scaling
    • 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/2021Shape modification

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Geometry (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Computer Graphics (AREA)
  • Architecture (AREA)
  • Software Systems (AREA)
  • Mathematical Analysis (AREA)
  • Structural Engineering (AREA)
  • Computational Mathematics (AREA)
  • Civil Engineering (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Chemical & Material Sciences (AREA)
  • Manufacturing & Machinery (AREA)
  • Materials Engineering (AREA)
  • Processing Or Creating Images (AREA)

Abstract

根据一方面,提供了一种架构建模系统。该系统包括配置为生成一个或多个输入信号的输入控制器,包括显示屏幕的显示器和配置为耦合到输入控制器和显示器的系统控制器。系统控制器配置为生成三维模拟环境,在显示屏幕上显示模拟环境的视场,从输入控制器接收指示输入控制器的三维运动的一个或多个输入信号,基于一个或多个输入信号生成表示为多面体体积对象的虚拟对象,和在显示屏幕上的模拟环境的视场中显示虚拟对象。

Description

用于架构的虚拟/增强现实建模应用
相关申请的交叉引用
本申请要求于2017年11月13日提交的题为“VIRTUAL/AUGMENTED REALITYMODELING APPLICATION FOR ARCHITECTURE”的美国临时申请序列号62/585,025的优先权,将其通过引用完全包括于此。
技术领域
根据本发明的至少一个示例大体上涉及建模系统和方法。
背景技术
使用建模软件来生成几何组件的模型是已知的。此外,对于建筑师或者其他建筑设计专业人员使用建模软件来建模建筑结构是已知的。现有的建模软件一般在实现二维(2D)监视器显示的计算机上执行。
虚拟现实(VR)和增强现实(AR)越来越成为许多产业有技术兴趣的领域。VR通常是指用户暴露给纯计算机生成的刺激(包括视觉刺激)。相对地,AR通常是指用户暴露给实际的和计算机生成的刺激的组合。VR和AR系统在娱乐产业特别流行。
发明内容
根据一方面,提供了一种架构建模系统。该系统包括配置为生成一个或多个输入信号的输入控制器,包括显示屏幕的显示器和配置为耦合到输入控制器和显示器的系统控制器。系统控制器配置为生成三维模拟环境,在显示屏幕上显示模拟环境的视场,从输入控制器接收指示输入控制器的三维运动的一个或多个输入信号,基于一个或多个输入信号生成表示为多面体体积对象的虚拟对象,和在显示屏幕上的模拟环境的视场中显示虚拟对象。
在一个实施例中,输入控制器包括一个或多个传感器和一个或多个致动器,且其中,输入控制器配置为以一个或多个致动器中的一个致动器检测该致动器的启动,以一个或多个传感器检测输入控制器的单个连续运动,响应于检测到致动器的启动和输入控制器的单个连续运动,生成对象生成信号,和将对象生成信号传递到系统控制器,其中,一个或多个输入信号包括对象生成信号。
在一些实施例中,输入控制器进一步配置为以一个或多个传感器检测输入控制器的倾斜朝向,响应于检测到输入控制器的倾斜朝向而生成控制器朝向信号,和将控制器朝向信号提供给系统控制器,其中,一个或多个输入信号包括控制器朝向信号。在实施例中,系统控制器配置为响应于接收包括控制器朝向信号的一个或多个输入信号,生成虚拟对象的截面图。
在至少一个实施例中,提供多个虚拟对象,其中,多个虚拟对象中的每个虚拟对象表示为多面体体积对象。在实施例中,虚拟对象包括第一特征和第二特征,且其中,系统控制器配置为基于虚拟对象的第二特征和多个虚拟对象中的至少一个第二虚拟对象的第三特征中的至少一个,来限制第一特征。在一些实施例中,多个虚拟对象包括第一虚拟对象和第二虚拟对象,且其中,系统控制器配置为响应于检测到第一虚拟对象和第二虚拟对象之间的冲突,来组合第一虚拟对象和第二虚拟对象。
在实施例中,检测第一虚拟对象和第二虚拟对象之间的冲突包括检测第一虚拟对象和第二虚拟对象之间的重叠。在一些实施例中,系统控制器进一步配置为根据物理规律在三维模拟环境中建模物理交互。在至少一个实施例中,系统配置为耦合到三维打印机,且其中,系统配置为将编码虚拟对象的文件提供给三维打印机。
在一些实施例中,系统控制器进一步配置为生成第二虚拟对象,和响应于接收表示虚拟对象与第二虚拟对象的打击操作的一个或多个输入信号来组合虚拟对象与第二虚拟对象。在至少一个实施例中,系统控制器进一步配置为耦合到多个输入控制器。
根据一个实施例,提供一种架构建筑对象的方法。该方法包括:生成三维模拟环境,将指示模拟环境的视场的第一显示信号提供给显示器,接收包括指示三维手势的信号的一个或多个输入信号,基于一个或多个输入信号生成表示为多面体体积对象的虚拟对象,和将指示包括虚拟对象的模拟环境的第二显示信号提供给显示器。
在一个实施例中,该方法包括接收包括指示输入控制器的倾斜朝向的信号的一个或多个输入信号,和提供指示包括虚拟对象的截面的模拟环境的第三显示信号。在一些实施例中,该方法包括生成表示为多面体体积对象的多个虚拟对象。在实施例中,虚拟对象是第一虚拟对象,且其中,该方法进一步包括接收包括指示第一虚拟对象的运动和第一虚拟对象的形状改变之一的信号的一个或多个输入信号,检测第一虚拟对象和第二虚拟对象之间的冲突,和响应于冲突,相对于第二虚拟对象约束第一虚拟对象。
在一些实施例中,该方法包括根据物理规律在模拟环境中建模物理交互。在实施例中,该方法包括将编码虚拟对象的文件传递到三维打印机。在至少一个实施例中,该方法包括从多个输入控制器接收一个或多个输入信号。
根据一方面,一种存储用于优化由多个智能代理实现的控制方案的计算机可执行指令的序列的非瞬时计算机可读介质,计算机可执行指令的序列包括指令至少一个处理器执行以下操作的指令:生成三维模拟环境,将指示模拟环境的视场的第一显示信号提供给显示屏幕,基于指示输入控制器的三维运动的一个或多个输入信号生成表示为多面体体积对象的虚拟对象,和将指示在模拟环境的视场中的虚拟对象的第二显示信号提供给显示屏幕。
附图说明
以下参考附图讨论至少一个实施例的各个方面,附图不意在按比例绘制。包括附图以提供各个方面和实施例的图示和进一步理解,且附图被并入和构成本说明书的一部分,但是不意在作为任何特定实施例的限制的定义。附图与说明书的其余部分一起用于解释描述和要求的各方面和实施例的原理和操作。在附图中,在各个图中图示的每个相同或者几乎相同的部件由类似的数字表示。为了清楚,未在每个图中标记每个部件。在附图中:
图1图示根据实施例的建模系统的框图;
图2图示显示器的框图;
图3A图示显示头戴设备的透视图;
图3B图示显示头戴设备的后视图;
图4图示手持控制器的框图;
图5A图示控制器的透视图;
图5B图示控制器的侧视图;
图6图示根据实施例的建模系统特征的框图;
图7A图示根据实施例的模拟环境的图;
图7B图示根据实施例的模拟环境的图;
图7C图示根据实施例的模拟环境的图;
图7D图示根据实施例的模拟环境的图;
图7E图示根据实施例的模拟环境的图;
图7F图示根据实施例的模拟环境的图;
图8图示根据实施例的生成衍生对象的处理;
图9图示根据实施例的改变对象的处理;
图10A图示根据实施例的模拟环境的图;
图10B图示根据实施例的模拟环境的图;
图11图示根据实施例的将对象打击(bash)在一起的处理;
图12A图示根据实施例的模拟环境的图;
图12B图示根据实施例的模拟环境的图;
图12C图示根据实施例的模拟环境的图;
图13A图示根据实施例的模拟环境的图;
图13B图示根据实施例的模拟环境的图;
图13C图示根据实施例的模拟环境的图;
图14图示系统控制器的框图;
图15A图示根据实施例的壳对象的第一配置的第一透视图;
图15B图示根据实施例的壳对象的第一配置的第二透视图;
图15C图示在已经连接壳对象以形成单个壳对象之后的壳对象的第一配置的透视图;
图16A图示根据实施例的壳对象的第二配置的第一透视图;
图16B图示根据实施例的壳对象的第二配置的第二透视图;和
图16C图示根据实施例在已经连接壳对象以形成单个壳对象之后的壳对象的第二配置的透视图。
具体实施方式
本公开的实施例总的来说针对用于虚拟现实(VR)/增强现实(AR)建模的系统。更具体地,实施例针对用于在架构建模领域使用而优化的VR/AR建模。如上所述,虽然VR/AR技术和架构建模软件是单独已知的,但是提供用于在架构建模环境中使用而优化的VR/AR系统(例如包括软件应用)可能是有益的。
在这里讨论的方法和系统的示例不限于应用于在下面描述中提出或者在附图中图示的结构的细节和部件的布置。方法和系统能够以其他实施例实现且以各种方式实践或者执行。在这里仅为了说明性的目的提供特定实现的示例且不意在限制。具体地,与任何一个或多个示例结合讨论的动作、部件、元件和特征不意在被排除在任何其他示例中的类似角色之外。
此外,将要理解在这里使用的措辞和术语用于描述的目的且不应该被认为是限制。对在这里以单数提到的系统和方法的示例、实施例、部件、元件或者动作的任何引用也可以包含包括复数的实施例,且在这里对任何实施例、部件、元件或者动作的复数形式的任何引用也可以包含仅包括单数的实施例。以单数或者复数形式的引用不意在限制当前公开的系统或者方法、它们的部件、动作或者元件。在这里使用的“包括”、“包含”、“具有”、“含有”、“涉及”及其变型意在包括此后列出的项目及其等效物以及附加项目。对“或”的引用可以看作为包含性的,以使得使用“或”描述的任何项可以指示单个、多于一个和所有描述的项中的任意一个。另外,在本文档和在这里通过引用并入的文档之间术语的不一致使用的情况下,并入的特征中的术语使用是对本文档中的那些术语的补充;对于不相容的区别,以在本文档中的术语使用为准。
现有的架构建模软件一般设计用于以二维(2D)屏幕使用。例如,现有的建模软件应用包括来自加利福尼亚州圣拉斐尔市的Autodesk公司的AutoCAD和Revit、来自匈牙利布达佩斯的Graphisoft SE的ARCHICAD以及来自加利福尼亚州桑尼代尔的Trimble公司的SketchUp。现有的建模软件固有地受到限制,因为设计者可能难以感知在2D屏幕上建模和显示的三维(3D)结构的观感。
某些建模应用允许设计输出到VR/AR观看系统,以使得用户可以在浸入式VR/AR环境中观看从软件应用生成的模型。但是,与正在观看的模型的用户交互是极少的或者不存在的。例如,如果设计者希望编辑模型,那么她必须退出VR/AR系统,使用软件应用在2D屏幕上改变模型,生成包括更新的模型的新文件,并重新进入VR/AR系统观看对模型的改变,这是费劲的和无效率的处理。替代地,不同的人可能在2D屏幕上的建模软件中做出改变,而所述改变是在VR/AR中观看模型的人可看到的,这也是无效率的,且不允许做出编辑的用户在VR/AR内体验它们。
考虑前述缺陷,提供通常称为“Arkio”的VR/AR系统,以分发完整的VR/AR建模和设计系统。Arkio生成用户比如通过在模拟环境中生成对象而与其交互的模拟环境。Arkio提供设计用于优化3D VR/AR建模中的用户体验的几个特征,虽然某些实施例对于架构建模是特别有益的,但是由Arkio提供的益处扩展到涉及3D建模的任何技术领域。
就架构建模环境而言,Arkio提供至少四个优点。第一,Arkio提供与现有的基于纸板的物理模型和建筑产业中使用的小样以及在2D屏幕上使用的一般建模应用相比,在保留模型的观感方面提供显著的优点。例如,尽管纸板模型以静态模型尺度存在,但是Arkio提供用于用户以人类尺度、鸟瞰图尺度或者在其间的任何尺度观看和修改数字模型的可变尺度。以人类尺度与模型交互的能力在通过使用户能够虚拟地在模型内“四处走”而允许用户体验模型的观感方面提供显著的优势,而这对物理纸板模型是不可能的。类似地,虽然某些现有的建模应用提供可变尺度,但是模型在2D屏幕上呈现的事实对用户体验模型的观感的能力施加显著的限制。通过Arkio,用户可以就像当从外部观看模型时容易地站在虚拟模型内部那样来建模建筑。
第二,Arkio提供对于架构建模和设计缺乏经验的人而言显著地更直观的系统。例如,缺乏经验的外行可能不具有理解计划设计的2D蓝图所需的知识。相比之下,Arkio提供的3D模型对任何观看者是立即直观的,因为模型紧密地近似计划的结构的实际观感。因此,Arkio提供直观的解决方案以减少或者消除架构设计者和外行之间的沟通不畅和误解。
第三,以Arkio创建的设计可以经由网络连接(比如因特网)共享,允许任意数目的远程用户查看和与设计交互。例如,Arkio允许经由因特网连接的多个用户实时地修改单个模型,同时其他用户同时在模型内部“四处看”。
最后,Arkio提供全部前述特征–和以下讨论的附加特征–而不牺牲计算效率。Arkio的计算高效的解决方案部分地由以下更具体地讨论的Arkio的表示对象的新颖的方法实现。通过最小化计算复杂度,Arkio能够以足够高的帧率和清晰级别显示模拟环境,以提供VR/AR中舒服的用户体验。Arkio的独特之处在于,它使用户能够在任意时间点改变正在处理的模型的任何细节,因为建模操作并非像传统的网格建模系统通常发生地那样不可撤销地“嵌入”模型中,而是可以在建模过程中随时进行修改或还原。
图1图示根据本公开的一个实施例的建模系统100。建模系统100包括系统控制器102、显示器104、手持控制器106和输入/输出模块108。在一些实施例中,系统控制器102可以包括输入/输出模块108。
系统控制器102通常配置为生成模拟环境和管理用户与模拟环境之间的交互。模拟环境通常称为VR或者AR环境。例如,处理器102可以生成模拟环境,在显示器104上显示模拟环境,并根据从手持控制器106接收到的输入信号来修改模拟环境。以下相对于图6和图14更详细地讨论系统控制器102。
显示器104总的来说配置为显示模拟环境。例如,显示器可以从系统控制器102接收输入信号,以显示由系统控制器102生成的模拟环境。以下相对于图2、图3A和图3B更详细地讨论显示器104。
手持控制器106总的来说配置为允许用户与模拟环境交互。例如,手持控制器106可以配置为与由系统控制器102生成的模拟环境交互。在一些实施例中,建模系统100可以包括除以下更详细地讨论的手持控制器106之外的一个或多个控制器。以下相对于图4、图5A和图5B更详细地讨论手持控制器106。在其他实施例中,可能不需要控制器。例如,可以通过直接以相机、传感器或者两者的结合跟踪用户的手来管理用户输入。
输入/输出模块108配置为与建模系统100外的系统交互。例如,输入/输出模块108可以配置为与2D显示器交换信息,以显示模拟环境的2D视图。在另一示例中,输入/输出模块108可以配置为与外部模型生成器交换信息。例如,输入/输出模块108可以配置为将模型信息提供给3D打印机,3D打印机可以打印在由建模系统100生成的模拟环境内的一个或多个模型的3D模型。如上所述,系统控制器102可以包括输入/输出模块108。
图2图示根据实施例的显示器104的框图。显示器104包括显示屏幕200、一个或多个传感器202、处理器204和输入/输出模块206。如上所述,在一个实施例中,显示器104配置为戴在用户的头或者脸上,以提供指示模拟环境的视觉刺激。
显示屏幕200总的来说配置为向用户显示模拟环境。显示屏幕200可以覆盖用户的整个视场(FOV)或者其显著的部分,以向用户提供沉浸在模拟环境内的感觉。显示屏幕200可以配置为根据从处理器204接收到的信号以适当的帧率显示图像。在有些情况下,使用两个分开的显示屏幕代替一个显示屏幕。
例如,在一个实施例中,选择显示器104的帧率,以防止用户与模拟环境在适当的帧率以下操作相关联地偶而体验副作用(例如,眩晕)。在一个实施例中,帧率维持在大约90帧每秒(FPS)以向用户提供舒服的体验。在替代实施例中,处理器204可以动态地确定适当的帧率。
一个或多个传感器202总的来说配置为感测与显示器104相关联的参数。例如,一个或多个传感器202可以包括配置为感测显示器104的朝向,并生成指示显示器104的朝向的反馈信号的加速度计。指示显示器104的朝向的信号可以以几个方式之一影响用户的体验。例如,在一个实施例中,反馈信号可以通过与用户的头的朝向类似地改变模拟环境内的用户的视点(POV)来允许用户“环顾”模拟环境。
处理器204总的来说配置为处理影响模拟环境的信号。例如,处理器204可以从一个或多个传感器202接收反馈信号,以确定用户的头的朝向和/或位置,并相应地改变显示屏幕200上的显示。替代地,处理器204可以将反馈信号传递到系统控制器102,并从系统控制器102接收输入信号以改变显示屏幕200上的显示。
在一些实施例中,处理器204可以在显示器104的内部并独立地管理模拟环境,或者可以由并行操作的多个处理器组成。在其他实施例中,处理器204可以在显示器104的内部并经由输入/输出模块206与显示器104外的一个或多个附加处理元件通信。例如,显示器104可以经由输入/输出模块206通过有线“系绳”,或者经由输入/输出模块206通过“无系绳”无线连接耦合到一个或多个外部处理器。在其他实施例中,显示器104可以不包括处理器204且可以经由输入/输出模块206由一个或多个外部处理器控制。
图3A图示作为显示器104的示例实施例的头戴式显示器300的透视图。头戴式显示器300是由台湾新北市的HTC公司和华盛顿Bellevue的Valve公司开发的HTC ViveTM头戴式设备。头戴式显示器300包括主体部分302、将头戴式显示器300固定到用户的头的装具部分304和连接头戴式显示器300到一个或多个外部系统的有线系绳部分306,主体部分302包括多个部件(例如,一个或多个传感器、显示屏幕等)。在其他示例中,头戴式设备可以是完全独立的装置,不需要连接到任何外部计算装置。图3B图示头戴式显示器300的后视图。头戴式显示器300包括显示屏幕308以向用户显示模拟环境。
图4图示手持控制器106的一个实施例的框图。手持控制器106包括致动器402、触摸垫404、处理器406和输入/输出模块408。如上所述,手持控制器106可以配置为允许用户与模拟环境交互。在一些实施例中,触摸垫404可以由一个或多个其他输入机构替代。在其他实施例中,代替物理控制器,或者除物理控制器之外,手势可以被感测和转换为用于与模拟环境交互的计算机可读信号。
在一个实施例中,致动器402包括一个或多个按钮和一个或多个触发致动器。致动器402之一的致动生成可以影响模拟环境的输出信号。例如,在一个实施例中,致动器402之一的致动可以在显示屏幕200上显示用户可以选择的选项的菜单,如以下更详细地讨论的那样。
触摸垫404可以包括配置为允许用户在模拟环境内“运动”或者与模拟环境交互的触敏表面。触摸垫404例如可以检测用户在触摸垫404上的触摸的位置并生成指示用户的触摸的位置的反馈信号。指示触摸垫404上用户的触摸的位置的反馈信号可以以几个方式之一影响用户的体验。例如,在一个实施例中,反馈信号可以通过与用户在触摸垫404上的触摸类似地改变模拟环境内的用户位置来允许用户在模拟环境内“四处走”。在替代实施例中,触摸垫404可以替换为操纵杆或者类似的部件。
处理器406总的来说配置为处理影响模拟环境的信号。例如,处理器406可以从致动器402接收反馈信号以确定是否已经启动菜单按钮,并相应地生成输出信号以使得在显示屏幕200上显示菜单。例如,处理器406可以经由输入/输出模块408将显示信号传递到显示器104或者到一个或多个外部处理器。替代地,处理器406可以将输出信号传递到系统控制器102,且系统控制器102可以将显示信号传递到显示器104。
图5A图示作为手持控制器106的示例实施例的控制器500的透视图。控制器500是由台湾新北市的HTC公司和华盛顿Bellevue的Valve公司开发的HTC ViveTM控制器。控制器500包括配置为容纳控制器500的部件(例如,一个或多个传感器)的主体部分502、触摸垫504和按钮致动器506。图5B图示控制器500的侧视图。控制器500包括触发致动器508和检测用户是否紧握控制器500的紧握致动器510。在至少一个实施例中,显示器104和手持控制器106使用户能够以三个自由度(3DOF)或者六个自由度(6DOF)与模拟环境交互。
如上所述,系统控制器102总的来说配置为接口连接显示器104、手持控制器106和输入/输出模块108,以生成模拟环境和管理用户与模拟环境之间的交互。在一个示例中,模拟环境可以是架构建模环境。
例如,图7A图示模拟环境700的POV。模拟环境700例如可以由建模系统100生成并显示在显示器104上。模拟环境700的视图包括虚拟控制器702和从虚拟控制器702发送到端点706的激光704。虚拟控制器702是比如手持控制器106的控制器的虚拟表示。激光704是虚拟控制器702指向的位置的虚拟指示。在图示的实施例中,激光704指向端点706。
当用户移动手持控制器106时,虚拟控制器702将以相似方式移动。因此,虽然可以参考手持控制器106或者虚拟控制器702的运动,但是应当理解,虚拟控制器702的运动跟踪手持控制器106的运动。
根据一个实施例,与显示器104、手持控制器106和输入/输出模块108结合的系统控制器102可以提供多个特征,以允许用户与比如模拟环境700的模拟环境交互。
图6图示由根据实施例的建模系统100提供的几个特征600的框图。特征600包括单个手势操作特征602、引导生成特征604、实体分隔特征606、对象改变特征608、特征锁定特征610、实时布尔建模特征612、尺度转换特征614、冲突管理特征616、预制库特征618、横切特征620、多控制器建模特征622、实际物理行为建模特征624和3D模型输出特征626。
现在将更详细地讨论单个手势操作特征602。一般而言,单个手势操作特征602允许用户使用手持控制器106以单个手势创建和编辑3D对象。例如,为创建直角棱柱,用户可以以手持控制器106选择模拟环境700中的第一3D点作为直角棱柱的第一顶点,并以单个手势将直角棱柱“拖”到期望的3D空间位置,其中手持控制器106的最终位置对应于直角棱柱的第二对角地相对的顶点。
例如,参考图7A,虚拟控制器702指向模拟环境700中的端点706。用户可以通过启动致动器402之一,比如通过按下手持控制器106上的触发致动器来选择端点706作为直角棱柱的第一顶点。
参考图7B,用户移动手持控制器106以拖动与直角棱柱的第二顶点对应的端点706。当达到直角棱柱的期望形状时,用户可以释放触发致动器以最终生成模拟环境700中的直角棱柱708。直角棱柱708可以以尺寸709显示以指示直角棱柱708的长度、宽度和厚度。如以下更详细地讨论的,直角棱柱708在一些实施例中可以是空心的。
因此可以使用单个手势(即,移动手持控制器106的单个手势)容易地生成比如直角棱柱的对象。在一些实施例中,移动手持控制器106的动量可以影响生成的形状。例如,如果用户在释放触发致动器时以显著的动量快速地移动手持控制器106,则形状可以以相同动量继续增长。相反地,如果用户在释放触发致动器时以可忽略的动量在大约静止的位置保持手持控制器106,则形状可以最后确定而不进一步扩展。
虽然前述讨论涉及直角棱柱的创建,但是用户可以生成模拟环境700的任何凸状体。例如,用户可以创建球、立方体、五面棱柱等。为选择形状类型,用户可以启动致动器402之一以打开形状选择菜单,并选择期望形状来创建。
此外,如上所述,比如直角棱柱708的对象在一些实施例中可以是空心的。在对象包括至少一个内部腔的情况下,对象可以考虑为空心的。在替代实施例中,也可以生成实心对象,或者具有不同厚度的几个壁的空心对象。在一些实施例中,用户可以选择新生成的对象的壁厚度,或者可以设置新生成的对象的默认的“正常”壁厚度。例如,用户可以选择正常的壁厚度以符合可应用的建筑法规要求的最小壁厚度。
在替代实施例中,建模系统100可以动态地确定壁厚度。如果建模系统100确定墙壁是属于普通建筑法规限制的正常墙壁,则可以按照相关的建筑法规自动地应用默认壁厚度。替代地,建模系统100可以确定邻接第一侧的车库和第二侧的居住生活空间的墙壁必须比正常墙壁更厚以满足消防法规。
单个手势操作特征602也允许用户基于预先生成的对象来生成衍生对象。例如,用户可能已经生成了凸形对象,随后希望生成通过凸对象的一个或多个表面的一个或多个孔,或者从凸形对象的一个或多个表面的凸起。
图8图示根据实施例的基于预先生成的对象而生成衍生对象的处理800。在动作802,处理800开始。在动作804,用户将控制器指向在预先生成的对象表面上的用于衍生对象的期望开始点。在动作806,用户按下控制器上的触发致动器以开始形成衍生对象。
在动作808,用户将控制器拖到衍生对象的期望结束点。在动作810,做出用户是否希望创建通过预先生成的对象的孔的确定,或者是否用户希望创建从预先生成的对象的凸起。孔可以部分地或者完全地延伸通过预先生成的对象,且凸起可以从预先生成的对象延伸任意距离。
如果用户希望生成通过预先生成的对象的孔,则处理800从动作810继续到动作812。在动作812,用户向内“推”入预先生成的对象的表面到期望深度,且处理800继续到动作814。在动作814,用户释放触发致动器以最后确定衍生对象的生成。在动作816,处理800结束。
如果在动作810用户希望生成从预先生成的对象的凸起,则处理800从动作810继续到动作818。在动作818,用户从预先生成的对象的表面向外“拉”到期望的凸起厚度,且处理800继续到动作814。在动作814,用户释放触发致动器以最后确定衍生对象的生成。在动作816,处理800结束。
现在相对于图7C图示了处理800的示例。以图7A和图7B图示的示例继续,图7C图示用户已经生成直角棱柱708,且希望创建完全地通过直角棱柱708的表面710的衍生矩形孔的实施例。例如,直角棱柱708可以表示基本建筑,且孔可以表示建筑中的窗户。
在动作802,处理800开始。在动作804,用户通过将激光704的端点706指向期望对象的期望开始点来开始。例如,开始点可以表示矩形孔的第一角。在动作806,用户按下触发致动器以初始化孔的创建。在动作808,用户移动手持控制器106以将端点706拖到期望结束点。例如,期望结束点可以表示矩形孔的与第一角对角地相对的第二角。
当达到矩形孔的期望形状时,在动作810做出期望孔还是凸起的确定。如上所述,在本示例中,用户希望创建孔。因此,在动作812,用户可以将手持控制器106向内推直角棱柱708的表面710到期望深度。换句话说,用户可以移动手持控制器106以使得虚拟控制器702的相应运动向内引导到直角棱柱708中。
用户向内推动的程度对应于矩形孔的深度,其中孔可以部分地或者完全地延伸通过直角棱柱708的表面710。当用户满足于矩形孔的深度时,处理800继续到动作814。在动作814,用户释放触发致动器以完成直角棱柱708的表面710中的矩形孔的生成。在动作816,处理800结束。
图7D图示根据处理800的执行,具有通过表面710生成的矩形孔712的直角棱柱708。如图7D所示,直角棱柱708是空心形状(即,直角棱柱708的壁具有有限厚度),且矩形孔712完全地延伸通过表面710。矩形孔712可以以尺寸714显示,以图示矩形孔712的长度、宽度和深度。
应当理解,虽然前述示例涉及完全地延伸通过预先生成的对象的表面的孔,但是替代的衍生对象也是可能的。例如,用户可以通过在小于壁的厚度的深度向内推入预先生成的对象的表面,来在预先生成的对象的壁表面中生成“凹室”。替代地,用户可以通过从预先生成的对象的表面向外拉来生成从预先生成的对象的表面的凸起。
相对于创建以空心形状或者通过空心形状的孔,系统可以确定何时用户已经将孔完全延伸到空心形状内部,且如果用户继续向前推动孔,建模系统100可以以在第一空心形状内部创建的孔周围创建壳的方式改变建模操作。该操作的结果是空心形状的实时形状形成,就像它们是实心的而不是壳的能力,因为原则上如在典型建模软件中那样,用户应该不需要判定她以实心还是壳工作。
此外,虽然前述示例描述矩形孔,但是应当理解,替代形状也是可能的。例如,用户可以生成圆形孔或者凸起、三角形孔或者凸起等。在一些实施例中,致动器402包括菜单按钮,当由用户启动菜单按钮时,经由显示器104显示菜单,用户可以从菜单选择衍生对象的期望形状。
现在将更详细地讨论引导生成特征604。在某些建模系统中,用户可能发现创建模型的无限制的自由不是有益的。例如,如果给予用户无限制的和无引导的自由来画任何矩形,可能非常难以建模与相邻窗户实质上尺寸相同且垂直偏移的窗户。因此,建模系统100提供特征引导以通过提供引导辅助用户。
首先,假定用户在建筑模型中创建窗户,且希望创建与第一窗户相邻的另外的窗户。在创建第一窗户之后,指示窗户的边界的引导线可以出现并从第一窗户延伸。例如,水平线可以从窗户的上边界延伸,以使得用户知道开始在相同高度生成相邻窗户。
在第二示例中,用户希望创建具有六个相同平面的立方体。当用户开始生成立方体时,建模系统100可以检测用户正在尝试生成立方体,且自动地将形状“卡”成立方体。例如,当用户画立方体时,建模系统100可以检测形状的长度、宽度和厚度不互相偏离多于10%的阈值量,从其中确定用户希望画立方体,且自动地将该形状卡成立方体。在其中用户利用比如手持控制器106的控制器的替代示例中,用户可以启动致动器402之一以指示所画的形状应该自动地卡成立方体形状。
应当理解,引导生成特征604允许可以生成任何种类和数目的引导以辅助用户。用户可以激活引导中的某些、全部或者不激活引导。此外,用户可以依照需要配置引导并从任何形状的任何特征创建临时引导。例如,在如果长度与宽度在阈值量内,矩形孔将卡成正方形的情况下,用户可以配置阈值量。
在Arkio中,形状可以自动地或者在明确的用户控制下,设计为具有相对于其他形状的尺寸与形状。作为示例,从预先生成的形状关于边缘引导创建新形状可以导致当编辑或者四处移动预先生成的形状时,新形状与预先生成的形状一起移动。这些依赖性的类型也可以使用模型中的形状或者形状的特征之间的距离标记器来可视化。示例是设计为总是在从窗户所在的墙壁的边缘设置的偏移的窗户。建模系统100帮助用户将该依赖性可视化为这两个形状的两个特征之间的“锁定的”距离。用户能够“解锁”距离,以使得墙壁的边缘独立于窗户移动。用户可以在彼此之间任意距离的形状之间创建这些类型的依赖性。这种操作的一个示例是将两个建筑的屋顶锁在一起,以使得改变一个的高度也改变另一个的高度。相同方法可以应用于其他建模操作,比如以同样的方式偏斜建筑的面或者倾斜它们的侧面。
现在将更详细地讨论实体分隔特征606。一般而言,实体分隔特征606通过将对象表示为分开的实体,使能更用户友好的和更计算高效的解决方案。在某些现有的建模系统中,模型以三角形和多边形的单个集合的“网格”表示。当对模型做出改变–比如将窗户附加到建模的建筑–时,改变永久地“固化到”网格中,以使得改变不被感知为单独实体。代替地,改变被感知为对三角形和多边形的单个集合网格的修改,因此不具有单独实体状态。因此改变的后续修订是困难的,因为用户仅能够关于单个静态网格操作。
在一个实施例中,3D模型中的每一个对象表示为单独体积的3D实体。更具体地,对象表示为沿着共享的边界平面和边界面连接在一起的凸3D多面体单元。例如,上面相对于图7C讨论的直角棱柱708和矩形孔712是沿着共享的边界面连接在一起的单独的实体。系统中的全部模型具有作为非自相交定向流形的表面边界,以使得全部3D对象具有良好定义的内侧和外侧区域。因此,建模系统100的某些实施例提供可以在几何编辑操作下实时地动态地和/或逐渐地更新的凸单元网络结构。
除存储关于在单元边界的单元的连通性的信息之外,建模系统100保持跟踪其他的外部单元的范围内的内部单元的空间包含和嵌套。对于每个内部实心和/或空心单元,建模系统100保持跟踪空间地包括内部单元的外部孔和/或实心单元的最小集合。例如,表示房间的孔存储房间内完全地或者部分地包含的全部单元的列表,比如表示家具或者房屋的内部划分或者特征的单元。
当通过用户编辑操作来修改单元时,该包含信息连续地保持更新。例如,如果通过用户编辑操作而放大第一单元,以使得第一单元的形状延伸超出第一单元的初始包含单元并进入相邻单元中,则系统自动地记录第一单元现在由两个单元而不是一个单元包含的事实。应当理解,对“内部”和“外部”单元的前述引用仅用于说明性目的。单元可以同时考虑为内部和外部。与外部单元相比的关于内部单元的非有形约束意在由前述讨论暗示。
单元也可以被分配某些类别或者属性(例如,作为居住或者商用房屋单元),这可以帮助用户了解某个类别的建筑的总面积大小。当一个或多个用户做出对模型的编辑时,该信息可以被有效地计算、更新和查看。
将3D模型表示为凸3D多面体单元的集合满足至少三个目的,最终的效果是与现有的方法相比具有减小的计算复杂度的增强的用户体验。首先,单元的集合表示容易缩放以解释另外的对象的动态3D对象的记录。因为新生成的对象不被“固化到”静态网格中,所以逆向地修改对象比利用静态网格的现有方法中显著地更简单。本公开的某些实施例以包括连接和/或嵌套的体积单元的图的重结构的几何表示来表示单元,以使得对预先生成的单元的修改可以相对于那些单元单独地执行,而不是相对于整个静态网格执行。
第二,单元的集合提供用于经体积对象的空间交叉查询的加速数据结构,这是当包括数字模型的对象的数目增长得大时维持适当的高帧率所需要的。最后,单元的集合表示用于形状或者线段(光线投射)空间重叠查询的加速数据结构。例如,考虑包括几个内部对象的建模对象。如果包括内部对象的建模对象当查询匹配时可以排除,则当作为结果查询匹配时全部内部对象可以自动地排除,避免在仍然产生正确的查询结果的同时处理内部对象的需要。因此,系统可以答复大部分空间查询,同时仅处理模型中的小部分的单元,提高了许多其他特征的计算效率,比如如以下相对于冲突管理特征616更详细地描述的用于物理模拟和“打击”的冲突检测。
例如,某些现有的系统以非结构化的3D多边形网格表示模型。由于统一结构,所以如果网格中的单个多边形改变,则呈现网格的系统必须重复整个网格的呈现处理。
计算效率例如可以通过区分单独实体的细节的级别来改进。例如,假定用户POV包括“近”的几个对象和“远”的几个对象。因为建模系统100可以独立地呈现单独的对象,所以建模系统100可以通过省略表示远的对象的更小细节的对象的视觉显示来减小远的对象的细节级别,同时维持近的对象的细节的高级别。
与在用户编辑会话的开始加载整个模型相反的,计算效率也可以例如通过按照需要逐渐地从永久存储设备加载大的模型来改进。例如,表示建筑的单元的内部包含单元的加载可以推迟,直到以对于潜在地可见的内部单元的足够级别的细节显示建筑时的时间。对于在会话期间完全不显示的单元的子集可以无限地推迟加载。
当经网络以合作设置利用建模系统100时前述可以是特别有益的,因为参与者可以开始查看和编辑模型而不经网络下载整个模型。此外,参与者仅需要接收关于对参与者已经下载和/或当前正在查看的单元的子集的改变的信息,显著地减小了每个参与者和整个系统需要的网络带宽量。
通过使用嵌套的单元包含结构作为跨多个CPU划分计算工作的基础,也可以改进计算效率。因为建模系统100具有关于何时一对单元–和通过暗示,单元的各个包含的单元–空间地不重叠的信息,所以建模系统100在有些情况下可以分配两个单独的CPU关于影响两个单元的编辑操作的各部分协同工作,减小完成操作需要的总时间。
也可以通过使用单元间可见性和嵌套包含以加速通过模拟3D环境的光传播的模拟来改进计算效率。用于模拟环境的实际渲染生成的许多公知方法通过计算在场景中的光源和场景观察者的POV之间传递的光的模拟光线的路径来估计光流。这包括比如光线跟踪、路径跟踪、环境遮挡和光能传递的方法。为捕获当光从场景中的多个对象弹回时的光和阴影的实际相互作用,必须通过场景跟踪几千万或者几亿的这种光线。尽可能快地计算光线与模拟环境的交叉因此变得非常重要。
由建模系统100提供的关于单元间可见性的信息可以用于加快这种计算。例如,如果从第一单元内部的位置内到第一单元的边界上的位置跟踪光线,且光线不达到连接第一单元到第二相邻单元的入口,则光线的路径的计算在第一单元内部继续而不需要遍历任何其他单元。相反地,如果光线达到这种入口,则光线的路径的计算单独地在第二相邻单元中继续,而不需要遍历任何其他单元。
在一个实施例中,当通过单元跟踪光线时,仅需要测试相对于该单元和单元内包括的任何内部单元的光线。不需要测试相对于由内部单元包含的单元的光线,除非首先确定光线交叉内部单元。在以静态三角形网格表示对象的现有的系统中,通过关于静态的三角形网格执行计算上复杂的处理操作以从三角形数据构建静态数据结构,比如kd-树或嵌套的边界框的分层结构,来加速光线跟踪。除消耗大量的计算机资源之外,该现有方法的结果必须存储到文件中,文件必须在运行时间加载到系统中,以呈现用于光线跟踪的几何形状。此外,每次对初始模型做出改变都必须重复该处理,这需要相当多的时间和人工。
相对地,因为建模系统100维持指示单独的和不同的对象之间的空间关系和入口的信息,所以建模系统100可以快速和容易地执行剔除操作以确定哪个对象被遮挡。此外,因为当模型由用户编辑操作修改时,建模系统100连续地更新其关于对象空间关系的信息,所以建模系统100可以继续加速光线跟踪操作而不需要信息的离线重新计算和重新加载。
应当理解,实体分隔特征606通过允许预先生成的形状的简单操作,而使建模系统100能够是计算高效的,同时增强用户体验。此外,因为每个建模的对象被存储为分立和动态的实体,所以可以向个体的对象动态地分配用于怎样由系统导出对象的最终形状的定制规则。例如,这使能基于包括程序上预先生成的对象的其他对象的形状、位置及其他参数的新对象的动态程序上的生成。
可以程序上生成的架构建模系统中的感兴趣的特征例如可以包括楼梯、曲面(例如,直纹表面、贝塞尔碎片和二次曲线)、植物(例如,草、树和灌木丛)和自然的或者人工的纹理和图案(例如,砖墙、石头、岩石和木纹)。程序上生成的特征可以从模拟环境内实时地生成,或者从模拟环境的外部离线生成。
对象之间区分的能力例如允许关于第一对象程序地生成木纹图案,同时关于第二对象程序地生成砖墙图案,而没有对象之间的图案的任何“重叠”。基于静态网格的建模系统中的程序上的生成虽然可能在具有专用工具的离线系统中,但是与由基于多面体单元的建模系统100提供的程序上的生成相比在计算上显著地更低效。设计用于基于静态网格的系统的专用工具必须预先计算全部程序上的几何形状细节,在文件中存储细节,并将文件加载到呈现程序上的几何形状的系统中。
此外,每次对初始模型做出改变都必须重复该处理,这需要相当多的时间和人工。相反地,建模系统100可以推迟单元的细节单元的程序上的生成,直到单元处于这种细节潜在地可见的细节级别的时间为止。此外,因为用于程序上的生成的定制规则在模拟环境内实时执行,所以它们可以通过重新估计关于调整的程序上的生成规则来响应于其他单元的改变和考虑这种改变。
实体分隔特征606还允许建模系统100实时地实现遮挡的几何特征的高效视觉剔除,而不需要预先计算关于剔除遮挡的几何形状的可能方式的静态信息。遮挡的几何特征是从特定POV对观看者不可见的几何特征。例如,遮挡的特征可以在模拟环境中“隐藏”在其他对象之后。因为遮挡的特征对用户不可见,所以通过不呈现遮挡的特征对增加计算效率可能是有益的。剔除通常指的是哪个特征被遮挡的确定,以使得可以避免那些特征的呈现。
例如,考虑表示具有几个窗户和门的建筑的对象。一个或多个建筑对象包括各种对象,例如包括表示楼梯、桌子、椅子等的对象。但是,如果用户从建筑的外部观看建筑,则建筑的内部包括的对象可能仅通过建筑上的入口,比如窗户和门可见。因此,建筑的内部包括的对象应该仅在通过一个或者一系列这种入口直接可见的情况下才呈现。系统能够通过利用关于孔单元与它们的共享单元面中它们的包含实心单元的连接的信息,来动态地推算入口的形状和位置。
在以静态三角形网格表示对象的现有系统中,遮挡剔除可能仅通过关于静态三角形网格执行计算上极端复杂的处理操作而是可能的。除消耗显著的计算机资源之外,该现有方法的结果必须存储到文件中,文件必须在运行时间加载到呈现可能遮挡的几何形状的系统中。此外,每次对初始模型做出改变都必须重复该处理,这需要相当多的时间和人工。
相对地,因为建模系统100访问指示单独的和不同的对象之间的空间关系和入口的信息,所以建模系统100可以快速和容易地执行剔除操作以确定遮挡哪个对象。例如,建模系统100可以分析相对于窗户和门的用户POV以确定建筑中的哪个对象(如果有的话)由于它们被遮挡而不需要呈现。因此,可以由建模系统100以最小的计算复杂性执行剔除,且不耗费大量的计算资源。此外,因为当模型通过用户编辑操作而修改时,建模系统100连续地更新其关于对象空间关系的信息,所以建模系统100可以继续执行剔除操作而不需要剔除信息的离线重新计算和重新加载。
现在将更详细地讨论对象改变特征608。一般而言,对象改变特征608指的是建模系统100响应于对对象之一的改变直观地适配一组互连的对象的能力。虽然建模系统100向用户提供创建和修改建模对象的极大自由度,但是建模系统100能够直观地适配那些创建和修改可能是有益的。
图9图示根据实施例的修改预先生成的对象的处理900。在动作902,处理900开始。在动作904,用户将控制器指向预先生成的对象的期望特征(例如,预先生成的对象的边缘),以开始修改预先生成的对象。在动作906,用户按下控制器上的触发致动器以选择特征。
在动作908,用户将控制器拖到用于修改的对象的所选特征的期望结束点。例如,用户可以向着预先生成的对象的内部向内推动控制器以压缩对象,或者可以远离预先生成的对象的内部向外地拉控制器以延伸对象。在动作910,用户释放触发致动器以最后确定预先生成的对象的修改。在动作912,处理900结束。
现在相对于图7E图示了处理900的示例。继续图7C和图7D中图示的示例,图7E图示已经修改以包括矩形孔712的直角棱柱708。直角棱柱708包括第一边缘716,且用户期望以垂直于第一边缘716的轴的方向拉伸直角棱柱708。图7E还包括显示为引导的维度718。
在动作902,处理900开始。在动作904,用户通过将激光704的端点706指向第一边缘716而开始。在动作906,用户按下手持控制器106的触发致动器以选择第一边缘716。在动作908,用户移动手持控制器106以将端点706拖到期望结束点。例如,期望结束点可以表示第一边缘716的最终位置。在动作910,用户释放触发致动器以最后确定直角棱柱708的修改。在动作912,处理900结束。图7F图示在处理900的执行之后的修改的直角棱柱708。如图7F所示,直角棱柱708已经垂直于边缘716的轴向外拉伸。
预先生成的对象(比如直角棱柱708)的修改可能影响附加到预先生成的对象的衍生对象,比如矩形孔712。虽然简单化的比例缩放技术例如在机械系统建模中可能是适当的,但是相同原理可能不可应用于架构建模。例如,房屋中的窗户的尺寸和位置一般不选择为与房屋的尺寸成正比。而是,尺寸一般固定且位置一般确定为例如离相邻墙壁的特定偏移。
因此,建模系统100允许相对于其他对象的特征而定义对象。当修改对象时,建模系统100可以动态地修改具有取决于修改的对象的特征的其他对象。例如,可以定义矩形孔712具有固定尺寸和从边缘716偏移预先指定或者动态确定的距离的位置。如果修改边缘716的位置,则可以动态地调整矩形孔712的位置以适应修改。
应当理解,虽然前述示例涉及通过选择边缘特征的预先生成的对象的修改,但是也可以选择其他特征。例如,可以选择对象的顶点,且可以相对于所选的顶点拉伸或者压缩对象,以类似于对象的初始创建的方式有效地修改对象。在另一示例中,可以选择对象的表面,且可以相对于所选的表面拉伸或者压缩对象。
现在将更详细地讨论特征锁定特征610。一般而言,特征锁定特征610允许用户相对于其他对象特征关于某些对象特征指定限制。如上相对于对象改变特征606所讨论的那样,建模系统100允许用户修改预先生成的对象的特征。但是,每个预先生成的对象包括几个其他特征(例如,侧、顶点和边缘),如果任何一个特征被修改,则所述几个其他特征将改变。因此,建模系统100允许用户定义特征怎样可以相对于彼此改变和怎样可以不相对于彼此改变可能是有益的。
建模系统100的用户可以相对于第一对象的任何其他特征,或者一个或多个第二对象的任何特征来限制第一对象的任何特征。在第一示例中,用户可以将第一对象的第一边缘锁定在离第一对象的第二边缘的固定距离处。因此,如果用户尝试修改第一对象的第一边缘的位置,则将禁止修改,或者第二边缘将与第一边缘一起移动,以使得第一边缘和第二边缘之间的距离维持在固定距离。在替代实施例中,第一对象的第一边缘可以锁定在离第二对象的第二边缘的距离的固定范围处,以使得在距离的固定范围内允许第一边缘和第二边缘之间的距离的某些变化。
在第二示例中,第一对象的第一侧锁定离第二对象的第一侧的固定距离处。因此,如果用户尝试修改第一对象的第一侧的位置,则将禁止修改,或者第二对象的第一侧将与第一对象的第一侧一起移动,以使得在第一对象的第一侧和第二对象的第一侧之间维持固定距离。
对本领域技术人员应该很容易理解,根据前述原理在一个或多个对象的两个或更多特征之间的无穷多数目的特征关联是可能的。在包括两个或更多对象的关联特征的示例中,两个或更多形状可以直接连接,或者可以分开任意距离。虽然前述示例讨论了两个单独的特征之间的关联,但是应当理解,一个特征可以相对于两个或更多其他特征而被限制。此外,虽然前述示例讨论了相同类型的两个特征之间的关联,但是应当理解,可以在不同类型的两个特征之间生成关联。例如,第一对象的边缘可以相对于第二对象的一侧和第三对象的顶点而被限制。
对于特征锁定特征610,系统允许定义第一单元的边界的每一个平面在从第二单元的面、边缘和一个或多个顶点导出的坐标系中定义。第一单元的平面可以在相同坐标格网中定义。替代地,第一小单元的平面可以在从不同小单元的面、边缘和顶点导出的不同坐标格网中定义。
现在将更详细地描述从面、边缘和一个或多个顶点导出坐标系的方法的示例。坐标系的3D正交基础由作为面的单位长度法线的第一矢量、作为沿着边缘的单位长度的第二矢量和将位于面中但是与第一和第二矢量两者正交的第一和第二矢量的叉积组成。面的顶点之一用作坐标系的原点。替代地,可以使用从一个或多个面的顶点计算的点。例如,坐标系的原点可以是通过将顶点求和然后将和除以顶点的数目而计算出的平均点。
现在将根据实施例更详细地讨论实时布尔建模特征612。一般而言,实时布尔建模特征612允许用户将复杂的非凸3D对象表示为由理论集的布尔操作(例如,差,并和交)相关的简单凸单元的集合。
在实时布尔建模特征612的第一示例中,用户可能希望创建直角棱柱中的矩形孔。代替使用单个手势操作生成矩形孔,类似于上面相对于图7D讨论的操作,用户可以使用实时布尔建模特征612。更具体地,用户可以生成以矩形孔712的形状的长方体,将长方体放置在应该创建孔的直角棱柱708的区域中,并应用差算子。
差算子将取出与长方体交叉的直角棱柱708的任何区域,由此生成类似于直角棱柱708中的矩形孔712的孔。如果改变直角棱柱708的特征,则通过布尔算子的执行而生成的孔将按照上面讨论的形状改变特征606自动地改变。
在布尔运算下的主要几何处理是计算作为操作主体的两个对象的重叠。该类型的计算可以通过使用数据结构将复杂对象分解为凸多面体的集合来执行。例如,配置为实现该功能的一个数据结构可以包括二进制分区树(BSP)。这种计算可以通过使用比如BSP、k-D树和八叉树的空间分区数据结构来加速。
相对地,建模系统100已经将所有几何对象维持为凸多面体单元,以使得不需要非凸多面体或者网格的分解。另外,建模系统100可以使用它存储的关于其他单元内部的单元的几何包含的信息,以加速空间重叠查询而不需要附加数据结构,如上相对于实体分隔特征606所述。因为当动态地修改单元时,建模系统100修改几何包含信息以保证信息保持有效,所以即使当正在动态地编辑模型时,建模系统100也可以实现模型中的对象之间的实时布尔运算。
在实时布尔建模特征612的第二示例中,用户可能希望关于壳对象执行布尔运算。壳对象是包含空单元的实心单元,其中空单元的平面配置为维持与其包含的实心单元的相应平面的固定距离,以使得即使实心单元的形式由用户编辑操作修改时,组合的对象也维持壳形式。例如,壳对象可以表示具有空心内部体的建筑。实时布尔建模特征612允许用户关于壳对象执行布尔运算,同时维持产生的壳对象的壳形式。在可选示例中,用户可以指定不应该在布尔运算的执行之后维持空心对象的外壳。
当作为布尔运算的主体的两个壳对象具有公共的一个或多个多边形面时,系统可以使用比用于两个对象的任意重叠的算法更快地执行的特定算法,执行保留产生的对象的壳形式的布尔运算。在第一示例中,第一对象和第二对象可以具有公共的面,其中第一对象从第二对象的面向外地突出,如上相对于单个手势操作特征602所述的那样,导致两个对象共享第一对象从其突出的第二对象上的面。
在第二示例中,第一对象和第二对象可以具有公共的面,其中第一对象从第二对象的面向内地突出,如上相对于单个手势操作特征602所述,导致第一对象几何地包括在第二对象中,且导致两个对象共享第一对象从其向内地突出的第二对象上的面。在第三示例中,两个对象可以共享在如上相对于冲突管理特征616所述的打击操作之后的面。
建模系统100可以通过对于参与运算的每个壳的外实心单元,计算用于一个或多个附加的连接空单元的适当的形状,关于具有公共的多边形面的两个壳对象执行布尔运算,该一个或多个附加的连接空单元将壳的内空单元的面连接到壳的外实心单元的面。连接空单元表示壳的外实心单元中的孔,该孔通向由壳的内空单元表示的空心体内部。根据以下描述的方法,对于两个壳对象的两个外实心单元独立地计算连接空单元的设置,这保证合起来,两个壳对象表示可能非凸的封闭壳形式。
如果除了在对象的共享多边形面之外,两个壳对象不重叠,则存在两个可能的配置。现在将相对于图15A-图15C描述第一配置。图15A图示根据第一透视图1500的第一配置。图15B图示根据第二透视图1502的第一配置。第一配置包括第一壳对象1504和第二壳对象1506。
第一壳对象1504是具有第一外实心截面1508和第一内空截面1510的空心对象。第一内空截面1510以虚线图示,以指示从第一壳对象1504的外部,第一内空截面1510将不可见。
第二壳对象1506也是具有第二外实心截面1512和第二内空截面1514的空心对象。第一壳对象1504和第二壳对象1506仅在单个共享面多边形1516重叠,其中第二壳对象1506的第二外实心截面1512的整个面与第一壳对象1504的第一外实心截面1508的一部分重叠。
如上所述,建模系统100可以关于两个壳对象1504、1506执行布尔运算以生成连接空隙,以使得单个空白在壳对象1504、1506内存在。单个连接空隙的生成的讨论将首先相对于第二壳对象1506解释,然后相对于第一壳对象1504解释。
相对于第二壳对象1506,建模系统100通过第二外实心截面1512,将第二内空截面1514延伸到共享面多边形1516,以使得第二内空截面1514延伸到第一连接区域中。事实上,延伸第二内空截面1514直到共享面多边形1516,并去除外实心截面1514的预先占据第一连接区域的部分。
相对于第一壳对象1504,建模系统100生成从共享面多边形1516通过第一外实心截面1508延伸到第一内空截面1510的连接空隙。事实上,连接空隙去除外实心截面1510的预先占据新生成的连接空隙的部分。第一内空截面1510和第二内空截面1514在共享面多边形1516相遇。
图15C图示在第一壳对象1504和第二壳对象1506已经连接以形成单个壳对象1520之后的第一配置的透视图1518。第一区域1522指示第一连接区域,且第二区域1524指示创建第二连接空隙的位置。两个内空截面1510、1514已经合并为单个空隙,壳对象1520被认为包括单个外实心截面1526和单个内空截面1528。
现在将相对于图16A-图16C描述第二配置。图16A图示根据第一透视图1600的第二配置。图16B图示根据第二透视图1602的第二配置。第二配置包括第一壳对象1604和第二壳对象1606。
第一壳对象1604是具有第一外实心截面1608和第一内空截面1610的空心对象。第二壳对象1606也是具有第二外实心截面1612和第二内空截面1614的空心对象。第一壳对象1604和第二壳对象1606仅在单个共享面多边形1616重叠,该单个共享面多边形1616被定义为第一外实心截面1608和第二外实心截面1612的数学集合并集。
第二配置类似于第一配置。但是,尽管第一配置中第二壳对象1506的整个面与第一壳对象1504重叠(即,第一配置的共享面多边形1516表示第二壳对象1506整个面),第一壳对象1604和第二壳对象1606仅部分地重叠(即,第二配置的共享面多边形1616不表示第一或者第二壳对象1604、1606的任何面的整体)。
建模系统100可以关于两个壳对象1604、1606执行布尔运算,以生成两个壳对象1604、1606之间的连接空隙,类似于上面相对于第一配置讨论的布尔运算。第一连接空隙在第一壳对象1604中生成,且从第一内空截面1610通过外实心截面1608延伸到共享多边形面1616。第二连接空隙在第二壳对象1606中生成,且通过外实心截面1612从第二内空截面1614延伸到共享多边形面1616。
图16C图示在第一壳对象1604和第二壳对象1606已经连接以形成单个壳对象1620之后的第二配置的透视图1618。第一区域1622指示创建第一连接空隙的位置,且第二区域1624指示创建第二连接空隙的位置。因为连接区域已经将两个单独的内空截面1610、1614合并为单个空隙,所以壳对象1620被认为包括单个外实心截面1626和单个内空截面1628。
为生成第一壳对象1604中的第一连接空隙,建模系统100将第一外实心截面1608中的第一连接空隙定义为具有由最接近共享多边形面1616的第一内空截面1610的位置定义的一个面(如上所述,其表示第一外实心截面1608和第二外实心截面1612的数学集合并集),和由共享多边形面1616本身定义的一个面。第一连接空隙的剩余面是来自与共享多边形面1616相交的第一内空截面1610和第二内空截面1614的平面。
类似的原理相对于第二连接空隙应用,该第二连接空隙与第一连接空隙相交,其中共享多边形面1616在生成连接空隙之前预先存在。合起来,第一连接空隙和第二连接空隙将表现为第一内空截面1610和第二内空截面1614之间的单个凸开口(即,单个内空截面1628),由此保留单个外实心截面1626的单个总体壳形式。
在两个壳对象重叠以使得第一壳对象包括在第二壳对象中的情况下,第一对象可以与第二对象的面中的一个、两个或者三个共享面。在该情况下,关于共享多边形面的两个壳对象执行布尔运算包括两个步骤。在第一步骤,用于从第二壳对象向内地突出第一壳对象的过程修改如下。代替使得第一壳对象的外实心与第二对象的外实心单元共享面,如一般实心单元对象突出的情况,第一壳对象位于第二对象的内空单元的内部,并且代替第二壳对象的外实心单元,与第二对象的内空单元共享一个、两个或者三个面。
在第二步骤,建模系统100将在第二壳对象的外实心中创建与第一对象的外实心单元和第二对象的内空单元之间共享的面的数目一样多的连接空隙单元。因为第一壳对象由第二壳对象几何地包含,所以第一壳对象的面由第二壳对象的面完全地包含。因此,内空截面使用讨论的方法向着第二壳的内空面扩展。
在两个或者三个共享面的情况下,建模系统100创建一个附加连接空隙单元,以去除在已经创建两个或三个连接空隙之后剩余的实心单元。虽然第一壳对象几何地包含在第二壳对象中,但是连接空隙将从外部表现为第二对象中的孔或者腔,同时仍然保留组合的对象的壳形式。
在对于其不应用关于壳对象的快速布尔运算的方法的配置中,两个壳对象可以以更多一般方式重叠。在这些配置中,就关于对象的外实心单元和内空单元的布尔运算而言,建模系统100关于壳对象实现布尔运算如下。
对于第一壳对象和第二壳对象之间的数学集合并集运算,建模系统100计算两个外实心单元的并集,并从两个外实心单元的并集减去两个内空单元的并集。对于第一壳对象和第二壳对象之间的数学集合交集运算,建模系统100计算两个外实心单元的交集,并从两个外实心单元的交集减去两个内空单元的交集。
对于从第一壳对象减去第二壳对象的数学差运算,建模系统100从第一外实心单元减去第一内空单元,将减法结果与两个外实心单元的交集取并集,和从并集减去第二内空单元。这些运算允许以布尔运算组合各壳对象,同时保留产生的组合对象的壳形式。建模系统100可以关于下面的实心和空单元以不同次序或者使用不同布尔运算实现这些运算,只要运算导致如上面讨论的运算所描述的相同集合即可。
应当理解,如上所述的在两个壳对象之间执行的布尔运算可以连续地重新执行。当修改壳对象,比如通过添加、去除或者修改连接空隙或者壳形状时,建模系统100可以更新空隙。因此,虽然可以从多个构成壳对象生成壳对象,但是壳对象仍然可以由用户自由地编辑。
现在将更详细地讨论尺度转换特征614。一般而言,尺度转换特征614允许用户修改显示和编辑模型的尺度。例如,设计建筑的用户可能想要以模型尺度(例如,其中建筑的顶部在“视线高度”处)编辑建筑,但是可能想要以人为尺度编辑建筑内的房间。
举例来说,图10A图示根据一个实施例的模拟环境1000的建筑尺度POV。模拟环境1000例如可以由建模系统100生成。模拟环境1000的视图包括虚拟控制器1002、直角棱柱1004和树的模型1006。虚拟控制器1002是比如手持控制器106的控制器的虚拟表示。直角棱柱1004表示原始建筑。
用户可能想要以较小尺度编辑直角棱柱1004。例如,如果用户以人类尺度POV查看直角棱柱1004,则用户可能发现,在直角棱柱1004上构造“门”是更可管理的。尺度转换特征614允许用户容易地转换到适于给定任务的尺度。
例如,在用户使用手持控制器106的情况下,用户可以以逆时针方向在触摸垫404周围移动她的手指以缩小(即,使得模拟环境中的对象更大)或者以顺时针方向放大(即,使得模拟环境中的对象更小)。替代地,用户可以启动致动器402之一以打开菜单,导航到尺度设置,并依照要求改变尺度设置。在替代实施例中,可以实现改变尺度的任何其他方法。
图10B图示根据实施例的模拟环境1000的人类尺度POV。直角棱柱1004包括矩形孔1008。在直角棱柱1004表示建筑的情况下,矩形孔1008可以表示建筑中的门。对于用户以如图10B所示的人类尺度POV而不是如图10A所示的建筑尺度POV,矩形孔1008的构造显然更容易。
在一些实施例中,转换到较小或者较大尺度可能对控制器灵敏度具有相应的效应。例如,在用户从模型尺度转换为人类尺度的情况下,控制器的灵敏度可能增加。灵敏度的改变的效果是在模型尺度的物理的“真实世界”控制器的运动将比以人类尺度的“真实世界”控制器的相同运动创建更大的物体。灵敏度特征可以依照要求由用户修改或者禁止。类似的原理应用于编辑形状的特征和在模型内四处走。
现在将更详细地讨论冲突管理特征616。一般而言,冲突管理特征616允许建模系统100的用户组合两个或更多对象。例如,用户可能希望将第一对象的第一面附接到第二对象的第一面,以使得组合第一对象和第二对象。建模系统100允许用户选择第一对象,和将第一对象“冲击”到第二对象中以组合第一和第二对象。
图11图示根据实施例将第一对象和第二对象打击在一起的处理1100。在动作1102,处理1100开始。在动作1104,用户选择第一对象。在动作1106,用户将第一对象打击到第二对象中。例如,用户可以将第一对象延伸到第二对象中,或者可以将第一对象移动到第二对象中,同时保持第一对象的初始形状。
在动作1108,第一对象调整到第二对象,或者第二对象调整到第一对象,或者两者组合。动作1108是根据用户偏好执行的可选动作。在替代实施例中,可以不发生调整。在动作1110,用户指定第一对象对第二对象的关系。动作1110是根据用户偏好的可选动作。例如,用户可以指定如果移动第二对象,则第一对象应该随着第二对象移动同时保持它的初始形状。
在替代实施例中,用户可以指定如果移动第二对象,则第一对象应该被拉伸以随着第二对象移动。在其他的实施例中,用户可以不指定偏好,且建模系统100可以动态地确定如果修改第二对象则应该怎样影响第一对象。在动作1112,处理1100结束。
现在相对于图12A-图12C图示处理1100的示例。图12A图示根据实施例的模拟环境1200。模拟环境1200包括虚拟控制器1202、第一对象1204和第二对象1206。第一对象1204包括第一面1208,且第二对象1206包括第二面1210。用户希望通过将第一面1208附接到第二面1210来组合第一对象1204与第二对象1206。
在动作1102,处理1100开始。在动作1104,用户选择第一对象1204的第一面1208。在动作1106,用户将第一面1208打击到第二面1210中。在图示的实施例中,用户已经预先指定第一面1208的移动应该拉伸第一对象1204而不是移动第一对象1204。在替代实施例中,用户可以指定第一面1208的移动应该移动第一对象1204,同时保持第一对象1204的形状。在动作1108,第一对象1204调整到第二对象1206。例如,在一个实施例中,第一面1208调整到垂直于第二面1210。在替代示例中,用户可以指定跳过动作1108和应该不调整第一对象1204。
图12B图示动作1108的执行之后的模拟环境1200。在图12B中被遮挡的第一面1208已经调整到垂直于第二面1210。在动作1110,用户指定第一对象1204和第二对象1206之间的关系。例如,用户可以指定如果移动第二对象1206,则第一对象1204应该拉伸,以使得维持第一对象1204和第二对象1206之间的连接。
替代地,用户可以指定如果移动第二对象1206,则第一对象1204应该与第二对象1206一起移动而不改变第一对象1204的形状。在其他的实施例中,用户可以不指定第一对象1204和第二对象1206之间的关系,且建模系统100将动态地确定第一对象1204和第二对象1206之间的关系。
图12C图示动作1110的执行之后的模拟环境1200,其中用户已经指定第一对象1204应该随着第二对象1206延伸。如图12C所示,第二对象1206已经移动,且第一对象1204已经随着第二对象1206拉伸,由此拉长第一对象1204。在动作1112,处理1100结束。
一般而言,存在在建模系统100中操作对象的两个不同的方法。在第一方法中,用户可以使用从由用户操作的控制器发出的指向器,远距离移动或者编辑对象。在用户使用控制器与建模系统100交互的情况下,可以实现第一方法。在第二方法中,用户可以通过向前移动并抓取对象或者对象特征以直接操纵来移动或者编辑对象,就好像直接将对象握持在用户的手中那样。在用户通过移动用户的手与建模系统100交互的情况下,在用户的手的移动由一个或多个相机或者传感器捕获的情况下,可以实现第二方法。
上面讨论的打击特征应用于对象操纵的第一方法和第二方法两者,但是在有些情况下,可以发生更高级的打击形式。例如,在用户以用户的手持有对象的情况下,可以发生更高级的打击形式。在该情况下,用户可以同时将两个对象打击在一起以使得对象连接,同时旋转持有的对象和可能地相对目标对象挤压持有的对象,由此导致持有的对象的变形。
当远距离操纵对象时也应用该变形,但是可能以更限制性的方式。建模系统100可以有效地转换打击和挤压手势和移动。例如,建模系统100可以配置为当用户到目前为止已经移动持有的对象通过目标对象时确定持有的对象完全原样地完全通过目标对象。
现在将根据实施例更详细地讨论预制库特征618。一般而言,预制库特征618向用户提供对预制的模型或者模型特征的库的访问。模型可以包括预制对象,范围从整个结构到房屋家具,且模型特征可以包括从其他对象衍生的特征,比如墙壁图案和/或纹理。特征的库可以分类为各种类别,例如包括住宅库、商业库、景观库,等等。
例如,建模住宅家庭的用户可能期望访问住宅模型的库。住宅模型可以包括预制的房屋模型、家具模型、灯具模型等。替代地,建模商业建筑的用户可能期望访问包括预制的办公建筑模型、商业设备模型、商业灯具模型等的模型的库。在另一示例中,建模住宅家庭或者商业建筑的用户可能期望访问景观模型的库。景观模型可以包括灌木丛模型、水体模型(例如,喷泉、人工或者自然的池塘和水池)、室外装饰等。
预制库特征618也可以提供可以应用于建模对象的衍生特征或者图案的库。例如,建模砖建筑的用户能够访问图案的库,并将砖图案应用于建筑模型。在一些实施例中,衍生特征的应用仅改变模型的外观。在其他实施例中,衍生特征的应用改变模型的外观以及模型的纹理。例如,在选择砖图案的情况下,单独地建模的砖可能从图案在其上出现的墙壁突出。
应当理解,虽然已经讨论了预制模型和模型特征的特定示例,但是可以提供任意数目和类型的模型和模型特征。在一些实施例中,用户可以在模型的库中保存生成的模型以用于将来使用。用户可以在私有库或者在公共库中保存生成的模型。例如,用户可以将生成的模型上载到其他用户可以访问和从其下载模型的公共库。用户又可以访问由其他用户生成的模型和模型特征的动态库并从其下载模型或者模型特征。此外,用户可以使用建模应用,使用系统创建她自己的预制模型的库,用于在建模应用内使用。
现在将更详细地讨论横切特征620。一般而言,横切特征620允许建模系统100的用户查看生成的模型的截面。在至少一个实施例中,建模系统100使用户能够以任何朝向创建建模的对象的截面。
在第一示例中,在用户利用手持控制器106的情况下,用户可以通过倾斜手持控制器106查看建模的对象的截面。在一些实施例中,用户可以请求选择对象以查看其截面。在其他实施例中,用户可以不请求选择对象,且倾斜手持控制器106可以生成所有建模对象的截面。
图13A图示根据实施例的模拟环境1300。模拟环境1300例如可以由建模系统100生成。模拟环境1300包括第一虚拟控制器1302、第一对象1304和第二对象1306。第一虚拟控制器1302是比如手持控制器106的控制器的虚拟表示。在一个实施例中,第一对象1304和第二对象1306是空心的,且用户希望查看第一对象1304和第二对象1306的截面。因此,用户可以倾斜手持控制器106以生成第一对象1304和第二对象1306的截面。
图13B图示根据实施例的、在倾斜手持控制器106之后的模拟环境1300。如图13B所示,显示第一对象1304和第二对象1306的截面,允许用户查看第一对象1304和第二对象1306的内部。用户可以临时锁定截面图,以使得维持截面图同时允许用户自由地移动手持控制器106。例如,用户可以启动与截面图锁定选择对应的致动器402之一。因此,用户能够在维持截面图的同时编辑第一对象1304和第二对象1306。
现在将更详细地描述多控制器建模特征622。一般而言,多控制器建模特征622允许建模系统100的一个或多个用户同时使用几个控制器与单个模拟环境交互。多个控制器可以由单个用户使用(例如,通过每只手持有一个控制器),由多个用户同时与建模系统100交互,或者两者的组合。例如,多个用户可以经由本地连接,或者经由远程网络连接(例如,经由因特网连接)与由建模系统100生成的模拟环境交互。
在一个示例中,用户可以使用两个控制器与模拟环境交互。继续上面相对于图13A和图13B讨论的示例,用户可以希望以第一控制器控制第一对象1304和第二对象1306的截面图,同时以第二控制器生成第一对象1304中的孔。
图13C图示根据实施例的与多个控制器交互的模拟环境1300。模拟环境包括表示比如手持控制器106的控制器的第二虚拟控制器1308。如图13C所示,第一虚拟控制器1302维持在倾斜位置以维持截面图,同时使用第二虚拟控制器1308以生成第一对象1304中的孔1310。
如上所述,建模系统100可以允许多个用户同时与比如模拟环境1300的单个模拟环境交互。例如,第一用户可以控制第一虚拟控制器1302,同时第二用户控制第二虚拟控制器1308。
在一些实施例中,最初生成模拟环境的用户可以控制其他用户的访问许可。例如,用户可以指定允许访问模拟环境的用户的“白名单”,或者可以使得模拟环境对所有用户全局地可访问。用户也可以实现附加安全性措施,例如包括如果用户活跃地与模拟环境交互,则其他用户可以仅访问模拟环境的规定。
现在将更详细地讨论实际物理行为建模特征624。一般而言,实际物理行为建模特征指的是在由建模系统100生成的模拟环境中建模的实际物理行为。建模的物理交互可能涉及任意数目的用户、对象、模拟环境等和其组合。
用户-对象交互的示例如上关于单个手势操作特征602所述。如上所述,由用户创建对象的动量可能影响对象的最终形状。因此,用户和对象之间的交互可以以实际动量效应建模。
用户-对象交互和对象-对象交互的示例包括用户、第一对象和第二对象。用户可以选择第一对象,通过以动量释放第一对象而将第一对象“扔”到第二对象之上。第一对象将按照重力的建模的效应下降并与第二对象碰撞。与第二对象的碰撞将类似地按照实际物理原理建模。
在替代实施例中,实际物理行为建模特征624可以被省略和替换为替代的物理规则的集合。例如,用户能够调整模拟环境中的重力或者动量的效应。
现在将更详细地讨论3D模型输出特征626。一般而言,3D模型输出特征626指的是建模系统100使用任何已知的数据通信的方式,将模拟环境中创建的模型输出到外部实体的能力,比如通过将编码模型的计算机可读文件传送到目的地。
例如,外部实体可以包括用户可以从其观看模型的外部监视器,或者能够打印虚拟模型的物理3D模型的3D打印机。3D打印机可以将物理3D模型打印为单个部分,或者打印为可以在打印之后组接的多个部分的集合。在第二实施例中,可以使用3D模型输出特征626,以将编码模型的文件例如经由因特网传送到另一用户。在其他示例中,建模系统100可以将表示模型的计算机可读数据输出到任何其他实体。
应当理解,已经描述了对于架构建模特别有益的完整建模系统。在一些实施例中,由建模系统建模的模拟环境中的对象表示为单独的3D多面体小单元。将对象表示为单独的实体而不是将对象“固化”到单个静态网格中,允许用户容易地修改预先生成的对象。另外,将对象表示为3D多面体单元在计算简单性上提供显著的优势,导致高质量的用户体验。
虽然比如遮蔽剔除的某些优化技术是相对于基于静态网格的系统已知的,但是建模系统100可操作以与动态的体积单元结合地执行某些或者全部特征600。建模系统100的某些实施例提供可以由用户直接操作的、包括以公共特征接合的单元的不规则体积单元网络。
图14图示形成可以配置为实现在这里公开的一个或多个方面的系统1400的计算组件的示例框图。例如,系统1400可以通信地耦合到系统控制器102或者包括在控制器102内。系统1400也可以配置为操作如上所述的双向转换器。
系统1400例如可以包括比如基于英特尔奔腾类型的处理器、摩托罗拉PowerPC、Sun UltraSPARC、德州仪器-DSP、惠普PA-RISC处理器或者任何其他类型的处理器的计算平台。系统1400可以包括专门编程的专用硬件,例如,专用集成电路(ASIC)。本公开的各个方面可以实现为在比如图14中示出的系统1400上执行的专用软件。
系统1400可以包括连接到一个或多个存储器装置1410,比如盘驱动器、内存、闪存或者用于存储数据的其他装置的处理器/ASIC 1406。内存1410可以用于存储在系统1400的操作期间的程序和数据。计算机系统1400的部件可以由互连机制1408耦合,互连机制1408可以包括一个或多个总线(例如,在同一机器内集成的部件)和/或网络(例如,在位于分开的机器上的部件之间)。互连机制1408使能在系统1400的部件之间交换通信(例如,数据,指令)。系统1400还包括一个或多个输入装置1404,其例如可以包括键盘或者触摸屏。系统1400包括一个或多个输出装置1402,其例如可以包括显示器。另外,除了互连机制1408之外或者作为互连机制1408的替代,计算机系统1400可以包括可以将计算机系统1400连接到通信网络的一个或多个接口(未示出)。
系统1400可以包括存储系统1412,存储系统1412可以包括计算机可读和/或可写的非易失介质,其中可以存储信号以提供要由处理器执行的程序或者提供要由程序处理的介质上或者介质中存储的信息。介质例如可以是盘或者闪存存储器,且在某些示例中可以包括RAM或者比如EEPROM的其他非易失性存储器。在一些实施例中,处理器可以使得数据从非易失介质读取到另一存储器1410中,该另一存储器1410允许比介质更快的由处理器/ASIC对信息的访问。该存储器1410可以是易失性的随机存取存储器,比如动态随机存取存储器(DRAM)或者静态存储器(SRAM)。其可以位于存储系统1412或者存储器系统1410中。处理器1406可以操作集成电路存储器1410内的数据且然后在完成处理之后复制数据到存储设备1412。对于管理存储设备1412和集成电路存储器元件1410之间的数据移动的各种机制是已知的,且本公开不限于此。本公开不限于特定的存储器系统1410或者存储系统1412。
系统1400可以包括可使用高级计算机程序设计语言编程的计算机平台。系统1400也可以使用专门编程的专用硬件,比如ASIC实现。系统1400可以包括处理器1406,处理器1406可以是市场上可买到的处理器,比如可从英特尔公司获得的公知的奔腾类处理器。许多其他处理器可用。处理器1406可以执行操作系统,操作系统例如可以是可从微软公司获得的Windows操作系统,可从苹果计算机获得的MAC OS系统X,可从Oracle获得的OracleSolaris操作系统,或者可从各种源获得的UNIX和/或LINUX。可以使用许多其他操作系统。
处理器和操作系统可以一起形成计算机平台,对于该计算机平台可以写入以高级编程语言的应用程序。应当理解,本公开不限于特定的计算机系统平台、处理器、操作系统或者网络。此外,对本领域技术人员应该很明显本公开不限于特定编程语言或者计算机系统。另外,应该理解也可以使用其他适当的编程语言及其他适当的计算机系统。
这样描述了本发明的至少一个实施例的几个方面,将认可各种改变、修改和改进是本领域技术人员容易想到的。这种改变、修改和改进意在作为本公开的一部分,其意在在本发明的精神和保护范围内。因此,前述描述和附图仅通过示例的方式。

Claims (20)

1.一种架构建模系统,所述系统包括:
输入控制器,配置为生成一个或多个输入信号;
显示器,包括显示屏幕;和
系统控制器,配置为耦合到输入控制器和显示器,所述系统控制器配置为:
生成三维模拟环境;
在显示屏幕上显示模拟环境的视场;
从输入控制器接收指示输入控制器的三维运动的一个或多个输入信号;
基于一个或多个输入信号生成表示为多面体体积对象的虚拟对象;和
在显示屏幕上的模拟环境的视场中显示虚拟对象。
2.如权利要求1所述的系统,其中,所述输入控制器包括一个或多个传感器和一个或多个致动器,且其中,所述输入控制器配置为:
以一个或多个致动器中的一个致动器检测该致动器的启动;
以一个或多个传感器检测输入控制器的单个连续运动;
响应于检测到致动器的启动和输入控制器的单个连续运动,生成对象生成信号;和
将对象生成信号传递到系统控制器,
其中,所述一个或多个输入信号包括对象生成信号。
3.如权利要求2所述的系统,其中,所述输入控制器进一步配置为:
以一个或多个传感器检测输入控制器的倾斜朝向;
响应于检测到输入控制器的倾斜朝向而生成控制器朝向信号;和
将控制器朝向信号提供给系统控制器,
其中,所述一个或多个输入信号包括控制器朝向信号。
4.如权利要求3所述的系统,其中,所述系统控制器配置为响应于接收到包括控制器朝向信号的一个或多个输入信号,生成虚拟对象的截面图。
5.如权利要求1所述的系统,进一步包括多个虚拟对象,其中,多个虚拟对象中的每个虚拟对象表示为多面体体积对象。
6.如权利要求5所述的系统,其中,所述虚拟对象包括第一特征和第二特征,且其中,所述系统控制器配置为基于虚拟对象的第二特征和多个虚拟对象中的至少一个第二虚拟对象的第三特征中的至少一个,来限制第一特征。
7.如权利要求5所述的系统,其中,所述多个虚拟对象包括第一虚拟对象和第二虚拟对象,且其中,所述系统控制器配置为响应于检测到第一虚拟对象和第二虚拟对象之间的冲突,来组合第一虚拟对象和第二虚拟对象。
8.如权利要求7所述的系统,其中,检测第一虚拟对象和第二虚拟对象之间的冲突包括检测第一虚拟对象和第二虚拟对象之间的重叠。
9.如权利要求1所述的系统,其中,所述系统控制器进一步配置为根据物理规律在三维模拟环境中建模物理交互。
10.如权利要求1所述的系统,其中,所述系统配置为耦合到三维打印机,且其中,所述系统配置为将编码虚拟对象的文件提供给三维打印机。
11.如权利要求1所述的系统,其中,所述系统控制器进一步配置为生成第二虚拟对象,和响应于接收到表示虚拟对象与第二虚拟对象的打击操作的一个或多个输入信号来组合虚拟对象与第二虚拟对象。
12.如权利要求1所述的系统,其中,所述系统控制器进一步配置为耦合到多个输入控制器。
13.一种建模架构对象的方法,所述方法包括:
生成三维模拟环境;
将指示模拟环境的视场的第一显示信号提供给显示器;
接收包括指示三维手势的信号的一个或多个输入信号;
基于一个或多个输入信号产生表示为多面体体积对象的虚拟对象;和
将指示包括虚拟对象的模拟环境的第二显示信号提供给显示器。
14.如权利要求13所述的方法,进一步包括:
接收包括指示输入控制器的倾斜朝向的信号的一个或多个输入信号;和
提供指示包括虚拟对象的截面的模拟环境的第三显示信号。
15.如权利要求13所述的方法,进一步包括生成表示为多面体体积对象的多个虚拟对象。
16.如权利要求13所述的方法,其中,所述虚拟对象是第一虚拟对象,且其中,所述方法进一步包括:
接收包括指示第一虚拟对象的运动和第一虚拟对象的形状改变之一的信号的一个或多个输入信号;
检测第一虚拟对象和第二虚拟对象之间的冲突;和
响应于冲突,相对于第二虚拟对象约束第一虚拟对象。
17.如权利要求13所述的方法,进一步包括根据物理规律在模拟环境中建模物理交互。
18.如权利要求13所述的方法,进一步包括将编码虚拟对象的文件传递到三维打印机。
19.如权利要求13所述的方法,进一步包括从多个输入控制器接收一个或多个输入信号。
20.一种存储用于优化由多个智能代理实现的控制方案的计算机可执行指令的序列的非瞬时计算机可读介质,所述计算机可执行指令的序列包括指示至少一个处理器执行以下操作的指令:
生成三维模拟环境;
将指示模拟环境的视场的第一显示信号提供给显示屏幕;
基于指示输入控制器的三维运动的一个或多个输入信号,生成表示为多面体体积对象的虚拟对象;和
将指示模拟环境的视场中的虚拟对象的第二显示信号提供给显示屏幕。
CN201880085545.3A 2017-11-13 2018-11-13 用于架构的虚拟/增强现实建模应用 Pending CN111566651A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201762585025P 2017-11-13 2017-11-13
US62/585,025 2017-11-13
PCT/IB2018/058929 WO2019092685A1 (en) 2017-11-13 2018-11-13 Virtual/augmented reality modeling application for architecture

Publications (1)

Publication Number Publication Date
CN111566651A true CN111566651A (zh) 2020-08-21

Family

ID=64607047

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880085545.3A Pending CN111566651A (zh) 2017-11-13 2018-11-13 用于架构的虚拟/增强现实建模应用

Country Status (4)

Country Link
US (2) US10754443B2 (zh)
EP (1) EP3710962A1 (zh)
CN (1) CN111566651A (zh)
WO (1) WO2019092685A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114840901A (zh) * 2022-05-20 2022-08-02 重庆宝图科技发展有限公司 一种基于ar的不动产测绘方法

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10930086B2 (en) 2016-11-01 2021-02-23 Dg Holdings, Inc. Comparative virtual asset adjustment systems and methods
US10453253B2 (en) * 2016-11-01 2019-10-22 Dg Holdings, Inc. Virtual asset map and index generation systems and methods
EP3846004A1 (en) * 2019-12-30 2021-07-07 Dassault Systèmes Selection of an edge with an immersive gesture in 3d modeling
EP3846003A1 (en) 2019-12-30 2021-07-07 Dassault Systèmes Selection of a face with an immersive gesture in 3d modeling
EP3846064A1 (en) 2019-12-30 2021-07-07 Dassault Systèmes Selection of a vertex with an immersive gesture in 3d modeling
CN111369424A (zh) * 2020-02-10 2020-07-03 北京城市网邻信息技术有限公司 生成目标房屋的三维空间的方法、装置、设备、存储介质
CN112784339B (zh) * 2021-01-22 2024-03-29 深圳国研建筑科技有限公司 一种基于bim的装配式方舱医院设计方法、系统、智能终端以及存储介质
KR20220152736A (ko) * 2021-05-10 2022-11-17 삼성전자주식회사 시청자 환경 기반 ar 서비스 제공 방법 및 장치
US20220410487A1 (en) * 2021-06-28 2022-12-29 International Business Machines Corporation 3d printing with virtual reality integration
CN113536442A (zh) * 2021-07-30 2021-10-22 新疆建筑科学研究院(有限责任公司) 一种模拟互层岩体数值模型的仿真方法、系统及处理终端
CN113760329A (zh) * 2021-08-11 2021-12-07 万翼科技有限公司 建筑模型更新方法及相关装置
CN113538686B (zh) * 2021-09-15 2021-12-17 深圳市华付信息技术有限公司 区域建筑物3d建模方法、装置、设备及存储介质
DE102022206395A1 (de) * 2022-06-24 2024-01-04 Siemens Aktiengesellschaft Verfahren zum Simulieren eines Raums als virtuelle Realität mittels einer Simulationsvorrichtung, Computerprogrammprodukt, computerlesbares Speichermedium sowie Simulationsvorrichtung
US20240281070A1 (en) * 2023-02-16 2024-08-22 Meta Platforms Technologies, Llc Simultaneous Controller and Touch Interactions

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104794752A (zh) * 2015-04-30 2015-07-22 山东大学 基于移动终端和全息展示的虚拟场景协同建模方法及系统
CN105913497A (zh) * 2016-05-27 2016-08-31 杭州映墨科技有限公司 用于虚拟看房的虚拟现实空间移动定位系统及方法
CN106200983A (zh) * 2016-07-25 2016-12-07 圣域科技(深圳)有限公司 一种结合虚拟现实与bim实现虚拟现实场景建筑设计的系统
CN106485780A (zh) * 2016-09-23 2017-03-08 青海中水数易信息科技有限责任公司 基于虚拟现实技术实现建筑信息模型体验的方法
US20170308626A1 (en) * 2014-10-15 2017-10-26 Dirtt Environmental Solutions, Inc. Virtual reality immersion with an architectural design software application

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070013724A1 (en) * 2005-07-13 2007-01-18 Swift Lawrence W Building of scaled physical models
US9030462B2 (en) * 2007-09-24 2015-05-12 Siemens Corporation Sketching three-dimensional(3D) physical simulations
JP5824537B2 (ja) * 2014-01-16 2015-11-25 キヤノン株式会社 情報処理装置および情報処理方法
US10444849B2 (en) * 2014-09-01 2019-10-15 Yinbo Li Multi-surface controller
JP6598617B2 (ja) * 2015-09-17 2019-10-30 キヤノン株式会社 情報処理装置、情報処理方法およびプログラム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170308626A1 (en) * 2014-10-15 2017-10-26 Dirtt Environmental Solutions, Inc. Virtual reality immersion with an architectural design software application
CN104794752A (zh) * 2015-04-30 2015-07-22 山东大学 基于移动终端和全息展示的虚拟场景协同建模方法及系统
CN105913497A (zh) * 2016-05-27 2016-08-31 杭州映墨科技有限公司 用于虚拟看房的虚拟现实空间移动定位系统及方法
CN106200983A (zh) * 2016-07-25 2016-12-07 圣域科技(深圳)有限公司 一种结合虚拟现实与bim实现虚拟现实场景建筑设计的系统
CN106485780A (zh) * 2016-09-23 2017-03-08 青海中水数易信息科技有限责任公司 基于虚拟现实技术实现建筑信息模型体验的方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
D. MENDES ET AL.: "Mid-Air Modeling with Boolean Operations in VR", 《2017 IEEE SYMPOSIUM ON 3D USER INTERFACES》 *
W. PIEKARSKI ET AL.: "Tinmith-Metro: New Outdoor Techniques for Creating City Models with an Augmented Reality Wearable Computer", 《PROCEEDINGS OF THE 5TH INTERNATIONAL SYMPOSIUM ON WEARABLE COMPUTERS》 *
大鱼用户5610680301: "Google推出VR虚拟现实3D模组工具《Blocks》VR应用", 《优酷视频》 *
肖立等: "虚拟现实技术及其在城市建设中的应用", 《武汉大学学报(工学版)》 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114840901A (zh) * 2022-05-20 2022-08-02 重庆宝图科技发展有限公司 一种基于ar的不动产测绘方法

Also Published As

Publication number Publication date
US20200333889A1 (en) 2020-10-22
EP3710962A1 (en) 2020-09-23
US20190146599A1 (en) 2019-05-16
US10754443B2 (en) 2020-08-25
US11287904B2 (en) 2022-03-29
WO2019092685A1 (en) 2019-05-16

Similar Documents

Publication Publication Date Title
CN111566651A (zh) 用于架构的虚拟/增强现实建模应用
US11494995B2 (en) Systems and methods for virtual and augmented reality
EP2187355B1 (en) System and method for dependency graph evaluation for animation
US20170287205A1 (en) Three-dimensional modelling with improved virtual reality experience
US5566280A (en) 3D dynamic image production system with automatic viewpoint setting
JP2021508869A (ja) 多段階ブロックメッシュ簡略化
US11514673B2 (en) Systems and methods for augmented reality
US11475647B2 (en) Augmenting a physical object with virtual components
KR101867991B1 (ko) 다관절 오브젝트의 모션 에디팅 방법 및 장치
US9754398B1 (en) Animation curve reduction for mobile application user interface objects
US20220398427A1 (en) Context-Based Social Agent Interaction
US11625900B2 (en) Broker for instancing
Zachmann VR-techniques for industrial applications
Braun et al. A customizable, multi-host simulation and visualization framework for robot applications
Fan et al. A Sketch-Based Interface for Collaborative Design.
Ehtemami et al. Overview of Visualizing Historical Architectural Knowledge through Virtual Reality
Ehtemami et al. Review of Visualizing Historical Architectural Knowledge through Virtual Reality
Fandáková et al. Improvements of computer assisted virtual environment (CAVE)
de Vries et al. Interactive 3D Modeling in the Inception Phase of Architectural Design.
Tuite et al. PointCraft: Harnessing Players' FPS Skills to Interactively Trace Point Clouds in 3D.
Balet et al. The VISIONS project
Anthes et al. Net’O’Drom–An Example for the Development of Networked Immersive VR Applications
Chatzitsakyris EventMode: a new computational design tool for integrating human activity data within the architectural design workflow
Pike et al. Implementing Material Changes in Augmented Environments
Carion et al. Virtual humans in Cyberdance

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination