Circular Light Source Shadow Rendering on Mobile GUIs
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current graphical user interfaces (GUIs) on computing devices struggle to render realistic shadows efficiently, especially on mobile devices, due to the computational expense of existing methods like shadow mapping and shadow volumes, which are not optimized for simple geometries commonly found in GUI elements.
Innovation Solution
A method is provided to determine and display shadows by simulating a circular light source and ambient light sources, using techniques such as projecting rays from a light source's center point to calculate projection vertices, outlining polygons, and determining penumbra and umbra areas, which are then tessellated for efficient rendering, reducing computational load.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Illumination intensity
If shadow mapping or shadow volumes are used to render realistic shadows, then shadow realism is improved, but computational expense increases
Solution Approach 1:
The shadow is segmented into two distinct regions: umbra (complete shadow) and penumbra (partial shadow). This segmentation allows the rendering system to apply different computational approaches to each region, reducing overall computational expense while maintaining visual realism. The occluding polygon is processed to identify vertices that contribute to each shadow type.
Solution Approach 2:
Different rendering quality is applied to different parts of the shadow. The umbra region uses simplified geometric calculations based on light source center projections, while the penumbra region uses tangent-based calculations from light source edges. This local differentiation optimizes computational resources by applying higher precision only where visually necessary.
2Measurement precision
If complex shadow rendering algorithms are used, then shadow accuracy is improved, but device performance is overwhelmed
Solution Approach 1:
The shadow rendering process is segmented into distinct computational phases: determining outline polygons from light center projections, calculating projection circles at each vertex, computing tangents for penumbra boundaries, and generating umbra regions. This segmentation enables efficient processing on mobile devices by breaking down complex calculations into manageable steps.
Solution Approach 2:
The method uses geometric projections and tangent calculations that create accurate shadow representations through mathematical copying of light source geometry onto the receiver surface, rather than using computationally intensive ray tracing or pixel-based shadow mapping techniques.
3Productivity
If simple shadow rendering is used, then device performance is maintained, but shadow realism is reduced
Solution Approach 1:
The rendering system applies enhanced visual quality locally to shadow regions that benefit most from it. The penumbra is rendered with tangent-based precision to show gradual light transitions, while the umbra uses efficient geometric projections. This selective application of quality maintains device performance while improving shadow realism where it matters most.
Solution Approach 2:
The method changes geometric parameters (projection circles, tangents, polygon vertices) to control shadow appearance dynamically. By adjusting these parameters based on light source position, occluder geometry, and receiver surface orientation, the system achieves realistic shadows with efficient computations suitable for mobile devices.
Data Source
AI summary
Methods and apparatus are provided for displaying shadows of circular light sources. A computing device can determine a light source and an occluding polygon that is between the light source and a receiver surface, where the occluding polygon includes vertices connected by edges. The computing device can determine a shadow of the occluding polygon on the receiver surface by at least: determining, for a particular vertex, a projection vertex on the receiver surface by projecting a ray from the center point through the particular vertex; determining an outline polygon based on the projection vertex; determining a projection circle around the projection vertex; determining a penumbra of the shadow based on exterior tangents outside of the outline polygon; and determining an umbra of the shadow based on interior tangents inside the outline polygon. The computing device can display at least part of the shadow.


