CN101789083A - 笔刷行为的真实实时模拟 - Google Patents
笔刷行为的真实实时模拟 Download PDFInfo
- Publication number
- CN101789083A CN101789083A CN 200910246863 CN200910246863A CN101789083A CN 101789083 A CN101789083 A CN 101789083A CN 200910246863 CN200910246863 CN 200910246863 CN 200910246863 A CN200910246863 A CN 200910246863A CN 101789083 A CN101789083 A CN 101789083A
- Authority
- CN
- China
- Prior art keywords
- mane
- action
- brush
- simulation steps
- manes
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction 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/04845—Interaction 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/033—Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
- G06F3/0354—Pointing 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/03545—Pens or stylus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/033—Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
- G06F3/038—Control and interface arrangements therefor, e.g. drivers or device-embedded control circuitry
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/001—Texturing; Colouring; Generation of texture or colour
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)
- Processing Or Creating Images (AREA)
Abstract
本发明公开了一种笔刷行为的真实实时模拟的方法、***和计算机可读存储介质。在一个实施方式中,接收用户输入来使用笔刷模型修改图像,其中笔刷模型包括存储在计算机***存储器中的数据。笔刷模型可以包括多个鬃毛表示。用户输入可以包括笔刷模型的动作。可以确定多个鬃毛表示中的每一个鬃毛表示在整个该动作中对图像的效果。可以基于所确定的多个鬃毛表示中的每一个鬃毛表示在整个该动作中对图像的效果来修改图像。
Description
技术领域
本发明涉及计算机***,更具体地,涉及使用计算机***模拟用于将颜料或墨水堆积到虚拟画布上的笔刷。
背景技术
数字图像编辑是使用计算机***创造和/或修改数字图像的过程。使用专用软件程序,用户能够以多种方法处理和转换图像。这些数字图像编辑器可以包括不同复杂程度的程序,例如与获取设备(例如,具有管理亮度和对比度的捆绑或内置程序的数字照相机和扫描仪)相关联的用途有限的程序;适用于诸如旋转和裁切图片这样相对简单操作的受限编辑器;和具有广泛和复杂的属性设置的专业级程序。
数字图像可包括光栅图形、矢量图形或者它们的组合。光栅图形数据(此处也被称为位图)可以作为被称作像素的单个图片元素的栅格进行存储和处理。位图可通过其以像素为单位的宽度和高度进行描述,并且也可通过每个像素的比特数来进行描述。通常,对于每个红、绿和蓝色通道中的每个像素,在RGB(红、绿、蓝)颜色空间中定义的彩色位图可以包括1到8个比特。阿尔法通道可以用来存储诸如每像素的透明度值的附加数据。矢量图形数据可作为由几何图原构建的一个或多个的几何对象进行存储和处理。这些几何图原(例如:点、线、路径、多边形、比塞尔曲线和文本字符)可基于数学等式建立,以表示数字图像中矢量图形数据的部分。典型地,这些几何对象可以位于二维或三维空间中。为了显示或者编辑对象,三维对象可以在二维空间中表示。
数字图像编辑器所通常提供的操作是,使用虚拟“画笔”(此处也被称作笔刷)而通过堆积虚拟颜料或虚拟墨水来修改数字图像。各种在先方法已在此操作的环境下尝试过模拟真实世界中的笔刷及其行为。例如,可以创建二维(2D)光栅图像来表示笔刷接触画布时的形状,而且该二维图像可以沿着输入路径反复进行图章操作。在另一方法中,笔刷末端的矢量表示用以替代二维光栅图像。然而,这样的方法会产生不期望的伪像,尤其是当进行图章操作的速度不够高的时候。
发明内容
本发明公开了用来模拟笔刷行为的***、方法和计算机可读存储介质的多个实施方式。在一个实施方式中,可以基本实时地模拟笔刷行为,以便采用真实方式将墨水或颜料堆积到虚拟画布上。在一个实施方式中,通过使用笔刷模型可以接收用户输入从而修改图像。该笔刷模型可包括存储在计算机***的存储器中的数据。该笔刷模型可包括多个离散的“虚拟”鬃毛,这里也被称为鬃毛表示。用户输入可包括笔刷模型的动作,例如介于第一位置(例如:在第一模拟步骤)和第二位置(例如:在第二模拟步骤)之间的动作。用户输入还可以包括一个或多个颜料值,用以表示将被应用的该“颜料”或“墨水”的颜色。
可以确定多个鬃毛表示中的每一个鬃毛表示在整个动作中对于图像的效果。在一个实施方式中,针对多个鬃毛表示中的每一个鬃毛表示(例如:介于该第一模拟步骤和第二模拟步骤之间)可以确定连续的笔画。在一个实施方式中,可以确定各个鬃毛表示在第一模拟步骤和第二模拟步骤之间的滑动量的近似值。可以通过四边形来表示这个量的近似值,该四边形包括在第一模拟步骤和第二模拟步骤中接触画布的相应链接的部分的端点。可基于所确定的多个鬃毛表示中的每一个鬃毛表示对于图像的效果来修改图像。
附图说明
图1的框图示出了配置用于笔刷模拟的数字图像编辑程序的实施方式。
图2的框图示出了根据一个实施方式的笔刷模型。
图3的框图进一步示出了根据一个实施方式的笔刷模型。
图4A和4B的框图示出了根据一个实施方式的笔刷模型的例子。
图5A和5B的框图示出了根据一个实施方式的笔刷行为模拟的例子。
图6的流程图示出了根据一个实施方式进行笔刷行为模拟的方法。
图7的框图示出了一个计算机***的组成元件,其配置用来实现笔刷模拟的***和方法的实施方式。
尽管允许本发明存在各种修改和替换形式,具体的实施方式通过图示中的例子来示出,并在此进行详细的描述。然而应当理解,此处的图示和详细描述并不用于限制本发明所公开的特定形式;而是相反地,本发明将涵盖落在通过所附权利要求所限定的本发明的精神和范围内的全部修改、等同和替换。
具体实施方式
通过在此描述的***和方法的实施方式,可以在一个绘画应用中模拟真实笔刷行为。在一个实施方式中,可以基本实时模拟笔刷行为,以将墨水或颜料堆积在虚拟画布上。笔刷模型可包括离散鬃毛的较大集合。鬃毛可以包括“虚拟”鬃毛,此处也可被称作鬃毛表示。笔刷行为的模拟会导致由扫动各个鬃毛成为四边形所产生的连续的笔画。该笔刷模型和笔刷行为模拟可以对在笔画动作中笔刷末端形状的改变和从该动作中产生的颜料或墨水的堆积进行建模。通过独立于其他鬃毛地计算每个鬃毛的效果,可以在形成笔画时实现真实笔刷如何堆积颜料或墨水和形状改变的可信再现。
图1是示出了配置用于与此处描述的笔刷模拟技术一起使用的数字图像编辑程序100的实施方式的框图。数字图像编辑程序100(此处也称为图像编辑器100)可以用来创造和/或修改数字图像110(此处也称为图像110)。该数字图像编辑程序100可以包括多个编辑操作120。编辑操作120可以包括用于修改图像110的元素的适合操作。例如,各种效果例如滤镜(例如:高斯模糊、中值滤镜、增加噪声、降低噪声、碎片、钝化遮罩)、图像调节(例如,水平、曲线、亮度/对比度、阴影/高亮)和其他操作(例如,调整大小、裁切、阈值化、旋转、透视变形),可以将所述各种效果应用于一个或多个图像、图像110内的选取区或与图像110相关的其他适合数据。在一个实施方式中,可以将例如AdobeAdobe或Adobe(Adobe Systems公司提供)的适合产品用作该图像编辑器100。
使用图像编辑器100,用户可以设法对数字图片110应用像素值(在此也被称为“颜料”或“墨水”),该像素值例如像素颜色和阿尔法(例如:透明度)值。例如,用户可能希望使用图像编辑器100的编辑操作120所提供的画笔来绘制图像110的一部分。数字图像编辑程序100可包括用来模仿此类画笔的笔刷模型130。数字图像编辑程序100也可包括用来执行笔刷行为模拟功能140的指令。正如后文更详细描述的,该笔刷行为模拟功能140可包括一个或多个用以模拟画笔行为的操作。该笔刷行为模拟功能140可使用笔刷模型130。
图2的框图示出了根据一个实施方式的简化笔刷模型。在一个实施方式中,笔刷可以被模拟为离散的“虚拟”鬃毛的集合。正如图2所示,笔刷模型130可包括多个鬃毛131。该多个鬃毛131在此也称作鬃毛表示131。在一个实施方式中,该笔刷模型也可包括笔刷柄135。该笔刷柄135在此也可被称为笔刷柄表示135。多个鬃毛131可以附接至笔刷柄135的末端。在一个实施方式中,鬃毛131可包括足够数量的单个鬃毛(例如:50到100),用以正确模拟真实笔刷的行为。
图3的框图进一步描述了根据一个实施方式的笔刷模型。每个鬃毛可包括一系列链接。每个链接可包括诸如具有最小(例如:接近0)半径的细圆柱。鬃毛中的链接可以端到端地连接。链接间的连接可包括球窝接头。介于每个鬃毛的第一链接和柄135之间的连接也可包括球窝接头。这些球窝接头可以允许在3个自由度(3DOF)进行任意旋转运动。如图3中的例子所示,鬃毛可以包括如下链接的集合:链接132A、132B、132C和132D。该链接132A、132B、132C和132D可以通过窝球接头133A、133B和133C彼此相连。鬃毛可以通过附加的球窝接头133D与笔刷柄135连接。在一个实施方式中,鬃毛中的链接数可以控制鬃毛能够形成的曲线的尺寸,而该尺寸与鬃毛的长度成比例。更紧密的曲线可能会伴随更多的链接,更平滑的形状通常伴随更少的链接。因为“真实世界”的笔刷鬃毛通常不会形成紧密的曲线或者小线圈,在一个实施方式中,每个鬃毛采用少数的链接。
在一个实施方式中,可以采用具有严格约束的标准组装的刚体动力学来确定笔刷模型130的动作。因此,对于每个将被模拟的对象(例如:每个链接或柄),该动作被当作受目标间的接头所采用的约束支配的6自由度(6DOF)的刚体来计算。真实的笔刷鬃毛往往通过施力抵抗变形,从而恢复其在静止(例如,在静止形状)时的形状。为了模拟笔刷鬃毛的刚度,笔刷模型130的每个接头都可释放一定的力量。鬃毛的静止形状可用每个接头的静止角度来定义。例如,对于直线鬃毛,可以将每个角度设置为0。接头限制可以用来限定每个接头的有效角度为0,并且刚度约束力可以用来恢复这个接头限制。因为笔刷鬃毛是典型的刚度动态***,其包括迅速改变的巨大力量,在一个实施方式中可采用固有求解方式以确保稳定性。
不同类型的笔刷可以通过改变笔刷模型130的参数来加以模拟。可以改变笔刷模型130的参数,从而产生不同的鬃毛材质、不同的鬃毛配置(例如,排列)和不同类型的笔刷变形行为(例如,鬃毛分离、鬃毛弯曲等)。图4A和图4B的框图示出了根据一个实施方式的不同笔刷类型的例子。例如,标准的圆形笔刷的鬃毛可以分布在柄的圆周内、具有相同方向的鬃毛并且具有一个锥形的末端。图4A中所示的笔刷模型130A可以模拟附接在柄135A上的鬃毛131A的圆形排列。扁形笔刷可以具有矩形横截面,并且具有相同长度的鬃毛。图4B中的笔刷模型130B可以模拟附接在矩形柄135B上的鬃毛131B的这种排列。扇形笔刷的鬃毛可以沿着放射方向和统一长度的弧进行分布。另外,不同的鬃毛材质(例如,骆驼毛、獾毛、紫貂毛、尼龙等)可以通过改变沿鬃毛的每个接头的刚度来模拟。例如,总体而言,一些纤维类型更硬,而其他则在底部较硬而朝向末端变得硬度较小。
在一个实施方式中,笔刷模型130可以用于模拟笔刷行为(使用笔刷行为模拟功能140)。通过鬃毛与画布接触形成的形状可称为笔刷接触形状。通常,笔刷行为的模拟可以包括沿着模拟步骤之间由笔刷动作所定义的2D曲线,来扫过笔刷接触形状的二维(2D)图像。采用现有方法来创造该被扫区域,沿着曲线在子步骤中对2D图像进行图章操作,从而对于由采样速度所确定的多个子步骤进行拟合求解。采用笔刷行为模拟功能140可以基本避免在沿着路径使用图章的某些在先方法中所出现的采样伪像。
在一个实施方式中,采用前述笔刷模型130可以在离散模拟步骤间产生连续的笔刷笔画。因为每个鬃毛模拟为链接序列,鬃毛的扫过量(例如,在笔画中由鬃毛笔刷扫过的量)可计算为每个链接的扫过量的总和。每个链接可包括可以由直线拟合的细圆柱。将细圆柱的扫过量正交地投影到2D上以确定最后的画布标记。因此,不同于扫过圆柱来产生量值,该最后的标记通过对每个圆柱扫过一条线从而生成四边形(在此也被称为方块)来近似。
为了将线扫动为方块,该方块可以通过连接起始线段的端点和结束线段的端点来构建。继而,将每个方块正交投影到画布平面以产生最后的标记。为了模拟每个鬃毛接触画布的部分,使用高度阈值来裁切每个鬃毛的没有“接触”画布的部分(例如,超过高度阈值)。采用该裁切技术,可以模拟如下行为:越是用力朝向画布推动笔刷,产生的标记越大。
图5A和图5B的框图示出了根据一个实施方式的笔刷模拟的例子。图5A表示了与画布150“接触”的鬃毛的链接132A。该画布150可表示更大画布的一部分。根据一个特定动作151,通过移动链接132A来“绘制”画布150。链接132A的两个实例可对应于笔刷模拟的两个步骤。在图5A所示的例子中,整个链接132A在开始位置和结束位置都与画布接触。图5B示出了通过与画布接触的链接132A的动作产生的方块152。方块152可通过连接与在这两个位置接触画布时的链接所对应的线段端点来产生。对应于方块152的标记(也被称为“颜料”或“墨水”)包括一个或多个具有适当颜色和透明度值的像素,该标记可以在数字图像110的相应位置产生。以此方式为接触画布的每个鬃毛的每个链接产生方块和相应的标记,使用笔刷模型130在离散的模拟步骤之间来产生连续的笔刷笔画。在一个实施方式中,画布的相同区域会被不止一次地用笔来画,从而模拟颜料或墨水的累积,产生比单独一次用笔来画更深的颜色。
在一个实施方式中,如果因为在画布上的投影没有命中像素,对应于几乎垂直的鬃毛的四边形太细而留不下印记,则鬃毛扫过区域的近似值可能是不准确的。为了解决这种潜在的不准确,可以在鬃毛的最后链接的末点之间,针对每个鬃毛来光栅化宽度为1的线段。以此方式,每个接触画布的鬃毛可以保证在任何变形下产生一个最小厚度标记(例如,至少一个像素的标记)。虽然沿着该笔刷的标记边缘产生的额外像素在鬃毛不垂直的时候可能不正确,但错误非常小而不会显著影响最后的输出标记。
可以经由笔刷行为模拟功能140而捕捉适当的用户输入。例如,用户输入可以包括选中的笔刷类型以及笔刷位置和与画布相对的笔刷运动方向。用户输入还可以包括“压力”值,其可以由适当的输入装置(例如写字板和/或触笔)获取。输入压力可以用来模拟应用到笔刷的压力。采用前述笔刷模型130和笔刷行为模拟功能140,输入压力可以在鬃毛131接触画布时将其变形为大范围的形状。随着输入压力变化,笔刷末端的形状可以在笔画中变化。
图6的流程图示出了根据一个实施方式模拟笔刷行为的方法。如610所示,接收用户输入以使用笔刷模型来修改图像。如上所述,笔刷模型可以包括多个鬃毛表示,并且每个鬃毛表示可以包括一个或多个链接的序列。用户输入可以包括笔刷模型的动作,例如在第一位置(例如,在第一模拟步骤)和第二位置(例如,在第二模拟步骤)之间的动作。用户输入还可以包括一个或多个表示期望应用的“颜料”或“墨水”的颜色的绘画值。
如620所示,可以确定在整个动作中多个鬃毛表示中的每一个鬃毛表示对图像的效果(如果有的话)。在一个实施方式中,在第一模拟步骤和第二模拟步骤之间,在620中对多个鬃毛表示中的每一个鬃毛表示确定连续笔画。在一个实施方式中,在第一模拟步骤和第二模拟步骤之间,在620中确定每个鬃毛表示所扫过的量的近似值。在一个实施方式中,在620中采用裁切操作来确定多个鬃毛表示中的在画布和该画布上的平面之间的部分。
在一个实施方式中,在620中确定第一模拟步骤和第二模拟步骤中接触画布的链接集合。可为该链接集合中的每个链接确定四边形。该四边形可以包括在第一模拟步骤和第二模拟步骤中、相应链接接触画布部分的端点。然后确定每个四边形中绘制的效果。
如630中所示,可以基于所确定的、多个鬃毛表示中的每一个在整个动作中对图像的效果来修改图像。例如,可以修改由笔刷笔画影响的像素的颜色值。在一个实施方式中,与画布“接触”的每个鬃毛表示可以影响沿着从第一模拟步骤到第二模拟步骤的路径的至少一个像素。
在一个实施方式中,诸如开放动态引擎(ODE)的适当模拟引擎可用来执行上面讨论的笔刷模型130和/或笔刷行为模拟140。ODE可以包括用于限定动态模拟的一个构架。采用ODE,每个鬃毛131可模拟为一系列通过旋转接点端到端连接的刚性加盖圆柱(例如,封壳),其中每个鬃毛附接在笔刷柄135的一个末端。接头可建模为3自由度的球窝接头。画布150可建模为单个平面。鬃毛131在一个笔画中将碰触画布的平面,并且碰撞可以导致笔刷末端变形。用户输入可以使用在每个时间步骤中计算的明显的恢复力来产生笔刷位置。给出了目标姿态(例如,位置和朝向),可以直接计算将笔刷的当前姿态和动量改变到目标姿态所需的力量和扭矩。所计算的力量和扭矩可通过模拟引擎(例如:ODE)应用为外力。
恢复力可以用于在尝试回到静止形状时对鬃毛进行建模。在一个实施方式中,采用模拟引擎(例如,ODE)可为对恢复力进行建模来指定接头限制。采用模拟引擎(例如,ODE)可以为每个接头指定启动角度和停止角度。通过将所有角度设置为相同值,可以产生静止角度的效果。可以设置接点的约束力混合(CFM)和错误减少参数(ERP)以产生等同于弹簧减振器***的行为,并且力量限制可以避免接头一次给该模拟增加太多能量。在模拟弹簧减振器***时,可以被隐性整合力量,使得可以实时模拟刚性鬃毛行为。
在一个实施方式中,使用模拟引擎(例如,ODE)可以为恢复力的建模来指定明确的角度弹性力。使用模拟引擎(例如,ODE)可为每个接头指定启动和停止角度。通过将所有角度设置为相同值,可以产生一个静止角度的效果。链接的姿态可以用来在每个模拟步骤后手动计算该角度弹性扭矩。继而,该角度弹性扭矩可以作为外力施加给这些链接。
该模拟引擎(例如,ODE)可以被用来执行受约束的动态模拟。受约束的动态模拟可以通过创建N·N矩阵为约束力求解,N是受约束的自由度的数量。将其间没有约束和没有相互作用的部分称作岛,对每个岛,矩阵可以分为针对每个岛的单独矩阵。每个矩阵可以对特定岛独立求解。因为求解该矩阵是复杂性为O(N3)的问题,分别求解岛一般会比把相同部分作为相互联系的***求解更快。因此,如果笔刷鬃毛是分开的而彼此之间是独立的,则笔刷行为的模拟在计算上更有效。
如上所述,每个鬃毛可以通过接头连接到相同的笔刷柄135上。然而,因为柄的部分较之于鬃毛部分而言较大,在每帧中笔刷姿态的错误可以非常小。因此,笔刷柄135可以使用模拟引擎(例如:ODE)建模为多个分开的笔刷柄部分。每个鬃毛使用球窝接头而附接在分开的笔刷柄部分。虽然移动笔刷柄所需的力量和扭矩的计算可以针对每个笔刷柄单独进行,但这样的计算相对而言并不昂贵。通过使用多个笔刷柄部分而允许鬃毛的分离,允许每个鬃毛被独立求解。因此,可在多处理器或多核环境中既有效地又可扩展地计算笔刷行为模拟140。在一个实施方式中,例如40个鬃毛可以在一个核中以60赫兹模拟;备选地,75个鬃毛可以在一个核中以30赫兹模拟。
在一个实施方式中,鬃毛间的力可以被模拟。通过包括鬃毛与鬃毛的碰撞,创建鬃毛间的接触接头来执行穿透约束。通过模拟鬃毛间的力,当向画布按压时,鬃毛可以散开并显现以更自然地保持笔刷末端的量。在一个实施方式中,笔刷行为模拟140可以包括鬃毛间的力的拟合值,从而通过更为计算有效的方式来达到类似效果。例如,可以施加明确的惩罚力来提供类似于鬃毛对鬃毛的碰撞行为而不需要附加的约束。
在一个实施方式中,模拟引擎(例如,ODE)可以在模拟中为执行约束提供不同机制。一种约束执行机制可称为dWorldStep。dWorldStep功能可以在O(N3)时间内构建和求解约束矩阵。另一约束执行机制可称为dWorldQuickStep。dWorldQuickStep功能可用来在O(MN)时间内执行迭代松弛,以逼近正确的约束力,其中M是迭代的数量(例如,20)。在一个实施方式中,在笔刷行为模拟中使用dWorldQuickStep比使用dWorldStep更快。例如,对于5链接的鬃毛,其中每个接头是3自由度的,存在15个约束。使用dWorldStep求解矩阵可以占用大约3375(例如:153)个时间单位,而使用dWorldQuickStep可以占用大约300(例如:15×20)个时间单位。当考虑鬃毛间的力时,dWorldQuickStep的相对效率甚至更加明显。
图7的框图示出了计算机***900中的组成元件,其配置用来执行这里描述的***和方法的实施方式。计算机***900可包括一个或多个使用任何期望的架构或芯片组的处理器910,该架构或芯片组例如SPARCTM架构,英特尔公司或Advanced Micro Devices公司的X86兼容架构,或其他能够处理数据的架构或芯片组。任何期望的操作***可以在计算机***900上运行,例如各种版本的Unix、Linux、微软公司的苹果公司的或任何其他能够在硬件平台上进行软件操作的操作***。处理器910可以耦合到一个或多个其他示出的组件,例如经由至少通信总线耦合到存储器920。
在一个实施方式中,专用图形卡或其他图形元件956耦合到处理器910。该图形组件956可以包括图形处理单元(GPU)958。另外,计算机***900可以包括一个或多个成像设备952。该一个或多个图像装置952可以包括多种类型的基于光栅的成像设备,例如监视器和打印机。在一个实施方式中,一个或多个显示装置952可以耦合到图形组件956上来显示由图形组件956所提供的数据。
在一个实施方式中,处理器910可以运行程序指令940来执行这里描述的技术的各方面,这些指令可以部分或完全地在任何时间点存放在计算机***900的存储器920中。例如,存储器920可以存储数字图像编辑程序100和其组成元件和数据(例如,编辑操作120、笔刷模型130、和/或笔刷行为模拟功能140)的部分。存储器920可以使用任何合适的介质执行,例如任何不同类型的ROM或RAM(例如,DRAM、SDRAM、RDRAM、SRAM等),或以上的结合。程序指令也可存储在处理器910可访问的存储装置960中。在不同实施方式中,多种存储装置960的任何一种都可用来存储程序指令940,包括任何期望类型的永久和/或易失性存储装置,例如个人硬盘、硬盘阵列、光学装置(例如,CD-ROM、CD-RW驱动器、DVD-ROM、DVD-RW驱动器)、闪存装置、不同类型的RAM、全息存储器等。存储器960可以通过一个或多个存储或输入/输出接口耦合到处理器910。在一些实施方式中,程序指令940可以经由任何合适的计算机可读存储介质来提供至计算机***900,包括上面描述的存储器920和存储装置960。
计算机***900也可包括一个或多个额外的输入输出接口,例如用于一个或多个用户输入装置950的接口。另外,计算机***900可以包括一个或多个网络接口954提供网络接入。应当注意,计算机***900的一个或多个组件可以远程定位并通过网络接入。在不同实施方式中执行的计算机指令可采用任何期望的程序语言、脚本语言或者程序语言和/或脚本语言的结合,例如:C、C++、C#、JavaTM、Perl等。计算机***900也可包括在图7未示出的多个元件,在此省略描述。
在不同实施方式中,图6中显示的单元可以不同的顺序进行执行,而不限于所描述的顺序。图6中在单元中描述的任何操作可程序性地执行(即,根据计算机程序通过计算机)。图6中在单元中描述的任何操作可自动地执行(即,无需用户干预)。
虽然已经详细描述了以上实施方式,当上述公开被充分了解后,众多的变形和修改对本领域的熟练人员而言是易见的。后文的权利要求书被解释为包括所有这样的变形和修改。
Claims (20)
1.一种计算机实现的方法,包括:
接收用户输入以使用笔刷模型修改图像,其中所述笔刷模型包括存储在计算机***的存储器中的数据,其中所述笔刷模型包括多个鬃毛表示,并且其中所述用户输入包括所述笔刷模型的动作;
确定所述多个鬃毛表示中的每一个鬃毛表示在整个所述动作中对所述图像的效果;以及
基于所确定的所述多个鬃毛表示中的每一个鬃毛表示在整个所述动作中对所述图像的效果,来修改所述图像。
2.如权利要求1中所述的方法,其中所述笔刷模型的动作包括在第一模拟步骤和第二模拟步骤之间的动作,其中确定所述多个鬃毛表示中的每一个鬃毛表示在整个所述动作中对所述图像的效果包括:
确定在所述第一模拟步骤和所述第二模拟步骤之间的、针对所述多个鬃毛表示中的每一个的连续笔画。
3.如权利要求1中所述的方法,其中所述笔刷模型的动作包括在所述第一模拟步骤和所述第二模拟步骤之间的动作,其中确定所述多个鬃毛表示中的每一个鬃毛表示在整个所述动作中对所述图像的效果包括:
确定在所述第一模拟步骤和所述第二模拟步骤之间的、由每个鬃毛表示扫过的量的近似值。
4.如权利要求1中所述的方法,其中每个鬃毛表示包括一系列一个或多个链接,其中所述用户输入包括绘制值,其中所述笔刷模型的动作包括在第一模拟步骤和第二模拟步骤之间的动作,其中确定所述多个鬃毛表示中的每一个鬃毛表示在整个所述动作中对所述图像的效果包括:
确定在所述第一模拟步骤和所述第二模拟步骤中接触画布的链接的集合;
为所述链接的集合中的每个链接确定四边形,其中所述四边形包括相应链接在所述第一模拟步骤和所述第二模拟步骤中接触所述画布的部分的端点;以及
确定在每个四边形中所述绘制的效果。
5.如权利要求1所述的方法,其中确定所述多个鬃毛表示中的每一个鬃毛表示在整个所述动作中对所述图像的效果包括:使用裁切操作来确定所述多个鬃毛表示位于画布和所述画布上的平面之间的一个部分。
6.如权利要求1所述的方法,其中每个鬃毛表示包括一系列一个或多个链接,其中每个鬃毛表示中的所述一个或多个链接通过球窝接头进行端到端连接,并且其中每个鬃毛表示通过球窝接头连接到笔刷柄表示。
7.如权利要求6所述的方法,其中通过为每个所述接头确定恢复力而模拟鬃毛刚度。
8.如权利要求1所述的方法,进一步包括:
修改所述笔刷模型的鬃毛材质。
9.如权利要求1所述的方法,进一步包括:
修改所述笔刷模型的鬃毛配置。
10.如权利要求1所述的方法,进一步包括:
修改所述笔刷模型的变形行为。
11.一种***,包括:
用于接收用户输入以使用笔刷模型修改图像的装置,其中所述笔刷模型包括存储在计算机***的存储器中的数据,其中所述笔刷模型包括多个鬃毛表示,并且其中所述用户输入包括所述笔刷模型的动作;
用于确定所述多个鬃毛表示中的每一个鬃毛表示在整个所述动作中对所述图像的效果的装置;
用于基于所确定的所述多个鬃毛表示中的每一个鬃毛表示在整个所述动作中对所述图像的效果来修改所述图像的装置。
12.如权利要求11中所述的***,其中所述笔刷模型的动作包括在第一模拟步骤和第二模拟步骤之间的动作,其中确定所述多个鬃毛表示中的每一个鬃毛表示在整个所述动作中对所述图像的效果包括:
确定在所述第一模拟步骤和所述第二模拟步骤之间的、针对所述多个鬃毛表示中的每一个的连续笔画。
13.如权利要求11中所述的***,其中所述笔刷模型的动作包括在所述第一模拟步骤和所述第二模拟步骤之间的动作,其中确定所述多个鬃毛表示中的每一个鬃毛表示在整个所述动作中对所述图像的效果包括:
确定在所述第一模拟步骤和所述第二模拟步骤之间的、由每个鬃毛表示扫过的量的近似值。
14.如权利要求11中所述的***,其中每个鬃毛表示包括一系列一个或多个链接,其中所述用户输入包括绘制值,其中所述笔刷模型的动作包括在第一模拟步骤和第二模拟步骤之间的动作,其中确定所述多个鬃毛表示中的每一个鬃毛表示在整个所述动作中对所述图像的效果包括:
确定在所述第一模拟步骤和所述第二模拟步骤中接触画布的链接的集合;
为所述链接集合中的每一个链接确定一个四边形,其中所述四边形包括相应链接在所述第一模拟步骤和所述第二模拟步骤中接触所述画布的部分的端点;以及
确定在每个四边形中所述绘制的效果。
15.如权利要求11所述的***,其中确定所述多个鬃毛表示中的每一个鬃毛表示在整个所述动作中对所述图像的效果包括:使用裁切操作来确定所述多个鬃毛表示位于画布和所述画布上的平面之间的部分。
16.如权利要求11所述的***,其中每个鬃毛表示包括一系列一个或多个链接,其中每个鬃毛表示中的所述一个或多个链接通过球窝接头进行端到端的连接,并且其中每个鬃毛表示通过球窝接头连接到笔刷柄表示。
17.如权利要求16所述的***,其中通过为每个所述接头确定恢复力而模拟鬃毛刚度。
18.如权利要求11所述的***,进一步包括:
用于修改所述笔刷模型的鬃毛材质的装置。
19.如权利要求11所述的***,进一步包括:
用于修改所述笔刷模型的鬃毛配置的装置。
20.如权利要求11所述的***,进一步包括:
用于修改所述笔刷模型的变形行为的装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/261,801 | 2008-10-30 | ||
US12/261,801 US8830242B2 (en) | 2008-10-30 | 2008-10-30 | Realistic real-time simulation of brush behavior |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101789083A true CN101789083A (zh) | 2010-07-28 |
CN101789083B CN101789083B (zh) | 2012-08-15 |
Family
ID=42532287
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200910246863 Active CN101789083B (zh) | 2008-10-30 | 2009-10-30 | 笔刷行为的真实实时模拟 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8830242B2 (zh) |
CN (1) | CN101789083B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016081083A1 (en) * | 2014-10-07 | 2016-05-26 | Don Lee | Conductive brush for use with a computing device |
CN109448078A (zh) * | 2018-10-19 | 2019-03-08 | 珠海金山网络游戏科技有限公司 | 一种图像编辑***、方法及设备 |
CN109903384A (zh) * | 2019-04-16 | 2019-06-18 | 珠海金山网络游戏科技有限公司 | 一种模型设置的方法及装置、计算设备和存储介质 |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8760438B2 (en) * | 2010-05-28 | 2014-06-24 | Adobe Systems Incorporated | System and method for simulating stiff bristle brushes using stiffness-height parameterization |
US8379047B1 (en) * | 2010-05-28 | 2013-02-19 | Adobe Systems Incorporated | System and method for creating stroke-level effects in bristle brush simulations using per-bristle opacity |
US9013485B2 (en) | 2011-06-30 | 2015-04-21 | Adobe Systems Incorporated | Systems and methods for synthesizing high fidelity stroke data for lower dimension input strokes |
US9041727B2 (en) | 2012-03-06 | 2015-05-26 | Apple Inc. | User interface tools for selectively applying effects to image |
US9189876B2 (en) | 2012-03-06 | 2015-11-17 | Apple Inc. | Fanning user interface controls for a media editing application |
US9131192B2 (en) | 2012-03-06 | 2015-09-08 | Apple Inc. | Unified slider control for modifying multiple image properties |
US9202433B2 (en) | 2012-03-06 | 2015-12-01 | Apple Inc. | Multi operation slider |
JP6048722B2 (ja) * | 2012-06-26 | 2016-12-21 | カシオ計算機株式会社 | 入力装置、電圧検出装置、入力操作解析方法、および、入力操作解析プログラム |
US9460529B2 (en) * | 2012-12-31 | 2016-10-04 | Joao Aranda Brandao | Tool and method for emulating flat-tip brush |
US10471617B2 (en) | 2015-01-26 | 2019-11-12 | Crayola Llc | Pixel art crayon and marker photo array assembly and kit |
US10118436B2 (en) | 2015-01-26 | 2018-11-06 | Crayola, Llc | Pixel art crayon and marker photo array assembly and kit |
US10832412B2 (en) * | 2018-06-13 | 2020-11-10 | Adobe Inc. | Interactive region coloring |
US11531450B1 (en) * | 2020-06-19 | 2022-12-20 | Corel Corporation | Digital imaging of granular media in graphics applications |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4514818A (en) | 1980-12-04 | 1985-04-30 | Quantel Limited | Video image creation system which simulates drafting tool |
US5155813A (en) * | 1990-01-08 | 1992-10-13 | Wang Laboratories, Inc. | Computer apparatus for brush styled writing |
US5347620A (en) | 1991-09-05 | 1994-09-13 | Zimmer Mark A | System and method for digital rendering of images and printed articulation |
US5488204A (en) * | 1992-06-08 | 1996-01-30 | Synaptics, Incorporated | Paintbrush stylus for capacitive touch sensor pad |
US5420607A (en) * | 1992-09-02 | 1995-05-30 | Miller; Robert F. | Electronic paintbrush and color palette |
US6651221B1 (en) * | 1993-05-20 | 2003-11-18 | Microsoft Corporation | System and methods for spacing, storing and recognizing electronic representations of handwriting, printing and drawings |
DE4337161C1 (de) | 1993-10-30 | 1995-03-02 | Deutsche Aerospace | Handgeführtes Eingabegerät für einen Computer |
WO1996013006A1 (en) | 1994-10-20 | 1996-05-02 | Mark Alan Zimmer | Digital mark-making method |
US5861878A (en) * | 1996-11-20 | 1999-01-19 | Lee; Jintae | Modeled painting brush |
CA2243816C (en) * | 1998-07-23 | 2005-11-01 | Corel Corporation | Method and system for rendering brush strokes with multiple nibs |
US6201549B1 (en) * | 1998-12-30 | 2001-03-13 | Microsoft Corporation | System and method for drawing and painting with bitmap brushes |
US6603463B1 (en) * | 2000-11-06 | 2003-08-05 | Sony Corporation | Method and an apparatus for electronically creating art |
US7187378B2 (en) * | 2003-05-14 | 2007-03-06 | Microsoft Corp. | Determining the convex hull of convex polygons with congruent corresponding angles |
US7348973B1 (en) * | 2004-05-17 | 2008-03-25 | Pacific Data Images Llc | Modeling hair using interpolation and clumping in an iterative process |
US7511703B2 (en) * | 2004-06-28 | 2009-03-31 | Microsoft Corporation | Using size and shape of a physical object to manipulate output in an interactive display application |
US7239329B2 (en) | 2004-10-20 | 2007-07-03 | Edwards Systems Technology, Inc. | Brush texture simulating apparatus and method |
CN100346355C (zh) * | 2005-07-08 | 2007-10-31 | 天津大学 | 基于压感笔等装置的三维毛笔模型与仿真方法 |
US7817162B2 (en) * | 2008-02-11 | 2010-10-19 | University Of Northern Iowa Research Foundation | Virtual blasting system for removal of coating and/or rust from a virtual surface |
-
2008
- 2008-10-30 US US12/261,801 patent/US8830242B2/en active Active
-
2009
- 2009-10-30 CN CN 200910246863 patent/CN101789083B/zh active Active
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016081083A1 (en) * | 2014-10-07 | 2016-05-26 | Don Lee | Conductive brush for use with a computing device |
CN109448078A (zh) * | 2018-10-19 | 2019-03-08 | 珠海金山网络游戏科技有限公司 | 一种图像编辑***、方法及设备 |
CN109448078B (zh) * | 2018-10-19 | 2022-11-04 | 珠海金山数字网络科技有限公司 | 一种图像编辑***、方法及设备 |
CN109903384A (zh) * | 2019-04-16 | 2019-06-18 | 珠海金山网络游戏科技有限公司 | 一种模型设置的方法及装置、计算设备和存储介质 |
CN109903384B (zh) * | 2019-04-16 | 2023-12-26 | 珠海金山数字网络科技有限公司 | 一种模型设置的方法及装置、计算设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN101789083B (zh) | 2012-08-15 |
US8830242B2 (en) | 2014-09-09 |
US20110181618A1 (en) | 2011-07-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101789083B (zh) | 笔刷行为的真实实时模拟 | |
US8760438B2 (en) | System and method for simulating stiff bristle brushes using stiffness-height parameterization | |
US8605095B2 (en) | Generating vector output from a physical simulation of a bristle brush | |
US8749572B2 (en) | System and method for simulation of brush-based painting in a color space that includes a fill channel | |
Kyprianidis et al. | State of the" art”: A taxonomy of artistic stylization techniques for images and video | |
Huang et al. | Bidirectional recurrent convolutional networks for multi-frame super-resolution | |
DE68927335T2 (de) | Stückweise Druckbildvergrösserung für Punktmatrixdrucker | |
US8917283B2 (en) | Polygon processing techniques in procedural painting algorithms | |
Iizuka et al. | An interactive design system for pop-up cards with a physical simulation | |
US10509959B2 (en) | Method and device for segmenting lines in line chart | |
CN109636885B (zh) | 一种用于h5页面的序列帧动画制作方法和*** | |
KR20140124427A (ko) | 이미지 처리 장치, 이미지 처리 방법, 및 컴퓨터 판독가능한 기록 매체 | |
US11853892B2 (en) | Learning to segment via cut-and-paste | |
JP7463186B2 (ja) | 情報処理装置、情報処理方法及びプログラム | |
KR20200092492A (ko) | 의미 인식 기반의 이미지 보정 방법 및 그를 위한 장치 | |
US6650335B2 (en) | Method for extracting static and dynamic super-resolution textures form a sequence of images | |
Wu et al. | Brush stroke synthesis with a generative adversarial network driven by physically based simulation | |
JP2010028429A (ja) | 画像処理装置、画像処理方法およびプログラム | |
JP6525526B2 (ja) | 画像処理装置、画像処理方法、及びプログラム | |
CN116310146A (zh) | 人脸图像重演方法、***、电子设备、存储介质 | |
US20030146918A1 (en) | Appearance modelling | |
US20030063084A1 (en) | System and method for improving 3D data structure representations | |
CN109118469A (zh) | 用于视频显著性的预测方法 | |
Amati et al. | Modeling 2.5 D plants from ink paintings | |
McAndrew et al. | A" secondary" look at digital image processing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |