Efficient computation of shadows for circular light sources
First Claim
1. A method, comprising:
- determining a light source configured to emit light using a computing device, wherein the light source comprises a center point;
determining an occluding polygon using the computing device, wherein the occluding polygon is between the light source and a receiver surface, and wherein the occluding polygon comprises a plurality of occluding-polygon vertices connected by occluding-polygon edges;
determining a shadow of the occluding polygon on the receiver surface using the computing device by at least;
for a particular occluding-polygon vertex in the plurality of occluding-polygon vertices, determining a projection vertex on the receiver surface based on a ray projected from the center point through the particular occluding-polygon vertex;
determining an outline polygon based on the projection vertex;
determining a projection circle around the projection vertex;
determining a penumbra of the shadow of the occluding polygon based on one or more exterior tangents to the projection circle that are outside of the outline polygon; and
determining an umbra of the shadow of the occluding polygon based on one or more interior tangents to the projection circle that are inside of the outline polygon; and
providing at least part of the shadow of the occluding polygon for display using the computing device.
2 Assignments
0 Petitions
Accused Products
Abstract
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.
15 Citations
20 Claims
-
1. A method, comprising:
-
determining a light source configured to emit light using a computing device, wherein the light source comprises a center point; determining an occluding polygon using the computing device, wherein the occluding polygon is between the light source and a receiver surface, and wherein the occluding polygon comprises a plurality of occluding-polygon vertices connected by occluding-polygon edges; determining a shadow of the occluding polygon on the receiver surface using the computing device by at least; for a particular occluding-polygon vertex in the plurality of occluding-polygon vertices, determining a projection vertex on the receiver surface based on a ray projected from the center point through the particular occluding-polygon vertex; determining an outline polygon based on the projection vertex; determining a projection circle around the projection vertex; determining a penumbra of the shadow of the occluding polygon based on one or more exterior tangents to the projection circle that are outside of the outline polygon; and determining an umbra of the shadow of the occluding polygon based on one or more interior tangents to the projection circle that are inside of the outline polygon; and providing at least part of the shadow of the occluding polygon for display using the computing device. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A computing device, comprising:
-
one or more processors; and data storage configured to store at least executable instructions, wherein the executable instructions, when executed by the one or more processors, cause the computing device to perform functions comprising; determining a light source configured to emit light, wherein the light source comprises a center point; determining an occluding polygon between the light source and a receiver surface, wherein the occluding polygon comprises a plurality of occluding-polygon vertices connected by occluding-polygon edges; determining a shadow of the occluding polygon on the receiver surface by at least; for a particular occluding-polygon vertex in the plurality of occluding-polygon vertices, determining a projection vertex on the receiver surface based on a ray projected from the center point through the particular occluding-polygon vertex; determining an outline polygon based on the projection vertex; determining a projection circle around the projection vertex; determining a penumbra of the shadow of the occluding polygon based on one or more exterior tangents to the projection circle that are outside of the outline polygon; and determining an umbra of the shadow of the occluding polygon based on one or more interior tangents to the projection circle that are inside of the outline polygon; and providing at least part of the shadow of the occluding polygon for display. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. An article of manufacture including a tangible computer-readable storage medium having instructions stored thereon that, in response to execution by one or more processors of a computing device, cause the computing device to perform functions comprising:
-
determining a light source configured to emit light, wherein the light source comprises a center point; determining an occluding polygon between the light source and a receiver surface, wherein the occluding polygon comprises a plurality of occluding-polygon vertices connected by occluding-polygon edges; determining a shadow of the occluding polygon on the receiver surface by at least; for each occluding-polygon vertex in the plurality of occluding-polygon vertices, determining a projection vertex on the receiver surface based on a ray projected from the center point through the occluding-polygon vertex; determining an outline polygon based on the projection vertex; determining a projection circle on the receiver surface around the projection vertex; determining a penumbra of the shadow of the occluding polygon based on one or more exterior tangents to the projection circle that are outside of the outline polygon; and determining an umbra of the shadow of the occluding polygon based on one or more interior tangents to the projection circle that are inside of the outline polygon; and providing at least part of the shadow of the occluding polygon for display.
-
Specification