CN108459704A - 用于三维数字内容的笔画操作预测 - Google Patents

用于三维数字内容的笔画操作预测 Download PDF

Info

Publication number
CN108459704A
CN108459704A CN201711388111.4A CN201711388111A CN108459704A CN 108459704 A CN108459704 A CN 108459704A CN 201711388111 A CN201711388111 A CN 201711388111A CN 108459704 A CN108459704 A CN 108459704A
Authority
CN
China
Prior art keywords
stroke
stroke operation
entering
prediction
digital content
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
CN201711388111.4A
Other languages
English (en)
Other versions
CN108459704B (zh
Inventor
吕婧琬
S·J·迪韦迪
B·金
邢俊
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.)
Adobe Inc
Original Assignee
Adobe Systems Inc
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 Adobe Systems Inc filed Critical Adobe Systems Inc
Publication of CN108459704A publication Critical patent/CN108459704A/zh
Application granted granted Critical
Publication of CN108459704B publication Critical patent/CN108459704B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/017Gesture based interaction, e.g. based on a set of recognized hand gestures
    • 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
    • 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/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
    • 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/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/20Drawing from basic elements, e.g. lines or circles
    • G06T11/203Drawing of straight lines or curves
    • 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/30Polynomial surface description
    • 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
    • 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
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/02Non-photorealistic rendering

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Graphics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Geometry (AREA)
  • Mathematical Analysis (AREA)
  • Algebra (AREA)
  • Architecture (AREA)
  • Processing Or Creating Images (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

本申请的各实施例涉及用于三维数字内容的笔画操作预测。描述了用于三维数字内容的笔画操作预测技术和系统。在一个示例中,接收笔画操作数据,其描述作为三维数字内容的一部分的、经由用户界面被输入的笔画操作。基于输入的笔画操作和用户界面中的至少一个其他笔画操作来生成定义三维数字内容内的闭合路径的循环。基于生成的循环来构建表面。至少部分地基于构建的表面来生成预测的笔画操作。在笔画操作数据被接收到时,预测的笔画操作然后作为三维数字内容的一部分在用户界面中被实时地输出。

Description

用于三维数字内容的笔画操作预测
技术领域
本申请的各实施例涉及用于三维数字内容的笔画操作预测。
背景技术
已经开发了用来扩展对数字内容的显示和交互的丰富性的技术。其示例包括虚拟现实和增强现实。在增强现实中,由计算设备创建三维数字内容以增强用户的对用户所处的物理环境的直接视野。换句话说,物理环境的这种直接视野不是作为增强现实环境的一部分而被重新创建,而是用户实际上“看到那里是什么”。三维数字内容因此被用来增强用户的对这一物理环境的视野,诸如以在物理桌面上玩虚拟块的建筑游戏。另一方面,在虚拟现实中,计算设备生成三维数字内容以重新创建用户的环境,从而使得物理环境对用户不可见。因此,在虚拟现实中,由计算设备虚拟地创建整个用户视野作为环境的一部分。
虽然虚拟和增强现实二者中的三维数字内容已经扩展了用户交互的丰富性,但是这些环境内的用来创建三维数字内容的沉浸式用户操纵仍然是一个挑战。例如,由于缺乏由传统AR环境和VR环境支持的触觉反馈和精确控制,包括详细的结构和形状的三维数字内容的绘制是具有挑战性的。因此,内容创建者通常被迫在这些环境之外操作以创建然后被配置为在这些环境中被消费的内容,诸如通过使用传统台式计算机的鼠标、键盘和触笔。
发明内容
描述了用于三维数字内容的笔画操作预测技术和系统。在这里描述的技术中,计算设备的3D绘图模块基于内容内的其他笔画操作来预测后续笔画操作乃至正被创建的3D数字内容的表面。3D绘图模块通过生成包括笔画操作输入和已经作为3D数字内容的一部分而被输入的其他现有笔画操作的循环(cycle)来这样做。循环基于各种约束而被生成,约束的示例包括笔画操作之间的距离(例如,时间和/或空间的)、方向(例如,笔画操作之间的转换方向的一致性)、被用于定义循环的输入笔画操作的量,等等。然后使用该循环来生成表面,该表面被用作生成预测的笔画操作的基础,该预测的笔画操作在用户界面中被输出为可选择用于被包括作为正被创建的3D数字内容的一部分。
以这种方式,3D绘图模块提高了用户与用户界面交互以创建3D数字内容的效率。附加地,如由3D绘图模块实现的在此描述的技术提供了许多技术优点,包括对计算设备的用来预测笔画操作的计算资源的有效使用的提高,其支持实时输出,这在使用传统技术的情况下是不可能的。
本发明内容以简化的形式引入了概念的集合,其在下面在具体实施方式中被进一步描述。这样,本发明内容既不旨在标识要求保护的主题的基本特征,也不旨在被用作确定要求保护的主题的范围的辅助。
附图说明
参照附图来描述具体实施方式。图中表示的实体可以指示一个或者多个实体,并且因此在讨论中可以可互换地引用单一或者复数形式的实体。
图1是如在此描述的、可操作以将笔画操作预测技术用于三维数字内容的示例实现方式中的环境的图示。
图2是将图1的计算设备更详细地示出为被配置用于渲染虚拟或者增强现实环境的示例实现方式中的数字介质环境的图示。
图3描绘了将3D绘图模块的操作更详细地示出为生成被用作用来构建表面的基础的循环的示例实现方式中的系统。
图4A至图4D描绘了如由图3的3D绘图模块执行的笔画操作美化的示例。
图5A和图5B描绘了由图3的3D绘图模块用作用来生成循环的基础的路径的示例实现方式。
图6A和图6B描绘了由图3的3D绘图模块为了生成循环而执行的路径构建的示例实现方式。
图7A和图7B描绘了由图3的3D绘图模块执行的被用来生成循环的循环选择的示例实现方式。
图8是描绘了示例实现方式中的过程的流程图,其中笔画操作预测基于从图4的系统的生成的循环构建的表面被生成。
图9描绘了示例实现方式中的系统,其中如在图3中被生成的表面被用来生成笔画操作预测以用于在用户界面中输出。
图10描绘了利用深度信息从3D生成的表面到二维中的投影的示例实现方式。
图11描绘了实时输出如由系统生成的预测笔画操作的示例实现方式。
图12示出了包括示例设备的各种组件的示例系统,其可以被实现为如参照图1至图11被描述和/或用来实现在此描述的技术的实施例的任何类型的计算设备。
具体实施方式
概述
由于能够支持输出增强现实环境和虚拟现实环境的计算设备的增加的可用性,三维(3D)数字内容的创建已经作为新的艺术形式而出现。其一个示例是3D绘图,它将通过笔画操作的画笔和颜料的表现力与雕塑和建筑的物理性和存在性结合。然而,由于绘制和填充形状的表面所涉及的大量的笔画操作,常规绘图和被用于通过与计算设备的交互来创建3D数字内容的其他技术通常被认为是乏味的。
附加地,由于作为向计算设备提供输入的一部分,缺乏用户所感觉到的精度,由计算设备采用的常规绘图技术也常常被认为是具有挑战性的。例如,与实体的笔和纸、用于雕刻物体的实体材料等相比,在计算设备的自然用户界面中“在空中进行绘制”的用户被提供有限的反馈。作为结果,用户可能觉得难以输入可重复的笔画操作,将笔画操作与其他笔画操作对齐,等等。因此,存在对使得创造性用户能够实现全方位的创造性表达并且提高作为3D数字内容创建的一部分的准确性和效率的技术和系统的需要。
描述了用于三维内容的笔画操作预测技术和系统。在在此描述的技术中,3D绘图模块使用笔画操作预测来支持交互式建模,以基于内容内的其他笔画操作来预测随后的笔画操作乃至正被创建的3D数字内容的表面。以这种方式,3D绘图模块提高了用户与用户界面交互以创建3D数字内容的效率。此外,在此被描述为由3D绘图模块实现的技术提供了许多技术优点,包括计算设备为了预测笔画操作而对计算资源的有效使用的增加,该增加支持预测的笔画操作的实时输出(例如,其中输入数据在几毫秒内被处理,从而使得其几乎立即可用作反馈),这在使用常规技术的情况下是不可能的。
为了这样做,在一个示例中,计算设备的3D绘图模块分析由输入笔画操作(即,正被绘制的笔画操作)的邻域中的现有笔画操作表现的结构,并且由此定义将被用作用来预测后续笔画操作(即,预测的笔画操作)的基础的表面。3D绘图模块通过例如使用树搜索技术生成包括输入笔画操作和内容中的另一笔画操作(现有的或者如在下面进一步描述的被构造的)的循环(例如,闭环)来确定该表面。
作为生成循环的一部分,3D绘图模块可以考虑各种约束,即,规则。由3D绘图模块使用的约束的第一示例包括确保输入笔画操作和现有笔画操作彼此在定义的距离内,并且因此具有定义单个平面的增大的可能。另一示例约束被用来确保输入笔画操作和现有笔画操作的指向性(例如,转向)(例如,使用各笔画操作的交叉点处的表面法线而被定义的方向)的一致性。在又示例中,3D绘图模块使用将用户界面中的如下现有笔画操作排除在考虑之外的约束:这些现有笔画操作循环回到现有笔画操作与输入笔画操作相交处的起点,即,在单个点处与输入笔画操作自相交。在再一个示例中,约束被用来定义将被用作生成的循环的一部分的输入笔画操作的最小量,诸如以确保输入笔画操作的足够代表性部分被使用。以这种方式,3D绘图模块可以实时地在用户界面内高效并且准确地定义被用来定义正在用户界面中被绘制的对象的表面的循环(例如,闭合路径),这在使用常规技术的情况下是不可能的。
在一种实施方式中,3D绘图模块被配置为构造一个或者多个笔画操作以自动地定义循环,而无需用户干预。这可以由3D绘图模块响应于如下确定来执行:正被创建的3D数字内容内的现有笔画操作(如果有的话)不足以定义受到上述约束的循环。例如,用户可以定义矩形的第一边和第二边。单是这两个边不足以定义循环。因此,3D绘图模块可以通过创建第三笔画操作和第四笔画操作来构造矩形的第三边和第四边,以至少部分地基于上述约束来生成循环(例如,矩形),并且由此自动地定义表面,而无需进一步的用户干预。构建的笔画操作可以或者可以不由3D绘图模块在用户界面中输出以用于用户查看。
表面一旦被3D绘图模块定义然后就被用作用来生成预测的笔画操作的基础。在一个示例中,相对于上述表面沿着法线方向(例如,垂直)生成3D预测的笔画操作。这通过首先基于以上生成的表面将输入笔画操作从三维投影到二维被完成。投影的结果是2D输入笔画操作和相对于表面的偏移,即,距表面的距离。2D输入笔画操作然后与用户界面中的存在的或者已经由模块构建的其他笔画操作一起被用作用来由3D绘图模块的笔画操作预测模块生成笔画操作预测的基础。各种技术可以被用来由笔画操作预测模块生成这一预测。预测生成技术的示例包括检测现有模式和重复,从而使得预测的笔画操作可以模仿或者补充(例如,镜像)用户界面中的现有笔画操作。2D笔画操作预测然后基于从表面的偏移被从二维投影到三维,以定义三维中的预测的笔画操作以用于在用户界面中相对于3D数字内容输出。
通过在此描述的技术和系统,当接收到定义输入笔画操作的样本的输入时,可以实时地生成预测的笔画操作。例如,笔画操作可以被定义为在用户界面中定义三维中的连续线的连续用户手势。因此,3D绘图模块可以在模块接收到笔画操作时从笔画操作生成样本,并且将上述技术实时地应用于样本,这在使用需要笔画操作的完整网络来定义表面的常规技术的情况下是不可能的。
预测的笔画操作可以按照各种方式被输出。例如,3D绘图模块可以显示单个预测的笔画操作,其在设置的时间量(例如,几秒)内用户可选择以使得该预测的笔画操作被包括作为3D数字内容的一部分,或者作为一个整体而定义表面的多个笔画操作的一部分,其也可选择来“填充”表面的其余部分,例如,作为使表面完整的格子。如果在设置的时间量内未选择预测的笔画操作,则预测的笔画操作的外观可能会由3D绘图模块使得从用户界面淡出。以这种方式,用户可以使用3D绘图模块来首先绘制高级结构,这些高级结构通过使用用户未手动输入的预测的笔画操作、由3D绘图模块“自动完成”。用户然后可以继续指定低级细节,诸如通过使用几个输入笔画操作来描绘毛发或者叶子,这些输入笔画操作然后被3D绘图模块用来以类似的方式自动填充3D数字内容的整个表面。对这些和其他示例的进一步描述被包括在下面的章节中并且在对应的附图中被示出。
在以下讨论中,描述了可以使用在此描述的技术的示例环境。还描述了可以在示例环境以及其他环境中被执行的示例过程。因此,示例过程的执行不限于示例环境,并且示例环境不限于示例过程的执行。
示例环境
图1描绘了被配置为支持用于三维数字内容的笔画操作预测技术的示例数字介质环境100。如这一示例中所图示的数字介质环境100包括计算设备102。计算设备102可以使用各种不同类型的计算设备按照各种配置被实现。
例如,计算设备可被配置为台式计算机、膝上型计算机、移动设备(例如,假设诸如平板计算机或者移动电话之类的手持式配置)、由用户佩戴作为护目镜或者其他眼镜,诸如此类。因此,计算设备的范围可以从具有大量存储器和处理器资源的全资源设备(例如,个人计算机、游戏控制台)到具有有限的存储器和/或处理资源的低资源设备(例如,移动设备)。附加地,虽然通过示例示出了单个计算设备,但是计算设备可以代表多个不同的设备,诸如如图12所描述的用来“在云之上”执行操作的多个服务器。
计算设备102还被图示为包括数字体验管理器模块104。数字体验管理器模块104至少部分地在计算设备102的硬件(例如,处理系统和计算机可读存储介质)中被实现,以管理3D数字内容106的生成、存储和提供,3D数字内容106被图示为被存储在存储装置108(例如,计算机可读存储介质、数据库系统和其他有形示例)中。例如,计算设备102可以接收3D数字内容106并将其渲染以用于用户观看,它的渲染的示例110被示出为城市的街景。计算设备102的用户然后可以与渲染的示例110交互,例如,以观看虚拟对象、收听虚拟对象、在虚拟对象之间导航乃至操作虚拟对象。
可用于交互和创建3D数字内容106的功能的示例被示出为3D绘图模块112。3D绘图模块112至少部分地在计算设备102的硬件中被实现,以创建、变换和/或渲染3D数字内容106。虽然3D绘图模块112的功能被示出为对计算设备102是本地的,但是该功能也可以使用其他计算设备来整体地或者部分地被实现,诸如如关于图12被进一步描述的“在云中”。
可用于交互和创建3D数字内容106的功能的一个示例是3D绘图,其将通过笔画操作的颜料和画笔的表现力与雕塑和建筑的物理性和存在相结合。如先前描述的,由于绘制和填充形状的表面所涉及的大量笔画操作,常规绘图和被用于通过与计算设备的交互来创建3D数字内容的其他技术通常被认为是乏味的。例如,常规技术要求用户手动指定渲染的示例110中的示出的笔画操作中的每个示出的笔画操作以形成表面并且手动“填充”表面中的每个表面。因此,关于用户输入以及检测用户输入和渲染这些单独笔画操作中的每个单独笔画操作所涉及的计算资源的消耗,传统技术都是效率低下的。
因此,3D绘图模块112被配置为基于已经被包括作为3D数字内容的一部分的现有笔画操作乃至如在下面进一步描述的由3D绘图模块本身构造的笔画操作来预测可能被期望作为3D绘图的一部分而被包括作为3D数字内容106的一部分的笔画操作。例如,3D绘图模块112可以监视并且分析由用户在过去输入的笔画操作,以便预测用户可能期望用于包括作为3D数字内容106的一部分的笔画操作。预测的笔画操作然后可以由3D绘图模块112输出作为可选择用于包括作为3D数字内容106的一部分的提示,或者可被忽略并且作为响应而由3D绘图模块112从用户界面中的显示自动移除。另外,3D绘图模块112在输入被从用户实时地接收时可以实时地生成并且输出预测的笔画操作,这在常规的技术和系统中是不可能的。与3D绘图模块112的用户交互可以按照各种方式被实现,诸如触摸屏计算机、移动设备、台式PC,或者甚至在增强或者虚拟现实环境中,其示例被描述如下并在对应附图中被示出。
图2是示例实现方式中的数字介质环境200的图示,其更详细地示出了图1的计算设备102。所图示的环境100包括如被配置用于在增强现实和/或虚拟现实场景中使用的、图1的计算设备102,其可以按照各种方式被配置。
计算设备102被图示为包括图1的数字体验管理器模块104。数字体验管理器模块104被配置为管理对3D数字内容106的创建、渲染和用户交互。3D数字内容106被图示为被保持在计算设备102的存储装置202(例如,数据库、计算机可读存储介质等)中。
计算设备102包括外壳204、一个或者多个传感器206和输出设备208,例如,显示设备、扬声器、触觉输出等。外壳204可以按照各种方式被配置以支持作为3D数字内容106的一部分的用户交互,即,由内容定义的增强或者虚拟现实环境。在一个示例中,外壳204被配置为被佩戴在用户210的头部上(即,是“头戴式”212),诸如通过配置作为护目镜、眼镜、隐形眼镜等。在另一示例中,外壳204呈现手持式214形状因素,诸如移动电话、平板计算机、便携式游戏设备等。在又一示例中,壳体204呈现被配置为由用户210佩戴的可佩戴216形状因素,诸如手表、胸针、吊坠或者戒指。还可以设想其他配置,诸如其中计算设备102被布置在远离用户210的物理环境中的配置,例如,作为“智能镜子”、壁挂式投影仪、电视机等。
传感器206也可以按照各种方式被配置以检测各种不同的条件。在一个示例中,传感器206被配置为诸如通过使用加速度计、磁力计、惯性设备、雷达设备等来检测计算设备102在三维空间中的朝向。在另一示例中,传感器206被配置为检测计算设备102所被布置于的物理环境的环境条件,诸如物体、到物体的距离、运动、颜色等。可以使用各种传感器配置,诸如相机、雷达设备、光检测传感器(例如,IR传感器和UV传感器)、飞行时间相机、结构化光栅阵列、大气压力、高度计、温度计、罗盘、地理定位系统(例如,GPS)等。在另一示例中,传感器206被配置为检测涉及用户210的环境条件,例如,心率、温度、运动和其他生物测定。
传感器206还可以检测非AR/VR场景中的输入。例如,可以支持任何3D绘图场景,其可以包括台式计算机监视器上的双手手势输入(例如,利用立体眼镜)、6D笔输入类型设备、平板计算机和手写笔输入等。
输出设备208也可以按照各种方式被配置以通过视觉、音频甚至触觉输出来支持虚拟或者增强现实环境。其示例包括在诸如相机或者平板计算机之类的移动设备上存在的典型显示设备、用于在头戴式显示器上使用的光场显示器(其中用户可以看透显示器的部分)、立体显示器、投影仪、电视(例如,以半圆形方式被布置的一系列弯曲的屏幕)等等。输出设备208的其它配置也可以被包括作为计算设备102的一部分,包括被配置为提供诸如触觉响应、音频声音等的用户反馈的设备。
外壳204、传感器206和输出设备208也可配置以支持体验交互模块116的不同类型的用户体验。在一个示例中,使用虚拟现实管理器模块218以支持虚拟现实。在虚拟现实中,用户被暴露于沉浸式环境,其可视部分完全由计算设备102生成。换句话说,用户210所看到和听到的所有事物都由输出设备208通过使用虚拟现实管理器模块218通过渲染3D数字内容106来呈现并且显示(例如,视觉和声音)。
例如,用户210可以创建不是“真的在那里”并且被显示以供用户在也完全是计算机生成的环境中观看的3D数字内容106(例如,虚拟砖块)。计算机生成的环境还可以包括在用户210的物理环境中被包括的物理对象的表示,例如,虚拟桌子,其被渲染以供用户210观看以模仿使用传感器206检测到的环境中的实际物理桌子。在这一虚拟桌子上,虚拟现实管理器模块218还可以将物理上不位于用户210的物理环境中的3D数字内容106(例如,虚拟砖块)布置为虚拟玩具组的一部分。以这种方式,虽然被呈现给用户210的整个显示是计算机生成的,但是虚拟现实管理器模块218可以在显示中表示物理对象以及虚拟对象。
数字体验管理器模块104还被图示为支持增强现实管理器模块220。在增强现实中,3D数字内容106被用于增强用户210的物理环境的直接视野。增强现实管理器模块220例如可以通过使用传感器206(例如,物体识别)来检测被布置在计算设备102的物理环境中的物理桌子的地标。基于这些地标,增强现实管理器模块220将3D数字内容106配置为在这一环境内被观看。
例如,用户210可以通过头戴式212护目镜来观看实际物理环境。头戴式212护目镜不像上面的VR场景中那样将物理环境的多个部分重新创建为虚拟表示,而是允许用户210在不重新创建环境的情况下直接观看物理环境。3D数字内容106然后被输出设备208显示为显现为被布置在该物理环境内。因此,在增强现实中,3D数字内容106增强了用户210在物理环境中“实际看到和听到”的内容。在以下讨论中,3D数字内容106在虚拟现实场景和增强现实场景二者中都可以由数字体验管理器模块104渲染。
通常,可以在本节中被描述的示例过程的上下文中使用关于上面和下面的示例而被描述的功能、特征和概念。另外,关于本文档中的不同附图和示例而被描述的功能、特征和概念可以彼此互换,并且不限于特定附图或者过程的上下文中的实现方式。另外,与不同的代表性过程和对应的附图相关联的块在此可以被一起应用和/或按照不同的方式组合。因此,关于不同的示例环境、设备、组件、附图和过程而被描述的单独的功能、特征和概念可以按照任何合适的组合倍使用,并且不限于由本说明书中的列举的示例表示的特定组合。
循环生成和表面构建
图3描绘了将3D绘图模块112的操作更详细地示出为生成被用作用来构建表面的基础的循环的示例实现方式中的系统300。该表面然后被3D绘图模块用作用来生成预测笔画的基础。图4A至图4B描绘了如由3D绘图模块112执行的笔画美化的示例实现方式400、420、440、460。图5A和图5B描绘了被用作用来由3D绘图模块112生成循环的基础的路径的示例实现方式500、550。图6A和图6B描绘了如由3D绘图模块112为了生成循环而执行的路径构建的示例600、650。图7A和图7B描绘了如由3D绘图模块112执行的被用于生成循环的循环选择的示例实现方式700、750。图8描绘了示例实施方式中的过程800,其中基于从图4的系统300的生成循环构建的表面来生成笔画预测。
以下讨论描述了可以利用所描述的系统和设备而被实现的技术。该过程的各个方面可以在硬件、固件或者软件或者它们组合中被实现。该过程被示出为一组框,该组框指定由一个或者多个设备执行的操作并且不一定限于所示出的用于执行各个框的操作的顺序。在以下讨论的各部分中,可以互换地引用图3至图8。
首先,3D绘图模块112使用笔画输入模块302来接收笔画操作数据304,笔画操作数据304描述作为三维数字内容的一部分的、经由用户界面的输入笔画操作(框802)。由笔画操作数据304定义的每个输入笔画操作涉及连续的用户手势,其被用于定义将作为3D数字内容106的一部分而被绘制的笔画的形状和长度。用户210例如可以与作为虚拟或者增强现实环境的一部分的自然用户界面交互,并且使用由传感器206检测到的手做出手势以形成笔画操作数据304。还设想了其他示例,诸如通过使用触摸屏功能、光标控制设备等。
笔画输入模块302被配置为对由笔画操作数据304定义的每个笔画操作“op”采样(例如,均匀地),以形成多个操作数据样本306,“s∈op”。操作数据样本中的每个操作数据样本“s”306包括记录在“s”处的位置和姿态的空间参数“p(s)”、外观参数“a(s)”310(例如,颜色、纹理、尺寸)以及包括针对笔画操作“op”内的相对位置的全局时间戳和样本标识符的时间参数“t(s)”。笔画输入模块302可以将样本标识符归一化为具有[0,1]之间的值,以定义样本相对于彼此的顺序,其中0和1分别表示笔画操作“op”的开始和结束位置。因此,笔画操作数据304中定义的每个笔画操作“op”都可以被定义为操作数据样本306的集合“{s}”,并且被表示如下:
u(s)=(p(s),a(s),t(s))
笔画操作数据304的操作数据样本306然后被笔画输入模块302提供给笔画美化模块314。笔画美化模块314被配置为转换笔画操作数据304的操作数据样本306以便增加如下可能性:笔画当被3D绘图模块112在用户界面中渲染时对用户而言在视觉上令人愉快。
如图4A的示例实现方式400中所示,例如,笔画美化模块314通过平滑技术(例如,B样条(B-spline)技术)来美化笔画输入402,以形成平滑的笔画输入404。在图4B的示例实现方式420中,笔画美化模块314通过闭合技术来美化笔画输入406以形成闭合的笔画输入408。这由笔画美化模块314响应于检测到笔画的终点彼此相距在如关于笔画输入406的总长度而被定义的阈值距离内来执行。
在图4C的示例实现方式440中,多个笔画输入410、412被笔画美化模块314美化。这通过当笔画美化模块314检测到笔画输入410、412的终点彼此相距在关于笔画输入410、412的总长度而被定义的阈值距离内时将笔画输入410、412的末端连接在一起来执行。
在图4D的示例实现方式460中,笔画美化模块314通过沿着笔画输入414的长度在交叉点处使笔画输入416的一端对齐来美化多个笔画输入414、416。笔画美化模块314例如可以检测笔画输入416的终点和笔画输入414的至少一部分的距离在阈值距离内。因此,笔画美化模块314可以使用各种技术来美化笔画输入,在不脱离本讨论的精神和范围的情况下还设想了它的其它示例。
再次回到图3,然后将笔画操作数据304(不论是否被美化)提供给表面建模模块316。表面建模模块316至少部分地在计算设备102的硬件中被实现,以对将被用作用来生成预测的笔画的基础的表面318建模。为此,表面建模模块316首先将每个样本“s”周围的邻域“n(s)”定义为空间和/或时间邻域内的一组操作数据样本306。邻域可被预先设置为在3D数字内容112的坐标空间内具有用户指定的大小,例如,被定义为用户界面内的大小。笔画操作“op”的邻域“n(op)”被定义为属于以下的邻域操作数据样本306的操作的并集:
表面建模模块316被配置为生成如由如下循环定义的表面318以创建3D数字内容106:该循环由单个笔画或者一系列笔画(例如,如由用户210作为笔画操作数据304输入的)形成。表面建模模块316还被配置为随着操作数据样本306被实时接收来递增地确定循环,这不同于基于最终3D曲线网络的形成来提取循环的常规技术。
通常,表面建模模块316被配置为标识由与输入笔画相交的笔画形成的路径,并且测量可以由输入笔画和相交笔画形成的每个闭合路径形成表面318的可能性。如果基于现有笔画未找到闭合路径,则表面建模模块316被配置为通过“完成”用户界面中的现有笔画来构建可以被用于形成闭合路径的笔画。然后由表面建模模块316为例如使用双线性内插来定义有效闭合路径的循环生成表面。
更详细地说,笔画操作数据304被提供给循环生成模块320。循环生成模块320被配置为自动地并且在没有用户干预的情况下基于输入笔画和用户界面中的至少一个其他笔画来生成候选循环322(框804),候选循环322定义三维数字内容内的闭合路径。作为其一部分,循环生成模块320可以使用例如将被用于定义对用来生成表面318的考虑而言有效的候选循环322的各种约束(例如,规则)。
在第一个这样的示例中,使用距离分析模块324来定义存在于3D数字内容106内的距输入笔画(例如,用户正在输入的笔画操作)在阈值距离内的笔画的邻域。阈值距离可以被单独定义或者是x、y或者z方向的组合。循环生成模块320然后标识可以使用输入笔画操作被形成的3D数字内容106中的路径。如图5A的示例实现方式500中所示,例如,输入笔画“op0”502被输入为包括第一现有笔画操作“op1”504、第二现有笔画操作“op2”506、第三现有笔画操作“op3”508和第四现有笔画操作“op4”510的3D绘图内容106的一部分。用户正在绘制的输入笔画操作“op0”502与3D绘图内容106中的现有笔画“op1”504和“op3”508相交。
每个路径“P={opi}(i=0,1,2,...)”从当前输入笔画操作“op0”502开始,并且对邻域内的下一个笔画操作(例如,“opi+1∈n(opi)”)执行交互式搜索。3D绘图内容106例如包括第一样本“s1”512、第二样本“s2”514、第三样本“s3”516、第四样本“s4”518、第五样本“s5”520和第六样本“s6”522。路径覆盖从样本的每个笔画操作“opi”(例如,对图5A中的虚线路径而言从第三样本“s3”516到第四样本“s4”518),其可以包括定义输入笔画操作“op0”502的末端的样本或者来自相邻笔画操作之间的交叉点的样本(例如,第四样本“s4”518)。特别地,如果输入笔画操作“op0”502形成闭合循环(例如,圆形),则从存在两条路径(顺时针和逆时针)。
循环生成模块320然后使用方向分析模块326来确保输入笔画操作和现有笔画操作的方向性(例如,转向)(例如,在各个笔画操作的交叉点处使用表面法线被定义的方向)的一致性。循环生成模块320例如可以确定在被用于形成该路径的笔画操作的交互处的方向(例如,交叉点处的顺时针或者逆时针转向)是否彼此一致。在一个示例中,对于每个交互样本转向可以由方向分析模块326经由以下表达式来确定:
其中“p(s)”是由笔画操作定义表达式定义的样本位置,并且是如图5B的示例实现方式550所示的归一化方向。如所示,将转向“D(s2)”552、“D(s4)”554、“D(s6)”556定义为用于路径上的对应交互的表面法线。具有一致转弯的闭合路径通过满足由方向分析模块326强制执行的方向性约束而被认为对于考虑作为定义表面有效。例如,包括“D(s2)”552和“D(s6)”556的闭合路径彼此一致,而“D(s4)”554不是。由于样本在所定义的样本的邻域内(例如,图5A中的“s3∈op1”和“s2∈op0”),因此方向性被定义为另外,方向“D(P)”被定义为路径“P”的平均转向。
再次回到图3,循环生成模块320还可以使用长度分析模块328,长度分析模块328实现用来定义将被用作所生成的循环的一部分的输入笔画操作的最小量的约束,诸如以确保输入笔画操作的足够代表性的部分被使用。可以以多种方式来定义该最小量,诸如基于时间参数312以使得已经使用了足够数量的操作数据样本306,基于用来定义输入笔画(例如,作为当前输入)的操作数据样本306的总数而将被包括的所定义的最小数量的操作数据样本306,比例等等。循环生成模块320也可以采用各种其他的约束,诸如以确保被用来定义循环的现有的或者构建的笔画操作不会循环回到现有的或者构建的笔画与输入笔画操作相交的起点,即,不与输入笔画操作形成自相交循环。
因此,循环生成模块320作为生成候选循环322的一部分来使用约束,从而使得笔画操作不被重复、转向在笔画操作之间是一致且连贯的(例如,)并且最小量的输入笔画操作被使用(例如,其中“t”是时间参数312,例如,时间戳)。在一个实现方式中,如果路径不满足这些约束中的每个约束,则该路径不被循环生成模块320视为候选循环322。
在一些情况中,循环生成模块320可能找不到满足上述约束中的每个的约束有效循环。在这样情况中,使用循环构建模块330来自动地且在没有用户干预的情况下构建可以被用来定义候选循环322的附加笔画操作。
在图6A的示例实现方式600中,3D数字内容106输入笔画操作“op0”602以及第一现有笔画操作“op1”604和第二现有笔画操作“op2”606。循环构建模块330首先搜索包含当前输入笔画操作“op0”602的最长未闭合路径。由于在前一节中找到的路径“{Pi}”中的每个路劲(例如,第一路径“P1”608、第二路径“P2”610和第三路径“P3”608)都从输入笔画操作“op0”602开始,因此循环构建模块330通过只要循环生成模块320的约束被满足就从“{Pi}”头对头地合并每对路径来获得候选路径(例如,第二路径“P2”610)。
如果最长路径包含至少三个笔画操作,则循环构建模块330构建笔画操作以连接两个未连接的末端以形成循环。它的一个示例在图6B的示例实现方式中通过在第一现有笔画操作“op1”604和第二现有笔画操作op2”606的暴露的末端添加构建的笔画操作“op3”652而被示出。例如,路径“P1”608包括作为输入笔画操作和现有笔画操作的笔画操作“op0”602、“op1”604,并且路径“P2”610包括作为输入笔画操作和现有笔画操作的笔画操作“op0”602、“op2”606。如果转向一致,则路径“P1”608“和“P2”610然后被循环构建模块330合并以形成路径“P3”612。然后通过构建如被示出为被布置在循环的相对侧的笔画操作(例如,这一示例中的输入笔画操作“op0”602)的变换的笔画操作“op3”652来使合并的路径“P3”612闭合。
循环构建模块330甚至可以构建多于一个笔画操作。例如,3D数字内容106可以包括输入笔画操作和单个现有笔画操作。作为响应,循环构建模块330构建两个笔画操作(例如,笔画操作“op2”606、“op3”652)以形成四边循环。在这样的情况中,如上所述,针对由循环生成模块320的其他模块强制执行的约束来验证笔画操作的构建。以这种方式,循环生成模块320在输入笔画操作被接收到时可以生成可用于定义表面的候选循环322,这在使用依赖于完整循环的常规技术的情况下是不可能的。
然后将候选循环322输出到循环选择模块332以从候选循环322选择将被用作用来生成表面318的基础的循环334。为此,循环选择模块322移除重叠的候选循环322。这可以通过从较小到较大分析候选循环322并且移除与现有循环重叠的那些循环被执行。
例如,对于每个笔画操作“op∈P”,循环选择模块332在每个样本“s∈op”处将表面方向“d(s)”定义为局部表面法线的估计。例如,图7A的样本“s1”702、“s2”704、“s3”706具有定义的表面方向“d(s1)”708、“d(s2)”710、“d(s1)”712。如果每个循环“P”覆盖来自样本“sin”到“sout”的输入笔画操作“op0”602,则两个循环“Pi”和“Pj”在如下情况下被认为是重叠的:
·(1)区域重叠;
·(2)重叠区域内的对应表面方向在阈值内(例如,“dpi(s)·dpj(s)>0.8”);并且
·(3)平均转向在阈值内(例如,“D(Pi)·D(Pj)>0.8”)。
它的一个示例在图7A和图7B的示例实现方式700、750中被图示。如先前描述,样本“s1”702、“s2”704、“s3”706已经定义了表面方向“d(s1)”708、“d(s2)”710、“d(s1)”712。特别地,相交样本的表面方向(例如,“d(s1)”708)是局部法线方向,并且经由线性插值来计算内表面方向(例如,“d(s2)”710)。如果两个候选循环(例如,P1 752、P2 754)具有重叠区域(例如,“[s1 702,s2 706]∈op0”),则重叠区域处的对应表面方向指示如被布置在三维空间中的循环表面的相对紧密度。循环选择模块322被配置为通过从较小到较大进行处理来从候选循环322生成选择的循环334。不从候选循环322选择具有与现有循环(例如,P2 754、P3756)重叠的区域和接近的表面方向的循环(例如,P1 752)以包括作为选择的循环334。
表面建模模块316然后使用表面构建模块336、基于所选择的循环334(即,在这一示例中由循环生成模块320和循环选择模块322生成的循环)来构建表面318(框806)。例如,表面构建模块336可以按照通常保留每个片内的样本方向的方式(即,片内的样本的表面方向通常彼此一致)将由所选择的循环334限定的路径分割成四片。这可以通过沿着路径均匀地初始化四个分割位置“{ai}”并且然后分别向该路径的具有更接近的相应方向的一侧动态地调整位置而被执行。如果对应的表面方向比片“[ai-1,ai]更接近片“[ai,ai+1]”的平均方向,则这可以通过增加的“ai”被执行。
网格顶点然后被表面构建模块336使用双线性插值计算如下:
其中“rx”和“ry”是“0”到“1”之间的两个标量比。为了保持网格顶点的连贯密度,表面构建模块336可被配置为分别针对“rx”和“ry”均匀地采样“W(S)=max(|a1-a0|,|a3-a2|)”和“H(S)-max(|a2-a1|,|a0+N-a3|)值。因此,表面318“S”由“W(S)*H(S)”打补丁“{Si,j},I-0,1,...,W(S)-1”和“j=0,1,...,H(S)-1”形成。
然后至少部分地基于构建的表面318来生成预测的笔画操作(框808),并且在笔画操作数据被接收到时将预测的笔画操作作为三维数字内容的一部分在用户界面中实时地输出(框810)。当输入笔画操作的操作数据样本306被接收到时,例如,表面建模模块可以生成循环并且根据这些循环生成表面以生成预测的笔画操作。可以使用各种技术来基于表面318来生成预测,它们中的一个示例被包括在下节中并且使用相应附图而被示出。
基于表面的笔画预测
图9描绘了示例实现方式中的系统900,其中如在图3中生成的表面318被用来生成预测的笔画操作以用于在用户界面中输出。图10描绘了利用深度信息来从3D生成的表面318向两维的投影的示例实现方式1000。图11描绘了由系统900实时生成的预测的笔画操作的输出的示例实现方式。
该示例中的3D绘图模块112包括绘图预测模块902,绘图预测模块902被配置为基于来自图3的笔画操作数据304和表面318来生成三维笔画操作预测904。在这一示例中,绘图预测模块902不是直接处理三维的每个3D笔画操作以生成3D笔画预测904,而是被配置为将每个笔画操作“op”投影到表面318上以便形成二维笔画操作投影。这一投影然后被用作为用来预测笔画操作的基础,然后被反投影到三维中作为3D笔画预测904。
例如,绘图预测模块902可以首先使用3D到2D投影模块906来针对笔画操作数据304中的笔画操作的每个操作数据样本306(例如,“s∈op”)、使用交互式技术来投影表面“S”318上的表面坐标。具体而言,3D到2D投影模块906从初始块“Si,j”(例如,“S”的中间块)开始,并且垂直地布置从相应样本的“p(s)”朝向初始块“Si,j”的平面的射线。如果交叉点位于初始块“Si,j”内,则该块被认为是最接近的补丁。否则,可以根据交叉点来找到下一个补丁,并且这一过程被迭代,直到3D到2D投影模块906达到目标块或者设置的迭代次数为止。
在标识出目标块“Si,j”之后,如图10的示例实现方式1000中所示,根据其交叉点来计算样本“s”的表面坐标。示出了关于所生成的表面118和该表面的补丁1004的笔画操作1002。每个样本“s∈op”被投影到表面“S”118上的最近的补丁(例如,补丁1004),并且基于交叉点和相应深度信息1008而被表示为表面坐标1006。
然后将2D笔画操作投影908和深度信息910提供给笔画预测模块912。笔画预测模块912的操作的示例在图11的示例实现方式1100中被示出。笔画预测模块912接收过去的笔画操作1102作为输入,其可以在3D数字内容106或者另一项数字内容的内部产生。针对3D数字内容106而被图示的实线指示对应的笔画操作的最近输入样本,并且被笔画预测模块112用来找到类似地绘制的笔画(例如,相似的形状和轮廓)。
这一相似性然后被用来生成用户接下来可能输入的内容的二维笔画预测914。圆圈指示在过去的笔画操作1102和3D数字内容106之间被用作用于预测的基础的对应的邻域。预测技术的另外示例可以在下处被找到:Jun Xing、Hsiang-Ting Chen和Li-Yi Wei的“Autocomplete Painting Repetitions”,ACM Trans.Graph.34,6(10月),169:1-169:11,其全部内容通过引用被并入于此。
2D笔画预测914和深度信息916然后被2D到3D投影模块918使用,以通过使用深度信息916对2D笔画预测214反投影来生成3D笔画预测904。3D笔画预测904然后被提供给用户界面模块920以用于作为用户界面的一部分渲染。
例如,用户界面模块920可以输出单个预测的笔画,它的显示被配置为如果未被用户选择则“随时间消逝”。在另一示例中,3D笔画预测904可以被包括作为预测的一部分以“填充”整个表面318,例如,作为重复观察到的图案的网格。在不脱离上述讨论的精神和范围的情况下,还设想了各种其他示例。
示例系统和设备
图12在1200处总体地示出了示例系统,其包括示例计算设备1202,示例计算设备1202代表可以实现在此描述的各种技术的一个或者多个计算系统和/或设备。这通过包括3D绘图模块112被例示。计算设备1202可以例如是服务提供商的服务器、与客户端相关联的设备(例如,客户端设备)、片上系统,和/或任何其他合适的计算设备或者计算系统。
如图所示的示例计算设备1202包括彼此通信地被耦合的处理系统1204、一个或者多个计算机可读介质1206和一个或者多个I/O接口1208。尽管未被示出,但是计算设备1202还可以包括使各种组件相互耦合的系统总线或者其他数据和命令传输系统。系统总线可以包括不同总线结构中的任何一个或者组合,诸如存储器总线或者存储器控制器、外围总线、通用串行总线和/或利用各种总线架构中的任一个的处理器或者本地总线。也设想了各种其他示例,诸如控制和数据线。
处理系统1204表示使用硬件来执行一个或者多个操作的功能。因此,处理系统1204被例示为包括可以被配置为处理器、功能块等的硬件元件1210。这可以包括作为专用集成电路或者使用一个或者多个半导体被形成的其他逻辑器件的硬件中的实现方式。硬件元件1210不受其构成材料或者其中使用的处理机制的限制。例如,处理器可以由一个或者多个半导体和/或晶体管(例如,电子集成电路(IC))组成。在这种环境下,处理器可执行的指令可以是电子可执行的指令。
计算机可读存储介质1206被例示为包括存储器/存储装置1212。存储器/存储装置1212表示与一个或者多个计算机可读介质相关联的存储器/存储装置容量。存储器/存储组件1212可以包括易失性介质(诸如随机存取存储器(RAM))和/或非易失性介质(诸如只读存储器(ROM)、闪存、光盘、磁盘等)。存储器/存储组件1212可以包括固定介质(例如,RAM、ROM、固定硬盘驱动器等)以及可移除介质(例如,闪存、可移除硬驱动、光盘等)。计算机可读介质1206可以按照如在下面被进一步描述的各种其他方式被配置。
一个或者多个输入/输出接口1208表示允许用户向计算设备1202录入命令和信息并且还允许使用各种输入/输出设备将信息呈现给用户和/或其他组件或者设备的功能。输入设备的示例包括键盘、光标控制设备(例如,鼠标)、麦克风、扫描仪、触摸功能(例如,被配置为检测物理触摸的电容式或者其他传感器)、相机(例如,其可以使用诸如红外频率之类的可见或者不可见的波长来将移动识别为不涉及触摸的手势)等。输出设备的示例包括显示设备(例如,监视器或者投影仪)、扬声器、打印机、网卡、触觉响应设备等。因此,可以按照如在下面被进一步描述的各种方式来配置计算设备1202以支持用户交互。
在此可以在软件、硬件元件或者程序模块的一般上下文中描述各种技术。通常,这样的模块包括执行特定任务或者实现特定抽象数据类型的例程、程序、对象、元件、组件、数据结构等。如在此使用的术语“模块”、“功能”和“组件”通常表示软件、固件、硬件或者它们的组合。在此描述的技术的特征是独立于平台的,意味着可以在具有各种处理器的各种商业计算平台上实现技术。
所描述的模块和技术的实现方式可以被存储在某种形式的计算机可读介质上或者跨某种形式的计算机可读介质被传输。计算机可读介质可以包括可以被计算设备1202访问的各种介质。作为示例而非限制,计算机可读介质可以包括“计算机可读存储介质”和“计算机可读信号介质”。
“计算机可读存储介质”可以是指与单纯的信号传输、载波或者信号本身相比实现信息的持久和/或非暂时性存储的介质和/或设备。因此,计算机可读存储介质是指非信号承载介质。计算机可读存储介质包括在适合于存储诸如计算机可读指令、数据结构、程序模块、逻辑元件/电路或者其他数据之类的信息的方法或者技术中被实现的诸如易失性和非易失性、可移除和不可移除介质和/或存储设备之类的硬件。计算机可读存储介质的示例可以包括但不限于RAM、ROM、EEPROM、闪存或者其它存储器技术、CD-ROM、数字多功能盘(DVD)或者其他光存储装置、硬盘、磁带盒、磁带、磁盘存储装置或者其他磁存储设备或者其他存储设备、有形介质或者适于存储期望信息并可由计算机访问的制品。
“计算机可读信号介质”可以是指被配置为诸如经由网络将指令传输给计算设备1202的硬件的信号承载介质。信号介质通常可以在诸如载波、数据信号或者其他传输机制之类的调制数据信号中体现计算机可读指令、数据结构、程序模块或者其它数据。信号介质也包括任何信息递送介质。术语“调制的数据信号”是指使得它的特性中的一个或者多个特征按照在信号中对信息编码的方式而被设置或者改变的信号。作为示例而非限制,通信介质包括诸如有线网络或者直连连接之类的有线介质,以及诸如声学、RF、红外线和其它无线介质之类的无线介质。
如先前描述的,硬件元件1210和计算机可读介质1206代表在硬件形式中被实现的模块、可编程器件逻辑和/或固定器件逻辑,其可以在一些实施例中被用来实现在此描述的技术的至少一些方面,诸如执行一个或者多个指令。硬件可以包括集成电路或者片上系统的组件、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、复杂可编程逻辑器件(CPLD),以及硅或者其他硬件中的其他实现方式。在这种环境下,硬件可以作为执行由指令定义的程序任务和/或由硬件具体化的逻辑的处理设备以及用于存储供执行的指令的硬件(例如,先前描述的计算机可读存储介质)来操作。
前述的组合也可以用于实现在此描述的各种技术。因此,软件、硬件或者可执行模块可以被实现为在某种形式的计算机可读存储介质上体现的一个或者多个指令和/或逻辑和/或由一个或者多个硬件元件1210实现。计算设备1202可以被配置为实现对应于软件和/或硬件模块的特定指令和/或功能。因此,例如通过使用计算机可读存储介质和/或处理系统1204的硬件元件1210,可以至少部分地在硬件中实现由计算设备1202作为软件可执行的模块。指令和/或功能由一个或者多个制品(例如,一个或者多个计算设备1202和/或处理系统1204)可执行/可操作,以实现在此描述的技术、模块和示例。
在此描述的技术可以由计算设备1202的各种配置支持,并且不限于在此描述的技术的具体示例。这一功能还可以全部或者部分地通过使用分布式系统被实现,诸如通过如下所述的平台1216在“云”1214之上被实现。
云1214包括和/或代表用于资源1218的平台1216。平台1216将云1214的硬件(例如,服务器)和软件资源的底层功能抽象化。资源1218可以包括当在远离计算设备1202的服务器上执行计算机处理时可以被使用的应用程序和/或数据。资源1218还可以包括通过因特网和/或通过订户网络(诸如蜂窝或者Wi-Fi网络)被提供的服务。
平台1216可以将用来将计算设备1202与其他计算设备连接的资源和功能抽象化。平台1216还可以用来将资源的缩放抽象化,以向针对经由平台1216被实现的资源1218的遇到的需求提供对应的缩放水平。因此,在互连的设备实施例中,在此描述的功能的实现可以遍布系统1200。例如,功能可以部分地在计算设备1202上被实现以及经由将云1214的功能抽象化的平台1216被实现。
结论
虽然已经在特定于结构特征和/或方法动作的语言中描述了本发明,但是将会理解,在所附权利要求中限定的本发明并不必然限于所描述的具体特征或者动作。相反,具体特征和动作被公开作为实现所要求保护的发明的示例形式。

Claims (20)

1.在用来生成三维数字内容的数字介质环境中,一种由至少一个计算设备实现的方法,所述方法包括:
由所述至少一个计算设备接收笔画操作数据,所述笔画操作数据描述作为所述三维数字内容的一部分的、经由用户界面的输入笔画操作;
由所述至少一个计算设备基于所述输入笔画操作和所述用户界面中的至少一个其他笔画操作来生成循环,所述循环定义所述三维数字内容内的闭合路径;
由所述至少一个计算设备基于生成的所述循环来构建表面;
由所述至少一个计算设备至少部分地基于构建的所述表面来生成预测的笔画操作;以及
由所述至少一个计算设备在所述笔画操作数据被接收到时,在所述用户界面上实时地输出作为所述三维数字内容的一部分的所述预测的笔画操作。
2.根据权利要求1所述的方法,其中:
所述笔画操作数据描述被形成为多个操作数据样本的连续用户手势;并且
在所述多个操作数据样本被接收到时,所述循环的所述生成、所述构建、所述预测的笔画操作的所述生成和所述输出被实时地执行。
3.根据权利要求2所述的方法,其中每个所述操作数据样本包括空间参数、外观参数和时间参数。
4.根据权利要求1所述的方法,其中所述生成基于所述输入笔画操作和被用来从所述用户界面中的多个其他所述笔画操作选择所述用户界面中的所述至少一个其他笔画操作的至少一种约束被执行。
5.根据权利要求1所述的方法,其中所述生成基于所述输入笔画操作和被用来标识所述用户界面中的所述至少一个其他笔画操作的至少一种约束被执行,所述至少一种约束定义所述输入笔画操作与所述三维数字内容内的所述至少一个其他笔画操作之间的阈值空间或者时间距离。
6.根据权利要求1所述的方法,其中所述生成基于所述输入笔画操作和被用来标识所述用户界面中的所述至少一个其他笔画操作的至少一种约束被执行,所述至少一种约束定义在所述输入笔画操作与所述三维数字内容内的所述至少一个其他笔画操作之间被定义的方向。
7.根据权利要求5所述的方法,其中所述方向通过所述输入笔画操作的表面法线到所述至少一个其他笔画操作的表面法线的关系被定义。
8.根据权利要求1所述的方法,其中所述生成基于所述输入笔画操作和被用来标识所述用户界面中的所述至少一个其他笔画操作的至少一种约束被执行,所述至少一种约束定义将被用作如在所述输入笔画操作与所述三维数字内容内的所述至少一个其他笔画操作之间被定义的生成的所述循环的一部分的所述输入笔画操作的最小量。
9.根据权利要求1所述的方法,其中所述生成基于所述输入笔画操作和被用来标识所述用户界面中的所述至少一个其他笔画操作的至少一种约束被执行,所述至少一种约束指定所述至少一个其他笔画操作不循环回到所述至少一个其他笔画操作与所述输入笔画操作相交的起点。
10.根据权利要求1所述的方法,其中所述生成包括自动地且在没有用户干预的情况下构建所述至少一个其他笔画操作以形成所述循环,所述至少一个其他笔画操作在所述构建之前未被包括在所述用户界面中。
11.根据权利要求1所述的方法,其中所述生成包括基于所述输入笔画操作生成多个候选循环以及从所述多个候选循环选择至少一个循环。
12.根据权利要求1所述的方法,其中所述表面的所述构建包括使用双线性插值、基于所述循环来生成所述表面的网格顶点。
13.根据权利要求1所述的方法,其中所述预测的笔画操作的所述生成包括:
基于所述表面和定义二维笔画操作投影到所述表面的距离的深度信息来将所述笔画操作数据投影到所述二维笔画操作投影中;
基于所述二维笔画操作投影来计算二维笔画操作预测;以及
基于到所述表面的所述距离来将所述二维笔画操作投影投影到三维中以生成所述预测的笔画操作。
14.根据权利要求1所述的方法,其中所述预测的笔画操作的所述生成是基于由所述用户界面中的现有笔画操作表现的高级结构,被用于填充所述表面,或者被配置为模仿存在于所述用户界面中的至少一个其他笔画操作。
15.根据权利要求1所述的方法,其中所述预测的笔画操作的所述输出是经由所述用户界面而用户可选择的,以用于作为所述三维内容的一部分而被包括。
16.根据权利要求15所述的方法,其中所述预测的笔画操作的所述输出被配置为如果在阈值时间量内未接收到用户选择则停止。
17.在用来生成三维数字内容的数字介质环境中,一种系统,包括:
循环生成模块,其至少部分地在计算设备的硬件中被实现,以基于输入笔画操作、用户界面中的至少一个其他笔画操作和至少一种约束来生成循环,所述循环定义所述三维数字内容内的闭合路径;
表面构建模块,其至少部分地在所述计算设备的硬件中被实现,以基于生成的所述循环来构建表面;以及
笔画预测模块,其至少部分地在所述计算设备的硬件中被实现,以至少部分地基于构建的所述表面来生成预测的笔画操作。
18.根据权利要求17所述的系统,其中所述至少一种约束定义:
所述输入笔画操作与所述三维数字内容内的所述至少一个其他笔画操作之间的阈值时间或者空间距离;
所述输入笔画操作与所述三维数字内容内的所述至少一个其他笔画操作之间的方向;或者
将被用作如在所述输入笔画操作与所述三维数字内容内的所述至少一个其他笔画操作之间被定义的生成的所述循环的一部分的所述输入笔画操作的最小量。
19.在用来生成三维数字内容的数字介质环境中,一种系统,包括:
用于在被用来生成所述三维数字内容的用户界面中,基于至少一种约束、输入笔画操作和至少一个其他笔画操作来生成定义所述三维数字内容内的闭合路径的循环的装置;
用于基于生成的所述循环来构建表面的装置;以及
用于至少部分地基于构建的所述表面来生成预测的笔画操作的装置。
20.根据权利要求19所述的系统,其中所述至少一种约束定义:
所述输入笔画操作与所述三维数字内容内的所述至少一个其他笔画操作之间的阈值时间或者空间距离;
所述输入笔画操作与所述三维数字内容内的所述至少一个其他笔画操作之间的方向;或者
将被用作如在所述输入笔画操作与所述三维数字内容内的所述至少一个其他笔画操作之间被定义的生成的所述循环的一部分的所述输入笔画操作的最小量。
CN201711388111.4A 2017-02-21 2017-12-20 用于三维数字内容的笔画操作预测 Active CN108459704B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/438,276 US10627910B2 (en) 2017-02-21 2017-02-21 Stroke operation prediction for three-dimensional digital content
US15/438,276 2017-02-21

Publications (2)

Publication Number Publication Date
CN108459704A true CN108459704A (zh) 2018-08-28
CN108459704B CN108459704B (zh) 2024-03-22

Family

ID=61009098

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711388111.4A Active CN108459704B (zh) 2017-02-21 2017-12-20 用于三维数字内容的笔画操作预测

Country Status (5)

Country Link
US (2) US10627910B2 (zh)
CN (1) CN108459704B (zh)
AU (1) AU2017272304B2 (zh)
DE (1) DE102017011422A1 (zh)
GB (1) GB2559850B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111083391A (zh) * 2018-10-19 2020-04-28 舜宇光学(浙江)研究院有限公司 虚实融合系统及其方法
CN114115528A (zh) * 2021-11-02 2022-03-01 深圳市雷鸟网络传媒有限公司 虚拟对象控制方法、装置、计算机设备和存储介质

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10627910B2 (en) 2017-02-21 2020-04-21 Adobe Inc. Stroke operation prediction for three-dimensional digital content
US10657682B2 (en) 2017-04-12 2020-05-19 Adobe Inc. Drawing curves in space guided by 3-D objects
US11733781B2 (en) * 2019-04-02 2023-08-22 Project Dasein Llc Leveraging machine learning and fractal analysis for classifying motion
KR102149105B1 (ko) * 2019-09-18 2020-08-27 세종대학교산학협력단 혼합현실 기반 3차원 스케치 장치 및 방법
US11107279B1 (en) * 2020-03-27 2021-08-31 Snap Inc. 3D paint effects in a messaging system

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100194694A1 (en) * 2009-01-30 2010-08-05 Nokia Corporation Method and Apparatus for Continuous Stroke Input
CN102243570A (zh) * 2010-05-13 2011-11-16 微差通信公司 用于重叠式书写的方法和装置
US20130016914A1 (en) * 2011-07-11 2013-01-17 Brigham Young University Word warping for offline handwriting recognition
US20130127836A1 (en) * 2011-05-27 2013-05-23 Pushkar P. Joshi Methods and Apparatus for Three-Dimensional (3D) Sketching
CN104111750A (zh) * 2013-04-04 2014-10-22 迪欧泰克有限责任公司 用于编辑墨文本数据的装置及方法

Family Cites Families (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7079139B2 (en) 2001-07-02 2006-07-18 Kaon Interactive, Inc. Method and system for measuring an item depicted in an image
US20060085170A1 (en) * 2004-08-11 2006-04-20 Glaser Daniel C Method and apparatus for modeling and analyzing light
US7586490B2 (en) 2004-10-20 2009-09-08 Siemens Aktiengesellschaft Systems and methods for three-dimensional sketching
US7362325B2 (en) 2004-12-21 2008-04-22 Qualcomm Incorporated 2D/3D line rendering using 3D rasterization algorithms
WO2006086504A2 (en) * 2005-02-09 2006-08-17 Alfred E. Mann Institute For Biomedical Engineering At The University Of Southern California Method and system for training adaptive control of limb movement
CA2543980A1 (en) * 2005-04-18 2006-10-18 Steve Tsang Method, system and computer program for using a suggestive modeling interface
KR100722229B1 (ko) * 2005-12-02 2007-05-29 한국전자통신연구원 사용자 중심형 인터페이스를 위한 가상현실 상호작용 인체모델 즉석 생성/제어 장치 및 방법
WO2007090100A2 (en) 2006-01-27 2007-08-09 Auryn Inc. Constraint-based ordering for temporal coherence of stroke-based animation
US20080036771A1 (en) * 2006-02-21 2008-02-14 Seok-Hyung Bae Pen-based drawing system
US8259101B2 (en) 2006-06-07 2012-09-04 Carnegie Mellon University Sketch-based design system, apparatus, and method for the construction and modification of three-dimensional geometry
US8502821B2 (en) 2008-02-04 2013-08-06 C Speed, Llc System for three-dimensional rendering of electrical test and measurement signals
CN101667092A (zh) * 2008-05-15 2010-03-10 杭州惠道科技有限公司 实时预测用户输入的人机界面
US8514251B2 (en) * 2008-06-23 2013-08-20 Qualcomm Incorporated Enhanced character input using recognized gestures
WO2010011923A1 (en) * 2008-07-24 2010-01-28 Gesturetek, Inc. Enhanced detection of circular engagement gesture
US20100199226A1 (en) * 2009-01-30 2010-08-05 Nokia Corporation Method and Apparatus for Determining Input Information from a Continuous Stroke Input
JP5127775B2 (ja) * 2009-05-15 2013-01-23 株式会社リコー 情報処理装置、レーザ照射装置、制御システム、描画情報記憶装置
US8452087B2 (en) * 2009-09-30 2013-05-28 Microsoft Corporation Image selection techniques
US8669995B2 (en) * 2010-10-08 2014-03-11 Adobe Systems Incorporated Methods and apparatus for stroke grouping for high-level sketch editing
WO2012075565A1 (en) * 2010-12-06 2012-06-14 Smart Technologies Ulc Annotation method and system for conferencing
US8769409B2 (en) * 2011-05-27 2014-07-01 Cyberlink Corp. Systems and methods for improving object detection
US9153062B2 (en) * 2012-02-29 2015-10-06 Yale University Systems and methods for sketching and imaging
JP5897725B2 (ja) * 2012-10-03 2016-03-30 楽天株式会社 ユーザインタフェース装置、ユーザインタフェース方法、プログラム及びコンピュータ可読情報記憶媒体
WO2014106823A2 (en) * 2013-01-03 2014-07-10 Meta Company Extramissive spatial imaging digital eye glass apparatuses, methods and systems for virtual or augmediated vision, manipulation, creation, or interaction with objects, materials, or other entities
JP2014154021A (ja) * 2013-02-12 2014-08-25 Seiko Epson Corp 表示装置及び表示方法
US9274607B2 (en) * 2013-03-15 2016-03-01 Bruno Delean Authenticating a user using hand gesture
US9183635B2 (en) 2013-05-20 2015-11-10 Mitsubishi Electric Research Laboratories, Inc. Method for reconstructing 3D lines from 2D lines in an image
US20140365878A1 (en) * 2013-06-10 2014-12-11 Microsoft Corporation Shape writing ink trace prediction
US9857876B2 (en) * 2013-07-22 2018-01-02 Leap Motion, Inc. Non-linear motion capture using Frenet-Serret frames
CN106170748B (zh) * 2013-11-19 2019-02-22 株式会社和冠 用于墨水数据生成、墨水数据呈现、墨水数据操纵以及墨水数据通信的方法和系统
US9891712B2 (en) * 2013-12-16 2018-02-13 Leap Motion, Inc. User-defined virtual interaction space and manipulation of virtual cameras with vectors
US9881224B2 (en) * 2013-12-17 2018-01-30 Microsoft Technology Licensing, Llc User interface for overlapping handwritten text input
US9508166B2 (en) * 2014-09-15 2016-11-29 Microsoft Technology Licensing, Llc Smoothing and GPU-enabled rendering of digital ink
US10338725B2 (en) * 2014-09-29 2019-07-02 Microsoft Technology Licensing, Llc Wet ink predictor
US9824498B2 (en) * 2014-12-30 2017-11-21 Sony Interactive Entertainment Inc. Scanning display system in head-mounted display for virtual reality
US10089790B2 (en) * 2015-06-30 2018-10-02 Ariadne's Thread (Usa), Inc. Predictive virtual reality display system with post rendering correction
US9934566B2 (en) 2015-07-14 2018-04-03 Siemens Healthcare Gmbh 3-D vessel tree surface reconstruction method
US20170017323A1 (en) * 2015-07-17 2017-01-19 Osterhout Group, Inc. External user interface for head worn computing
KR102413074B1 (ko) * 2015-09-21 2022-06-24 삼성전자주식회사 사용자 단말, 전자 장치 및 이들의 제어 방법
US10270825B2 (en) * 2016-03-31 2019-04-23 Verizon Patent And Licensing Inc. Prediction-based methods and systems for efficient distribution of virtual reality media content
CN107621893B (zh) * 2016-07-15 2020-11-20 苹果公司 在非电子表面上使用电子输入设备的内容创建
US10325407B2 (en) * 2016-09-15 2019-06-18 Microsoft Technology Licensing, Llc Attribute detection tools for mixed reality
US10467794B2 (en) * 2016-09-22 2019-11-05 Autodesk, Inc. Techniques for generating dynamic effects animations
US10627910B2 (en) 2017-02-21 2020-04-21 Adobe Inc. Stroke operation prediction for three-dimensional digital content
US10657682B2 (en) 2017-04-12 2020-05-19 Adobe Inc. Drawing curves in space guided by 3-D objects

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100194694A1 (en) * 2009-01-30 2010-08-05 Nokia Corporation Method and Apparatus for Continuous Stroke Input
CN102243570A (zh) * 2010-05-13 2011-11-16 微差通信公司 用于重叠式书写的方法和装置
US20130127836A1 (en) * 2011-05-27 2013-05-23 Pushkar P. Joshi Methods and Apparatus for Three-Dimensional (3D) Sketching
US20130016914A1 (en) * 2011-07-11 2013-01-17 Brigham Young University Word warping for offline handwriting recognition
CN104111750A (zh) * 2013-04-04 2014-10-22 迪欧泰克有限责任公司 用于编辑墨文本数据的装置及方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111083391A (zh) * 2018-10-19 2020-04-28 舜宇光学(浙江)研究院有限公司 虚实融合系统及其方法
CN114115528A (zh) * 2021-11-02 2022-03-01 深圳市雷鸟网络传媒有限公司 虚拟对象控制方法、装置、计算机设备和存储介质
CN114115528B (zh) * 2021-11-02 2024-01-19 深圳市雷鸟网络传媒有限公司 虚拟对象控制方法、装置、计算机设备和存储介质

Also Published As

Publication number Publication date
AU2017272304B2 (en) 2021-11-18
DE102017011422A1 (de) 2018-08-23
AU2017272304A1 (en) 2018-09-06
US20200241648A1 (en) 2020-07-30
GB2559850B (en) 2020-02-19
US10627910B2 (en) 2020-04-21
US11048335B2 (en) 2021-06-29
GB2559850A (en) 2018-08-22
GB201720867D0 (en) 2018-01-31
US20180239434A1 (en) 2018-08-23
CN108459704B (zh) 2024-03-22

Similar Documents

Publication Publication Date Title
CN108459704A (zh) 用于三维数字内容的笔画操作预测
CN105637564B (zh) 产生未知对象的扩增现实内容
US10592238B2 (en) Application system that enables a plurality of runtime versions of an application
US10860838B1 (en) Universal facial expression translation and character rendering system
Yue et al. WireDraw: 3D Wire Sculpturing Guided with Mixed Reality.
US20170323488A1 (en) Augmented reality product preview
CN108460840A (zh) 虚拟房屋装修的展示方法及展示装置
JP6972135B2 (ja) 複合現実において動的仮想コンテンツを生成するデバイスおよび方法
KR102276936B1 (ko) 3차원 가상 전시 공간의 전시물 이용 서비스 제공 장치
JP2019032820A (ja) 画像を入力とする関数を学習するためのデータセット
CN106997613A (zh) 根据2d图像的3d模型生成
Milliez et al. Mutable elastic models for sculpting structured shapes
US20210342496A1 (en) Geometry-aware interactive design
CN110262763A (zh) 基于增强现实的显示方法和装置以及存储介质和电子设备
US20180165877A1 (en) Method and apparatus for virtual reality animation
CN107545597A (zh) 在基板上渲染数字图像
Antoine et al. Esquisse: using 3D models staging to facilitate the creation of vector-based trace figures
CN109669541A (zh) 一种用于配置增强现实内容的方法与设备
Merckel et al. Multi-interfaces approach to situated knowledge management for complex instruments: First step toward industrial deployment
Wu et al. Field Coupling‐Based Image Filter for Sand Painting Stylization
Vaidya et al. Visualization Of Furniture Model Using Augmented Reality
Arora Creative visual expression in immersive 3D environments
Ansal et al. Product Design Using Virtual Reality
Kratt et al. Non-realistic 3D object stylization
Ribeiro et al. Gesture-based manipulation of virtual terrains on an augmented reality environment

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
GR01 Patent grant
GR01 Patent grant