Selective transformation of overlapping image objects
US-9070319-B1 · Jun 30, 2015 · US
US9576393B1 · US · B1
| Field | Value |
|---|---|
| Publication number | US-9576393-B1 |
| Application number | US-201414314975-A |
| Country | US |
| Kind code | B1 |
| Filing date | Jun 25, 2014 |
| Priority date | Jun 18, 2014 |
| Publication date | Feb 21, 2017 |
| Grant date | Feb 21, 2017 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
Soft shadows can be rendered using a relatively expensive blur process by leveraging the structure provided for various user interfaces. The elements of a user interface may be arranged according to a hierarchical tree or scene graph. Certain related elements may be grouped into a shadow group that can cast and/or receive a shadow. When the root of the shadow group is designated, the other child elements of the group can be added automatically, up to the boundary of another shadow group. A single texture for a shadow group can be determined, blurred, and projected onto a corresponding receiving group. If the shadow needs to be regenerated due to motion, for example, only a single texture needs to be regenerated for the group instead of a shadow for each element. A throttling value may be set to further limit the number of shadows that can be regenerated per frame.
Opening claim text (preview).
What is claimed is: 1. A computing device, comprising: one or more processors; a display screen; and memory including instructions that, when executed by the one or more processors, cause the computing device to: determine a plurality of graphical elements of a user interface to be displayed on the display screen, each of the graphical elements being associated with a node of a hierarchical scene graph; group subsets of related graphical elements into a set of shadow groups, each of the graphical elements being directly related through the hierarchical scene graph to at least one other graphical element; determine a first shadow group, of the set of shadow groups, that casts a shadow on a second shadow group, of the set of shadow groups, the shadow cast based on a location of a virtual light source and a spatial relation of the first shadow group to the second shadow group; determine a silhouette for the first shadow group to be applied as the shadow to the second shadow group, the silhouette determined at least in part by applying a blurring process to a single texture for the first shadow group; project at least a portion of the silhouette onto at least a portion of the second shadow group in order to generate the shadow on the second shadow group; determine an actionable change associated with at least one of the first shadow group or the second shadow group; cause identifying information for the shadow to be added to a shadow regeneration queue, the shadow regeneration queue associated with a throttle value limiting a maximum number of shadows able to be regenerated per frame for the user interface; and regenerate the shadow in response to the identifying information for the shadow being selected from the shadow regeneration queue, regenerating the shadow comprising at least in part determining a new texture, for the first shadow group, to be blurred and projected as a regenerated silhouette onto the second shadow group. 2. The computing device of claim 1 , wherein determining the actionable change includes detecting a change associated with the user interface that satisfies a determined change criterion, the change including at least one of a change in orientation of the computing device, a change in relative orientation of a user to the computing device, or an input to the user interface. 3. The computing device of claim 1 , wherein the instructions when executed further cause the computing device to: determine that a second shadow cast by the second shadow group onto a third shadow group is associated with an actionable change that does not require regeneration; and update the second shadow by translating a projection of an already-generated second silhouette for the second shadow group with respect to the third shadow group. 4. A computer-implemented method, comprising: grouping a first subset of user interface (UI) elements into a first shadow group and a second subset of UI elements into a second shadow group, each of the first subset of UI elements and the second subset of UI elements being associated with a node of a hierarchical scene graph, the first subset of UI elements being directly related through the hierarchical scene graph; determining a single texture for the first subset of UI elements; blurring the single texture to create a silhouette corresponding to the first subset of UI elements; rendering a shadow on the second subset of UI elements, a shape of the shadow being based on at least a portion of the silhouette, the shadow rendered at least in part by adjusting a pixel value of pixels of the second subset of UI elements corresponding to a location of the shadow; determining an actionable change associated with the shadow; adding identifying information for the shadow to a shadow regeneration queue, the shadow regeneration queue associated with a throttle value limiting a maximum number of shadows to be re-rendered per frame; and causing the shadow to be re-rendered based at least in part on the identifying information being selected from the shadow regeneration queue. 5. The computer-implemented method of claim 4 , further comprising: analyzing an outline of shapes of the UI elements in the first shadow group to determine an overall shape of the single texture, the single texture having a solid grayscale color. 6. The computer-implemented method of claim 4 , further comprising: determining that the first subset of UI elements is capable of casting a shadow on the second subset of UI elements using an intersection test, the intersection test based at least in part upon a relationship of the UI elements of the first shadow group to the UI elements of the second shadow group according to the hierarchical scene graph. 7. The computer-implemented method of claim 4 , further comprising: selecting a width for the blurring, the blurring performed using at least a two-pass Gaussian blur. 8. The computer-implemented method of claim 4 , further comprising: determining a location of a virtual light source, wherein rendering the shadow includes determining a frustum for the UI elements of the first subset based at least in part upon the location of the virtual light source. 9. The computer-implemented method of claim 4 , further comprising: detecting a change relating to the user interface; and determining the change to be the actionable change when the change meets or exceeds at least one change threshold, the at least one change threshold relating to at least one of an amount of movement or an amount of change in shape of at least one of the first shadow group or the second shadow group. 10. The computer-implemented method of claim 9 , further comprising: translating the shadow across the UI elements of the second subset in response to the actionable change corresponding to the amount of movement. 11. The computer-implemented method of claim 9 , further comprising: re-rendering the shadow in response to the actionable change corresponding to the amount of change in shape. 12. The computer-implemented method of claim 11 , wherein re-rendering the shadow further comprises: determining an updated texture for the UI elements in the first subset of UI elements; blurring the updated texture to create an updated silhouette corresponding to the UI elements in the first subset; and rendering an updated shadow on the UI elements of the second subset, a shape of the shadow being based on at least a portion of the updated silhouette. 13. The computer-implemented method of claim 9 , wherein the change is detected based at least in part upon a motion detected by at least one device sensor. 14. The computer-implemented method of claim 9 , further comprising: determining a type of the second shadow group, the type being at least one of a two-dimensional group or a three-dimensional group; and determining a type of shadow to be rendered based at least in part upon the type of the second shadow group. 15. A computing device, comprising: at least one processor; and memory including instructions that, when executed by the at least one processor, cause the computing device to: group a first subset of user interface (UI) elements into a first shadow group and a second subset of UI elements into a second shadow group, each of the UI elements in the first subset of UI elements and each of the UI elements in the second subset of UI elements being associated with a respective node of a hierarchical scene graph; determine a single texture for the first subset of UI elements; blur the single texture to create a silhouette corresponding to the first subset of UI elements; re
the I/O peripheral being a single or a set of motion sensors for pointer control or gesture input obtained by sensing movements of the portable computer · CPC title
Manipulating three-dimensional [3D] models or images for computer graphics · CPC title
Shadow generation · CPC title
Tree description, e.g. octree, quadtree · CPC title
Interaction with a metaphor-based environment or interaction object displayed as three-dimensional [3D], e.g. changing the user viewpoint with respect to the environment or object · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.