动态图形界面阴影的制作方法

文档序号:6381846阅读:261来源:国知局
专利名称:动态图形界面阴影的制作方法
技术领域
本公开内容一般地涉及图形用户界面和渲染三维效果。
背景技术
图形用户界面经常采用阴影技术来在二维表面上提供深度错觉。通常,图形用户界面使用具有预定特性的阴影,预定特性诸如预定尺寸或者距投射阴影的对象或阴影与之相关联的对象的预定距离。尽管这些技术可提供深度错觉,但这些静态阴影并不能随图形用户界面对象的轮廓而调整,从而不能提供自然或真实的外观与感觉。

发明内容
描述了动态图形界面阴影。在一些实现方式中,图形用户界面显示对象可被配置为具有标高(elevation)偏移信息,来给予显示对象可具有不同高度(height)的像素的三维表面。在一些实现方式中,在被配置为具有像素标高偏移信息的显示对象上渲染的阴影可被调整来反映对象的三维表面,从而更近似于真实生活中的阴影。在一些实现方式中,阴影能根据其被投射于其上的显示对象的标高被实时地动态渲染和调整。特定的实现方式提供至少以下优点:阴影能看起来更真实并更好地传达用户界面元素的相对位置。针对每个像素的标高图允许复杂纹理和表面的建模。动态阴影可被实现为允许硬件加速的图形处理单元(GPU)滤波器。在其它方面平坦的图形用户界面元素可被配置为具有高度变化的三维表面。在三维表面上渲染的阴影可根据三维表面被扭曲。通过下文的附图和描述来阐述一个或多个实现方式的细节。其他特征、方面和潜在优点将通过说明书、附图和权利要求变得显然。


图1示出了具有动态阴影的示例图形用户界面。图2示出了与图1的图形用户界面中的对象相关联的不同标高的示例。图3示出了其中图形元素被配置为具有像素标高偏移信息的示例图形用户界面。图4示出了配置有像素标高偏移信息的示例显示对象。图5示出了提供像素标高图的示例图形用户界面编辑器。图6示出了包括标高偏移信息的像素颜色数据的示例。图7是生成显示对象的动态阴影的示例过程的流程图。图8是配置像素深度偏移的示例过程的流程图。图9是实现了图1 8的特征和过程的示例性系统架构的方框图。图10是根据本公开内容的实施例的设备1000的方框图。图11是根据本公开内容的实施例的设备1100的方框图。各个附图中的类似参考标记指示类似的元件。
具体实施例方式现代计算机显示器和图形界面经常尝试模拟真实生活中的三维对象和空间。通常,三维模拟通过阴影的使用来在二维图像上给予深度的外观。另外,二维图形界面上的对象布置可被用来暗示对象的深度和/或分层。例如,桌面比喻被通常用于计算机显示器上,以布置并显示窗口、文件、图像、图标和其他对象。桌面上的对象可以重叠(例如,重叠窗口)或遮挡其他对象(例如,位于桌面图标上面的窗口可以隐藏或遮挡这些图标)。对象的重叠和遮挡能暗示对象的分层或与每个对象相关联的深度或标高。例如,分层可暗示用户桌面上的对象被堆叠在彼此之上,使得每个对象位于离桌面不同的标高处。对象相对于桌面(或屏幕、或用户)的标高(例如,高度或深度)能暗示第三个维度。因此,可以说图形用户界面具有沿X轴的水平维度、沿Y轴的竖直维度和沿Z轴的标高维度(例如,Z轴与桌面和显示屏幕相垂直),并且显示对象可根据X、Y和Z坐标被定位在显示区域内。在一些实现方式中,对象的标高(例如,窗口、图标、光标和用户界面元素等的标高)可被用来调整对象阴影以提供更真实的和动态调整的阴影。在一些实现方式中,图形用户界面的像素(例如,显示对象、图形元素的像素等)可被配置为具有标高偏移,以生成具有不同标高的有轮廓的表面的用户界面元素。例如,像素标高偏移可以是被添加到显示对象的标高(或从其减去)来为显示对象提供有轮廓的表面的标高值。在一些实现方式中,像素标高偏移可被用来生成适应图形用户界面对象和元素的有轮廓的表面的阴影。图1示出了具有动态阴影的示例图形用户界面(GUI) 100。⑶1100是可被呈现在计算设备(例如,台式电脑、平板电脑、智能电话和膝上式电脑等等)的显示器上的用户界面。⑶1100可包括桌面图形界面(“桌面”)102。例如,桌面图形界面102能呈现可被用来为用户提供对计算设备上的应用程序、文档和文件的访问的桌面比喻。GUIlOO可包括窗口104和窗口 106。例如,窗口 104和窗口 106可以是用于呈现计算设备的各个应用程序的用户界面的应用程序窗口。在一些实现方式中,窗口 104和窗口 106可被布置和/或分层在不同标闻处。例如,桌面102可具有为零的标闻,窗口 104可具有为十(10)的标闻,而窗口106可具有为二十(20)的标高。在一些实现方式中,当窗口被用户移动或重排时,窗口的标高可被动态地确定。例如,用户可选择窗口 104,使得窗口 104成为最顶上的窗口。当窗口104被选择时,其他窗口(例如,窗口 106)可被布置在窗口 104下面(例如,位于较低的标高处)。在一些实现方式中,对象的标高可基于由计算设备指派给对象的顺序而被确定。例如,计算设备可保持显示在GUIlOO上的对象的列表或阵列。每个窗口、图标、光标或其他对象能在阵列中占据位置。图形对象的显示位置(例如,标高、层级、标高等)可对应于对象在阵列中的位置(例如,索引(index))。例如,占据阵列中的第一位置的对象可被显示在顶部(例如,具有最高的标高),占据阵列中的第二位置的对象可被显示在第一对象下面,等等。当来自阵列中间的对象被选择时(例如,用户选择显示窗口并且其成为当前工作窗口),被选择的对象可被移动到阵列中的第一位置并且阵列中的其他对象可改变位置。GUIlOO可被更新以反映显示对象在阵列中的经调整位置(例如,被选择的窗口将增加标高以成为GUIlOO中的最顶上的窗口)。因此,图形对象可被显示在反映对象在阵列中的相对位置的⑶1100的标高处。⑶1100可包括光标108。例如,用户可采用光标108来与⑶1100、桌面102、窗口104和106、图标110 122和/或显示在⑶1100上的其他对象交互。例如,用户可操纵光标108来选择窗口 104,并使得窗口 104成为最顶上的窗口。光标108可与标高相关联。例如,光标108可具有GUIlOO上显不的任意对象的最闻标闻,使得光标108总是在其他图形对象的顶上。因此,例如,如果桌面102具有为零的标闻,窗口 104具有为十(10)的标闻,而窗口 106具有为二十(20)的标高,则光标108可具有为三十(30)的标高。在一些实现方式中,图形用户界面对象(例如,窗口 104和106、光标108和图标110 122)可基于对象的相应位置(包括标高)和模拟的或检测的光源的位置(例如,角度)来投射阴影。例如,⑶Iioo上的每个对象可具有水平位置(例如,沿X轴140)、竖直位置(例如,沿Y轴142)、和标高(例如,沿Z轴144)。为对象生成的阴影的位置可根据光源的位置以及投射阴影的对象(例如,遮挡对象)和阴影落到其上的对象(例如,被遮挡对象)之间的标高差而调整。另外,对象的阴影的尺寸、模糊半径和不透明度可基于阴影从投射该阴影的对象下降至多远而被调整。在一些实现方式中,光标108可具有相应的投射阴影130或132。例如,当光标在⑶1100中移动时,阴影(例如,阴影130或132)可追随光标,以使得光标看起来像在桌面之上浮动。在一些实现方式中,阴影130、132的尺寸和位置可基于光标的标高和阴影投射于其上的对象的标高而被调整。例如,如果光标108在窗口 106上面,则阴影130的尺寸和位置可基于光标108的标高和窗口 106的标高之间的差而被调整。在这个示例中,光标108和窗口 106的标高差小,从而阴影130被定位成靠近光标108,并且阴影将与该光标具有大致相同的尺寸。作为对照的是,窗口 104的标高小于窗口 106的标高,从而窗口 104和光标108之间较大的标高差导致阴影132被定位成更远离光标108。另外,阴影132的模糊半径、不透明度和尺寸可被调整来考虑光标108和窗口 104之间的标高差,并提供更真实的阴影外观。在一些实现方式中,触摸屏界面被用来提供输入。例如,用户可使用手指触摸触摸屏界面并且在触摸屏界面上的接触点可是光标位置。在一些实现方式中,与触摸位置相关联的显示对象可被显示。例如,放大镜或其他显示对象可被显示在邻近触摸位置的地方。在一些实现方式中,与触摸位置相关联的显示对像可投射动态阴影。例如,如果放大镜被显示,则与放大镜相关联的阴影可被生成。在一些实现方式中,可能不针对触摸输入位置显示显示对象。在一些实现方式中,可为触摸屏界面上被触摸的区域生成动态阴影。例如,当用户用手指触摸触摸屏界面时,可基于手指所触摸的触摸屏界面区域生成并显示动态阴影。例如,如果被手指触摸的触摸屏界面区域是10个像素宽及20像素高的椭圆区域,则可基于椭圆的尺寸和位置而生成动态阴影。例如,椭圆触摸区域可投射很像显示对象(例如,光标108)的动态阴影。类似地,窗口 104和106可以投下阴影134和136。例如,阴影134可基于窗口 104和桌面102之间的标高差而生成。这种情况下,由于桌面具有为零的标高,窗口 104的标高可被用来生成阴影134。可为窗口 106生成阴影136。然而,阴影136被投射在具有两个不同标高的表面(例如,窗口 104和桌面102)上。例如,窗口 104和106之间的标高差小于窗口 106和桌面102之间的标高差。因此,阴影136的被投射在窗口 104上的部分与阴影136的被投射在桌面102上的部分将具有不同的维度。例如,阴影136的生成于桌面102上的部分可看起来比阴影136的生成于较近的窗口 104表面上的部分离窗口 106更远。另夕卜,阴影的模糊半径和不透明度可基于投射阴影的窗口和阴影生成于其上的对象之间的标高差而被调整。其他图形对象,例如图标110 122,也能投射可基于图标的标高而被调整的阴影。在一些实现方式中,显示对象能模糊阴影。例如,如果光标108的阴影应当在窗口106之下被生成(例如,基于光标108的位置、窗口 106的标高和光源的角度),则不会为光标108生成阴影,这是因为窗口 106将遮挡或隐藏该阴影。图2示出了与图形用户界面GUIlOO中的对象相关联的不同标高的示例。例如,图2可表示包括光标108、窗口 104和106、图标110 122以及桌面102的⑶1100的侧视图。在图2中,可清楚地看出各个图形对象的标高(例如,沿Z轴144)。例如,桌面102可具有为零的标高,并且其他所有图形对象(例如,图标110 122、窗口 104、窗口 106、光标108等等)可具有相对于桌面的标高。或者,标高可对应于表示每个对象距用户或显示屏200的距离的深度值(例如,其中显示屏200具有为零的深度)。图形对象可被布置在显示屏200和桌面102之间的不同标高(或深度)处。例如,光标108可具有标高‘ΖΓ 202,其将光标108放置在界面100中的所有其他对象的之上,从而阻止光标108被显示在界面100中的其他图形对象模糊。窗口 104可具有标高‘Z2’204。窗口 106可具有窗口 104和光标108之间的标高‘Z3’206。图标110 122也可具有相关联的标高(或深度)。在一些实现方式中,被指派给对象的标高可相对于显示在用户界面100上的其他对象。例如,光标108可被配置为显示在预定标高 ’处,而其他图形对象的标高可相对于E而确定。在一些实现方式中,可从标高E中添加或者减去标高差以提供显示对象之间的间距。标高差可被配置为5个单位(例如,像素、毫米、英寸等)。窗口 106的标高,例如,可被确定为光标108之下5个单位。窗口 104的标高,例如,可被确定为光标108之下10个单元以及窗口 106之下5个单元。因此,其中图形对象被保持在其中图形对象的顺序也被保持的类阵列的数据结构中,每个对象可根据标高差和对象在阵列中的位置而被显示。例如,阵列中的每个显示对象可被定位在阵列中先前显示对象之下5个单位处。在一些实现方式中,标高(或深度)可相对于桌面102 (例如,具有为零的标高)或相对于屏幕(例如,具有为零的深度)确定。在一些实现方式中,标高差可被动态地确定。例如,如果桌面102具有为零(O)的标高,而屏幕200具有为五十(50)的标高,则通过将屏幕标高50除以显示对象的数量而确定的标高差,显示对象可在桌面102和屏幕200之间均匀间隔开来。可使用用于动态确定显示对象的标高差的其他方法。在一些实现方式中,图形对象的标高可用来生成对象阴影。在一些实现方式中,图形对象的标高可用来确定与显示对象相关联的阴影的位置、尺寸、不透明度和/或模糊半径。例如,为了在窗口 104上面生成光标108的阴影,必须确定标高差‘ΑΖΓ208。为了这样做,可从标高‘ΖΓ 202中减去标高‘Z2’ 204。一旦‘AZ1’ 208被计算出来,阴影从光标108的水平偏移(例如,沿X轴140)可基于光源与光标108相交的角度Θ的正切值(沿X轴140)和所计算的值‘ΑΖΓ 208(例如,ΛΧ1 = AZl/tan(9))而确定。竖直阴影偏移(例如,沿Y轴142)可以相似的方式计算。在一些实现方式中,阴影偏移在每个像素的基础上被计算。例如,光标108的每个像素可投射对应的阴影像素。阴影像素的位置可基于计算出的阴影偏移而确定。例如,如果光标108的像素在水平坐标‘X’处,并且像素偏移是五(5),则对应的阴影像素的位置可以是‘X+5’。因此,光标108的投射阴影(和其他显示对象、窗口、图标等)可基于光标108的尺寸、形状和位置而实时地生成。在一些实现方式中,可以模拟光源。例如,光源的位置和光与屏幕上的对象相交的角度可以是被配置的参数。在一些实现方式中,光源可被检测。例如,耦合到照相机的计算设备可使用照相机来检测计算设备外部的光源并计算或得出外部光源相对于计算设备或照相机的位置。因此,当计算设备和/或照相机被相对于外部光源移动时,由计算设备为显示对象生成的动态阴影可被调整,以反映计算设备和外部光源之间相对位置的变化。在一些实现方式中,阴影的尺寸可随标高差(例如,投射阴影的对象和阴影被投射于其上的对象之间的标高差)的增加而增加。例如,在标高上的每五(5)个像素,阴影的尺寸可通过指定的百分比或其他机制被增加一(I)个像素。在一些实现方式中,阴影的不透明度可基于标高差被调整。例如,对于在标高上的每三(3)个像素,阴影的不透明度可减少五个百分点(5%)。在一些实现方式中,阴影的模糊半径可基于标高差被调整。例如,对于标高上的每十(10)个像素,模糊半径可增加二十个百分点(20%)。在一些实现方式中,对尺寸、不透明度和/或模糊半径的调整可在阴影的位置被确定之后应用。其他机制可被实施用来基于对象标高调整阴影的位置、尺寸、不透明度和/或模糊半径。在一些实现方式中,一旦显示对象(例如,窗口、图标、桌面等)的标高被确定,则所确定的标高被指派给显示对象的每个像素。例如,如果窗口 106具有为四十(40)的标高,则窗口 106的每个像素可被指派为四十的标高。如果窗口 104具有为三十五(35)的标高,则窗口 104的每个像素可被指派为三十五的标高。因此,当渲染交叠的窗口 104和106时,如果来自窗口 104的像素和来自窗口 106的像素占据相同的水平和竖直位置(例如,X、Y位置),则可显示具有最大标高的像素。这种情况下,因为窗口 106具有为40的标高而窗口 104具有为35的标高,与窗口 106相关联的像素将被显示。在一些实现方式中,为对象的每个像素指派所计算的对象标高将导致对象具有平坦表面(例如,没有轮廓或纹理)。类似地,投射在这些平坦对象上的阴影也将看起来是平坦的(例如,没有轮廓、纹理等)。图3示出了示例图形用户界面300,其中图形元素被配置为具有像素标高偏移信息。在一些实现方式中,图形显示对象(例如,窗口、图标、桌面、图形用户界面、图形元素等)可被配置为具有将显示对象的每个像素与标高偏移值相关联的像素标高偏移信息。例如,如上文关于图2所描述的,像素标高偏移信息可以是能添加到对象的所确定的标高或者从其减去的标高值。因此,一旦针对对象已确定了标高,则所确定的标高可基于该对象的预配置的像素标高偏移信息而调整。在一些实现方式中,像素标高偏移信息可被配置来为图形显示对象提供轮廓和/或纹理。在一些实现方式中,⑶1300可包括具有像素标高偏移信息的窗口 302和窗口 304。例如,窗口 302可表示电子书应用程序的图形用户界面。电子书应用程序的开发者可以将窗口 302的像素配置为具有对应于打开的书本的轮廓的标高偏移信息,如参照图4将更详细地描述的。在一些实现方式中,窗口 304可被配置为具有像素偏移信息来将图形元素与不同标高相关联。例如,窗口 304可具有凸起按钮306,其中按钮306的像素被配置为具有正的标高偏移。窗口 304可具有凹进图像308,例如,其中凹进图像308的像素被配置为具有负的标高偏移。在一些实现方式中,可通过考虑像素标高偏移信息而生成投射到窗口 302和304上的阴影。因此,根据指派给窗口的像素的像素标高偏移信息,在窗口 302和304上生成的阴影可以具有轮廓的、纹理的和/或变化的呈现。图4示出了配置有像素标高偏移信息的示例显示对象302。例如,显示对象302可被配置为具有轮廓的表面402。轮廓的表面402可通过将显示对象302的像素配置具有标高偏移信息而生成。例如,轮廓的表面402的虚线中的每个点可表示像素和显示对象302的该像素的对应标高。例如,如果显示对象302是用于电子书应用程序的图形用户界面,则显示对象302的每个像素可被配置为具有模拟物理书本的轮廓的标高偏移。例如,书页侧面(例如,在书本的模拟的装订处)的像素的标高偏移值可具有小的偏移404,而接近书页中间的像素的标高偏移值可具有较大的偏移406。当电子书界面被渲染在计算设备的屏幕上时,像素标高偏移可从为显示对象302所确定的标高中添加(或减去)。在一些实现方式中,像素标高偏移信息可被用来生成投射阴影。例如,光标108投射阴影410在显示对象302上。由于显示对象302被配置为具有模拟打开的书本的轮廓的像素标高偏移信息,阴影410可被生成为遵循书本的轮廓。例如,阴影410可基于为显示对象302所确定的标高和为显示对象302的每个像素所配置的像素标高偏移信息而生成。当光标108在书本上移动时,光标可被调整以遵循书本的轮廓,从而接近于真实生活中的阴影。在一些实现方式中,为显示对象所生成的阴影可基于针对显示对象的输入而调整。例如,光标108的阴影可如上所述地被生成。用户可提供输入至(或通过)光标108。用户可执行选择操作(例如,鼠标点击)来使得光标108之下的对象被选择或以其它方式被操作。例如,显示对象302可呈现模拟打开的书本的电子书应用程序的轮廓的图形用户界面。显示对象302可被配置为允许用户使用光标108翻转书本的书页。当光标108被定位在显示对象302上面时,用户可提供输入至光标108 (例如,鼠标点击)来使得电子书的书页翻转。在一些实现方式中,与光标108相关联的投射阴影可被调整以模拟将光标降低到显不对象302的表面上。例如,光标108的标闻可被调整直至光标108的标闻实质上与显示对象302的标高相同。与光标108相关联的投射阴影可根据光标108的标高变化而被调整。因此,光标投射阴影将被激活而移动至更接近于光标的位置,直至当光标看起来是触摸显不对象302的表面时(例如,光标具有与显不对象302表面实质相同的标闻,如果有的话,还包括任何标高偏移),它看起来位于光标下面或消失为止。图5示出了提供可配置像素标高图的示例图形用户界面编辑器500。在一些实现方式中,图形用户界面编辑器500可允许用户界面开发者为图形用户界面元素和显示对象指定标高偏移信息。例如,开发者可设计应用程序图形用户界面502。应用程序GUI502可包括背景区域504和图形元素506、508及510。例如,图形元素506、508及510可以是图像、按钮、菜单或任何其他可被包括在图形用户界面中的图形元素。GUI502可以是全彩色界面。在一些实现方式中,开发者可调用(invoke)图形用户界面502的灰度级位图显示。灰度级位图显示可以是指示⑶1502的像素的标高的全彩色⑶1502的灰度级表示。例如,像素的灰度级值(例如,亮度水平)可表示像素的标高。在一些实现方式中,亮度水平对应于黑色(例如,完全没有照明)和白色(例如,完全照明)之间的范围,并且可被表示为百分比(0-100%)、整数值(例如,如果每个像素使用8比特,则为0-255)、或者任何其他表不。在一些实现方式中,黑色可表不零标闻(或最大标闻),而白色可表不最大标闻(或最小标闻)。黑色和白色之间的灰度值可对应于零标闻和最大标闻之间的标闻。在一些实现方式中,开发者可调整灰度级位图显示的像素来为图形用户界面502的像素指派标高偏移值。例如,开发者可改变像素的灰度级值以导致像素的标高的对应变化。开发者可使用任何位图编辑技术(例如,线条描绘、区域填充等)来改变像素的灰度级值。例如,开发者可选择显示元素506并提供输入至图形用户界面编辑器以指示显示元素的45%亮度的灰度级填充。图6示出了包括标高偏移信息的像素颜色数据500的示例。在一些实现方式中,一旦标高偏移(例如,灰度级值)被指派给GUI502的像素,则标高偏移可被与像素颜色数据500存储在一起。像素颜色数据可以被存储为能被用来为像素存储颜色数据的多个比特(例如,8比特、16比特、32比特等)。例如,当生成全彩色⑶1502时,⑶1502的每个像素的颜色数据可被存储为32比特字,其中24比特用于红色502(8比特)、绿色504(8比特)、蓝色506 (8比特)(RGB)颜色数据。32比特字中剩余的8比特(Z508)可被用来存储像素的标高信息。例如,对应于标高的像素灰度级值可被存储在剩余的8比特中。在一些实现方式中,像素标高偏移信息可与像素颜色数据分离地存储。在一些实现方式中,当⑶1502在显示屏上被渲染,像素颜色数据(R502,G504,B506)可被用来渲染⑶1502的金彩色显示。在一些实现方式中,当阴影和/或其他三维效果被渲染在显示屏上,像素标高偏移信息(Z508)可被用来渲染阴影和三维效果。因此,图形用户界面的每个像素可被配置为具有标高偏移信息,从而允许图形用户界面被配置为具有轮廓和/或纹理的三维表面。这个像素标高数据可被用来渲染能模拟或接近真实生活中的阴影的动态阴影。
示例过程图7是为显示对象生成动态阴影的示例过程700的流程图。在一些实现方式中,阴影可基于为显示对象所计算的标高和显示对象的像素的像素标高偏移信息而动态地生成。例如,像素标高偏移可被添加至显示对象的标高以在显示对象上提供有轮廓的、有纹理的和/或波形的表面。生成在显示对象上的阴影可根据像素标高偏移信息被动态地调整以反映或表示显示对象的有轮廓的、有纹理的和/或波形的表面。在步骤702,图形用户界面对象的标高(例如,Z轴位置、坐标、数值等)可被确定。例如,窗口、光标、图标和/或其他用户界面显示对象的标高可被确定。在一些实现方式中,显示对象的标高可相对于其他显示对象而被确定。例如,如果显示在用户界面上的图形对象以列表、阵列或其他集合数据类型被管理,则显示对象可基于显示对象在列表中的位置在标高上被间隔开来,如上关于根据图2所描述的。在步骤704,可获取用于图形用户界面对象的像素标高偏移信息。在一些实现方式中,图形显示对象可被配置为具有像素标高偏移信息。例如,用户界面开发者可生成显示对象(例如,窗口、应用程序用户界面、图标等)并且用像素标高偏移信息配置显示对象来给予显示对象的表面纹理、轮廓、波形和/或其他表面特性。在一些实现方式中,通过用像素标高偏移信息配置显示对象,用户界面开发者可以采用本来平坦的显示对象并赋予该显示对象三维的外观和感觉。在一些实现方式中,显示对象的每个像素可被分别地配置有像素标高偏移信息。一旦显示对象已被配置有像素标高偏移信息,像素标高偏移信息可被访问并用来渲染显示对象和阴影。
在步骤706,阴影可基于显示对象的标高和像素标高偏移信息而被生成。在一些实现方式中,像素标高可基于与像素相关联的对象的标高和为像素配置的标高偏移而被计算。例如,如果显示对象的像素具有标高为五(5)的偏移并且该显示对象具有为四十(40)的标高,则该像素的标高可被计算为四十五(45)。一旦像素标高已被计算出,则像素标高可被用来生成动态阴影。例如,合并的标高位图(例如,用于渲染显示的标高位图)可基于所计算的像素标高被生成,其包括具有桌面之上的最高标高的每个显示对象的像素。例如,多个显示对象可重叠,并且从而重叠的对象可具有带有相同坐标(例如,Χ、γ坐标)的像素。然而,重叠的像素的每个可具有不同的标闻(Ζ值/坐标,标闻等)。在一些实现方式中,只有具有最闻标闻的像素将被包括在合并的标高位图中。在一些实现方式中,可通过使用在每个像素基础上确定阴影量的图形处理单元(GPU)滤波器生成阴影。例如,通过搜索合并的标高图,滤波器能确定在一个标高处的给定像素是否被在更高标高处的像素所遮挡。如果该像素被遮挡,则GPU可基于两个像素间的相对距离计算亮度值。亮度值然后可被用来调整阴影的不透明度和模糊半径,使得落到标高接近的像素上的阴影更尖锐,而落到距离更远的像素上的阴影更分散(diffuse)。在步骤708,包括显示对象和阴影的图形用户界面可被显示。例如,计算设备的图形处理单元可渲染用户界面,包括在显示设备上的窗口、光标、图标、其他显示对象和它们的阴影。图8是为显示对象配置像素标高偏移的示例过程800的流程图。在一些实现方式中,显示对象的像素标高偏移信息可通过编辑与显示对象对应的灰度级位图而被配置。在步骤802,图形用户界面编辑器可被显示。在一些实现方式中,图形用户界面编辑器可被用户界面开发者使用来生成图形用户界面元素(例如,应用程序图形用户界面)。图形用户界面编辑器可呈现在构建中的图形用户界面的全彩色显示。在步骤804,像素标高偏移位图可被显示。在一些实现方式中,用户可提供输入(例如,向菜单项目或工具栏)至图形用户界面编辑器来使编辑器显示与图形用户界面相关联的标高图。例如,图形用户界面的灰度级标高位像可被显示。位图的每个像素的売度可表不与像素相关联的标闻。例如,如果黑色对应于零标闻且白色对应于最闻标闻,则灰度像素是具有在零标闻(黑色)和最闻标闻(白色)之间的标闻的像素。在一些实现方式中,显示对象的每个像素具有为零的默认标高。然而,如果显示对象的像素已被配置有标高值,则灰度级位图的像素将反映为像素配置的标高(例如,该像素将基于配置的标高显示黑色、白色或灰色)。在步骤806,像素标高偏移信息可通过修改像素标高偏移位图而被调整。在一些实现方式中,图形用户界面开发者可编辑灰度级标高位图。例如,开发者可编辑位图来改变像素的亮度。可使用公知的位图编辑技术执行位图的编辑。例如,可通过使用允许填充位图区域、描绘线条以及其他位像编辑功能的位图编辑器来编辑位图。在步骤808,像素标高偏移信息可被存储。在一些实现方式中,像素标高偏移信息可与显示对象的像素颜色 数据一起被存储。例如,像素的标高数据可被存储在用于存储像素的颜色数据的相同数据结构中,如参照图6所描述的。
示例性系统架构
图9是实现了图1 8的特征和过程的示例性系统架构的方框图。架构900可被实现在运行从编译指令得出的软件应用程序的任何电子设备上,电子设备包括但不局限于个人电脑、服务器、智能电话、媒体播放器、电子平板电脑、游戏操作杆、电子邮件设备等。在一些实现方式中,架构900可包括一个或多个处理器902、一个或多个输入设备904、一个或多个显示设备906、一介或多个网络接口 908、以及一个或多个计算机可读介质910。这些部件中的每一个都可通过总线912耦合。显示设备906可以是任何已知的显示技术,包括但不局限于使用液晶显示(IXD)或发光二极管技术(LED)的显示设备。处理器902可使用任何已知的处理器技术,包括但不局限于图形处理器和多核处理器。输入设备904可以是任何已知的输入设备技术,包括但不局限于键盘(包括虚拟键盘)、鼠标、轨迹球、以及触敏板或触敏显示器。总线912可以是任何已知的内部或外部总线技术,包括但不局限于ISA、EISA、PC1、PCI Express、NuBus、USB、串行ATA或FireWire。计算机可读介质910可以是参与将指令提供给处理器902以用于执行的任何介质,包括但不局限于非易失性存储介质(例如,光盘、磁盘、闪存驱动等)或易失性介质(例如,SDRAM、ROM等)。计算机可读介质910可包括用于实现操作系统(例如,Mac OS ,Windows ,Linux)的各种指令914。操作系统可以是多用户的、多处理的、多任务的、多线程的、实时的等等。操作系统执行基本任务,包括但不局限于:识别来自输入设备904的输入;将输出发送至显示设备906 ;保持对在计算机可读介质910上的文件和目录的跟踪;控制可直接或通过I/O控制器控制的外围设备(例如,磁盘驱动、打印机等);以及管理总线912上的负荷。网络通信指令916可建立和保持网络连接(例如,用于执行通信协议,例如TCP/IP、HTTP、以太网等的软件)。图形处理系统918可包括提供图形和图像处理能力的指令。例如,图形处理系统918可实现参照图1 8描述的动态界面阴影化。应用程序920可以是被配置为支持动态界面阴影化,或使用或实现参照图1 8描述的过程的应用程序。例如,与应用程序920相关联的图形用户界面可被配置有允许以更近似于真实生活的方式模拟阴影的像素标高偏移信息。动态图形界面阴影化可被实现在操作系统914中。所描述的特征可有利地被实施于在可编程系统上可执行的一个或多个计算机程序中,可编程系统包括至少一个耦合以从数据存储系统接收数据和指令以及传送数据和指令至数据存储系统的可编程处理器、至少一个输入设备和至少一个输出设备。计算机程序是可在计算机中直接或间接使用以执行特定的动作或带来特定的结果的计算机指令集。计算机程序可以任何形式的编程语言(例如,面向目标的C、Java)编写,包括编译的或解释的语言,并且它能以任何方式被使用,包括作为独立程序或作为模块、部件、子例程或其他适合在计算环境中使用的单元。举例来说,用于执行指令程序的适合的处理器包括任何种类的电脑的通用微处理器和专用微处理器,以及单一处理器或者多处理器或多核中的一个。通常,处理器将从只读存储器或随机存取存储器或两者中接收数据和指令。计算机的基本元件是用于执行指令的处理器和用于存储指令和数据的一个或多个存储器。通常,计算机还将包括用于存储数据文件的一个或多个大容量存储设备或可操作地耦合来与之通信;这样的设备包括磁盘,例如内部硬盘和可移动盘;磁化光盘;和光盘。适合有形地体现计算机程序指令和数据的存储设备包括所有形式的非易失性存储器,举例来说包括如EPROM、EEPROM和闪存存储器设备之类的半导体存储器设备;如内部硬盘和可移动盘之类的磁盘;磁化光盘;以及CD-ROM和DVD-ROM盘。处理器和存储器可由ASIC (专用集成电路)补充,或被合并于其中。为了提供与用户的交互,这些特征可被实现在计算机上,该计算机具有用于向用户显示信息的如CRT (阴极射线管)或LCD (液晶显示)监控器之类的显示设备以及键盘和用户可借助其提供输入至计算机的如鼠标或轨迹球之类的指示设备。这些特征可被实施在计算机系统中,该计算机系统包括如数据服务器之类的后端部件,或包括如应用程序服务器或因特网服务器之类的中间件部件,或包括如具有图形用户界面或因特网浏览器的客户端计算机之类的前端部件,或它们的任意组合。系统的部件可通过任何形式或如通信网络之类的数字数据通信介质而被连接。通信网络的例子包括,例如,LAN、WAN、以及形成因特网的计算机和网络。计算机系统可包括客户端和服务器。客户端和服务器通常彼此距离很远,并且典型地通过网络交互。客户端和服务器的关系借助于远行在相应的计算机上并且彼此之间具有客户端-服务器关系的计算机程序产生。所公开的实施例的一个或多个特征或步骤可使用API而实现。API可定义在调用应用程序与提供服务、提供数据或执行操作或计算的其他软件代码(例如,操作系统、库例程、函数)之间传递的一个或多个参数。API可被实现为程序代码中的一个或多个调用,其基于在API规范文档中定义的调用规则通过参数表或其他结构来发送或接收一个或多个参数。参数可以是常量、密钥、数据结构、对象、对象类、变量、数据类型、指针、数组、列表或另一个调用。API调用和参数可以任何编程语言实现。编程语言可定义编程者将使用来访问支持API的函数的词汇表以及调用规则。在一些实现方式中,API调用能将运行应用程序的设备的能力报告给应用程序,如输入能力、输出能力、处理能力、电力能力、通信能力等。已描述了多个实现方式。然而,应当理解,能做出多种修改。例如,其他步骤可被提供,或一些步骤可从描述的流程中删除,并且其他的部件可被添加至描述的系统中,或者从其去除。相应地,其他实现方式也在如下权利要求的范围内。图10是根据公开内容的实施例的设备1000的框图。设备1000包括确定单元1002,被配置为确定第一图形用户界面元素的标高值,其中标高值对应于沿着垂直于图形用户界面显示器的轴的距离;获取单元1004,被配置为获取第一图形用户界面元素的像素的标高偏移值;生成单元1006,被配置为基于所确定的标高值和标高偏移值生成与第二图形用户界面元素相关联的阴影;以及显示单元1008,被配置为显示第一图形用户界面元素和阴影。优选地,在一些示例中,第一图形用户界面元素是操作系统的窗口。优选地,在一些示例中,第一图形用户界面元素是图标。优选地,在一些示例中,确定单元1002进一步地被配置为基于标高值和标高偏移值确定阴影的尺寸;并且生成单元1006进一步地被配置为基于所确定的尺寸生成阴影。优选地,在一些示例中,确定单元1002进一步地被配置为基于标高值和标高偏移值确定阴影的不透明度;并且生成单元1006进一步地被配置为基于所确定的不透明度生成阴影。优选地,在一些示例中,确定单元1002进一步地被配置为基于标高值和标高偏移值确定阴影的模糊半径;并且生成单元1006进一步地被配置为基于所确定的模糊半径生成阴影。图11是根据公开内容的实施例的设备1100的框图。设备1100包括显示单元1102,被配置为在图形用户界面编辑器中显示图形用户界面;接收单元1104,被配置为接收指定图形用户界面的像素的像素标高偏移值的用户输入;以及存储单元1106,被配置为存储像素标高偏移值。优选地,在一些示例中,显示单元1102进一步地被配置为显示图形用户界面的标高图,其中标高图的每个像素具有表示图形用户界面的对应像素的标高偏移的亮度值。优选地,在一些示例中,设备1100进一步地包括调整单元1108,并且其中接收单元1104进一步地被配置为接收指示标高图的一个或多个像素的亮度值的输入;调整单元1108进一步地被配置为基于接收的亮度值调整标高图像素的亮度值;调整单元1108进一步地被配置为基于接收的亮度值调整图形用户界面的对应像素的标高偏移;并且调整单元1108进一步地被配置为基于接收的亮度值调整标高图的显示。根据上文,公开内容的一些示例涉及包括设备1000或1100的电子设备(1200或1300)。此处公开的多个单元可使用硬件、软件或其组合来实现或执行。它们通过通用的单一或多芯片处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、或其他可编程逻辑设备、离散门或晶体管逻辑、离散硬件部件、或被设计来执行此处所描述的功能的它们的任何组合来实现或执行。通用处理器可以是微处理器,或任何传统的处理器、控制器、微控制器或状态机。处理器还可实现为计算设备的组合,例如,DSP和微处理器的组合、多个微处理器、与DSP核相结合的一个或多个处理器、或任何其他这样的配置。在一些实现方式中,这些单元可被实现为给定功能特定的电路。因此,根据上文,公开内容的一些示例涉及一种方法,包括:确定第一图形用户界面元素的标高值,其中标高值对应于沿着与图形用户界面显示器垂直的轴的距离;获取第一图形用户界面元素的像素的标高偏移值;基于所确定的标高值和标高偏移值生成与第二图形用户界面元素相关联的阴影;并且显示第一图形用户界面元素和阴影。可补充或可替代地,对于上文公开的一个或多个示例,在一些示例中,第一图形用户界面元素是操作系统的窗口。可补充或可替代地,对于上文公开的一个或多个示例,在一些示例中,第一图形用户界面元素是图标。可补充或可替代地,对于上文公开的一个或多个示例,在一些示例中,该方法进一步包括基于标高值和标高偏移值确定阴影的尺寸;并且基于所确定的尺寸生成阴影。可补充或可替代地,对于上文公开的一个或多个示例,在一些示例中,该方法进一步包括基于标高值和标高偏移值确定阴影的不透明度;并且基于所确定的不透明度生成阴影。可补充或可替代地,对于上文公开的一个或多个示例,在一些示例中,该方法进一步包括基于标高值和标高偏移值确定阴影的模糊半径;并且基于所确定的模糊半径生成阴影。公开内容的一些示例涉及一种方法,包括:在图形用户界面编辑器中,显示图形用户界面;接收指定用户图形界面的像素的像素标高偏移值的用户输入;并且存储像素标高偏移值。可补充或可替代地,对于上文公开的一个或多个示例,在一些示例中,该方法进一步包括显示图形用户界面的标高图,其中标高图的每个像素具有表示图形用户界面的对应像素的标高偏移的亮度值。可补充或可替代地,对于上文公开的一个或多个示例,在一些示例中,该方法进一步包括接收指示标高图的一个或多个像素的亮度值的输入;基于接收的売度值,调整标闻图像素的売度值;基于接收的売度值,调整对应图形用户界面像素的标闻偏移;并且基于接收的売度值,调整売度图的显不。公开内容的一些示例涉及包括一个或多个指令序列的非暂存计算机可读介质,指令序列被一个或多个处理器执行时导致:确定第一图形用户界面元素的标高值,其中标高值对应于沿着与图形用户界面显示器垂直的轴的距离;获取第一图形用户界面元素的像素的标高偏移值;基于所确定的标高值和标高偏移值,生成与第二图形用户界面元素相关联的阴影;并且显示第一图形用户界面元素和阴影。可补充或可替代地,对于上文公开的一个或多个示例,在一些示例中,第一图形用户界面元素是操作系统的窗口。可补充或可替代地,对于上文公开的一个或多个示例,在一些示例中,第一图形用户界面元素是图标。可补充或可替代地,对于上文公开的一个或多个示例,在一些示例中,指令进一步导致基于标高值和标高偏移值确定阴影的尺寸;并且基于所确定的尺寸生成阴影。可补充或可替代地,对于上文公开的一个或多个示例,在一些示例中指令进一步导致基于标高值和标高偏移值确定阴影的不透明度;并且基于所确定的不透明度生成阴影。可补充或可替代地,对于上文公开的一个或多个示例,在一些示例中,指令进一步导致基于标高值和标高偏移值确定阴影的模糊半径;并且基于所确定的模糊半径生成阴影。公开内容的一些示例涉及包括一个或多个指令序列的非暂存计算机可读介质,指令序列被一个或多个处理器执行时导致:在图形用户界面编辑器中,显示图形用户界面;接收指定图形用户界面的像素的像素标高偏移值的用户输入;并且存储像素标高偏移值。可补充或可替代地,对于上文公开的一个或多个示例,在一些示例中,指令进一步导致显示图形用户界面的标高图,其中标高图的每个像素具有表示图形用户界面的对应像素的标高偏移的亮度值。可补充或可替代地,对于上文公开的一个或多个示例,在一些示例中,指令进一步导致接收指示标高图的一个或多个像素亮度值的输入;基于接收的亮度值调整标高图像素的亮度值;基于接收的亮度值调整对应图形用户界面像素的标高偏移;并且基于接收的売度值调整标闻图的显不。公开内容的一些示例涉及一种方法,包括:接收针对计算设备的触摸界面的触摸输入;确定与触摸输入相关联的触摸界面的区域;确定第一图形用户界面元素的标高值,其中标高值对应于沿着与图形用户界面显示器垂直的轴的距离;获取第一图形用户界面元素的像素的标闻偏移值;基于该区域、所确定的标闻值和标闻偏移值生成与触摸输入相关联的阴影;并且显示第一图形用户界面元素和阴影。
权利要求
1.一种方法,包括: 确定第一图形用户界面元素的标高值,其中所述标高值对应于沿着与图形用户界面显示器垂直的轴的距离; 获取所述第一图形用户界面元素的像素的标高偏移值; 基于所确定的标高值和所述标高偏移值,生成与第二图形用户界面元素相关联的阴影;并且 显示所述第一图形用户界面元素和所述阴影。
2.如权利要求1所述的方法,其中所述第一图形用户界面元素是操作系统的窗口。
3.如权利要求1所述的方法,其中所述第一图形用户界面元素是图标。
4.如权利要求1所述的方法,进一步包括: 基于所述标高值和所述标高偏移值,确定所述阴影的尺寸;并且 基于所确定的尺寸生成所述阴影。
5.如权利要求1所述的方法,进一步包括: 基于所述标高值和所述标高偏移值,确定所述阴影的不透明度;并且 基于所确定的不透明度生成所述阴影。
6.如权利要求1所述的方法,进一步包括: 基于所述标高值和所述标高偏移值,确定所述阴影的模糊半径;并且 基于所确定的模糊半径 生成所述阴影。
7.一种方法,包括: 在图形用户界面编辑器中,显示图形用户界面; 接收指定所述图形用户界面的像素的像素标高偏移值的用户输入;并且 存储所述像素标高偏移值。
8.如权利要求7所述的方法,进一步包括: 显示所述图形用户界面的标高图,其中所述标高图的每个像素具有表示所述图形用户界面的对应像素的标高偏移的亮度值。
9.如权利要求8所述的方法,进一步包括: 接收指示所述标高图的一个或多个像素的亮度值的输入; 基于接收的亮度值调整标高图像素的所述亮度值; 基于接收的亮度值调整对应的图形用户界面像素的所述标高偏移;并且 基于接收的売度值调整所述标闻图的显不。
10.一种设备,包括: 确定单元,被配置为确定第一图形用户界面元素的标高值,其中所述标高值对应于沿着与图形用户界面显示器垂直的轴的距离; 获取单元,被配置为获取所述第一图形用户界面元素的像素的标高偏移值; 生成单元,被配置为基于所确定的标高值和所述标高偏移值,生成与第二图形用户界面元素相关联的阴影;以及 显示单元,被配置为显示所述第一图形用户界面元素和所述阴影。
11.如权利要求10所述的设备,其中所述第一图形用户界面元素是操作系统的窗口。
12.如权利要求10所述的设备,其中所述第一图形用户界面元素是图标。
13.如权利要求10所述的设备,其中: 所述确定单元进一步被配置为基于所述标高值和所述标高偏移值,确定所述阴影的尺寸;并且 所述生成单元进一步被配置为基于所确定的尺寸生成所述阴影。
14.如权利要求10所述的设备,其中: 所述确定单元进一步被配置为基于所述标高值和所述标高偏移值,确定所述阴影的不透明度;并且 所述生成单元进一步被配置为基于所确定的不透明度生成所述阴影。
15.如权利要求10所述的设备,其中: 所述确定单元进一步被配置为基于所述标高值和所述标高偏移值,确定所述阴影的模糊半径;并且 所述生成单元进一步被配置为基于所确定的模糊半径生成所述阴影。
16.—种设备,包括: 显示单元,被配置为在图形用户界面编辑器中,显示图形用户界面; 接收单元,被配置为接收指定所述图形用户界面的像素的像素标高偏移值的用户输入;以及 存储单元,被配置为存储所述像素标高偏移值。
17.如权利要求16所述的设备,其中: 所述显示单元进一步被配置为显示所述图形用户界面的标高图,其中所述标高图的每个像素具有表示所述图形用户界面的对应像素的标高偏移的亮度值。
18.如权利要求17所述的设备,进一步包括调整单元,并且其中: 所述接收单元进一步被配置为接收指示所述标高图的一个或多个像素的亮度值的输A ; 所述调整单元被配置为基于接收的亮度值调整所述标高图像素的亮度值; 所述调整单元进一步被配置为基于接收的亮度值调整对应的图形用户界面像素的所述标高偏移;并且 所述调整单元进一步被配置为基于接收的亮度值调整所述标高图的显示。
19.一种方法,包括 接收针对计算设备的触摸界面的触摸输入; 确定与所述触摸输入相关联的所述触摸界面的区域; 确定第一图形用户界面元素的标高值,其中所述标高值对应于沿着与图形用户界面显示器垂直的轴的距离; 获取所述第一图形用户界面元素的像素的标高偏移值; 基于所述区域、所确定的标高值和所述标高偏移值,生成与所述触摸输入相关联的阴影;并且 显示所述第一图形用户界面元素和所述阴影。
20.一种电子设备,包括根据权利要求10-18中任一项所述的设备。
全文摘要
描述了动态图形界面阴影。更具体而言,描述了动态窗口阴影和光标阴影。在一些实现方式中,图形用户界面显示对象可被配置有标高偏移信息,来给予显示对象可具有不同高度的像素的三维显示表面。在一些实现方式中,在配置有像素标高偏移信息的显示对象上渲染的阴影可被调整以反映对象的三维表面,从而更接近于真实生活中的阴影。在一些实现方式中,阴影可根据其被投影于其上的显示对象的标高被实时地动态渲染和调整。
文档编号G06F3/0488GK103198516SQ201210473228
公开日2013年7月10日 申请日期2012年9月28日 优先权日2011年11月29日
发明者N·V·金, D·R·克尔 申请人:苹果公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1