History log of /frameworks/base/libs/hwui/ShadowTessellator.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
8def74de33b197c0c5ec8774576b1d71c7ec4f1b 02-Oct-2014 ztenghui <ztenghui@google.com> + correcting shadow visual appearance (b/17610926)

+ adjusting spot and ambient shadow opacity constants to achieve desired appearance
+ reducing ambient scale ratio back to 1.0 to address over-lightening at higher elevations
+ partially revert ag/546290

Change-Id: I9d7f664f73a7b9b83df73b739103c97054bd4f6e
/frameworks/base/libs/hwui/ShadowTessellator.cpp
f7d76dffd86398a787f0d8bd092a571c019daf04 13-Sep-2014 ztenghui <ztenghui@google.com> Update the shadow strength

b/17486691

Change-Id: I8e8f0b64e757772c18f038f6b329ef91a4e155a5
/frameworks/base/libs/hwui/ShadowTessellator.cpp
512e643ce83b1d48ad9630a3622276f795cf4fb2 10-Sep-2014 ztenghui <ztenghui@google.com> Re-triangulate the spot shadow.

Fix the valid umbra detection.

This looks better b/c every vertex will have one ray shooting at it, such that
we don't miss the corner.

This performs better too, due to the polygon intersection is removed and less ray
intersection. 2x performance for rect and circle for spot shadow in test app.

b/17288227
b/15598793
b/16712006

Change-Id: I4a5ee397b9e192e93c8e35e6260b499e3e38a6f4
/frameworks/base/libs/hwui/ShadowTessellator.cpp
c50a03d78aaedd0003377e98710e7038bda330e9 21-Aug-2014 ztenghui <ztenghui@google.com> Improve the spot shadow computation.

Get rid of compuation of the intersection for penumbra and convex hull for umbra.
Use simple circle / normal to compute the penumbra and simple intersection for umbra.

The new way could be 2x to 4x faster from rectangle to round shape.
And this part is roughly half of the shadow computation, or 2/3 of spot shadow
computation.

This improve the spot shadow spikeness too.

b/16712006
b/14976551

Change-Id: I02911784868731369efa73f76fc915bc08248600
/frameworks/base/libs/hwui/ShadowTessellator.cpp
1aa5d2d7068147ff781cfe911a93f01593a68c79 24-Jul-2014 John Reck <jreck@google.com> Fix ALL compile warnings

All warnings/errors fixed for GCC & Clang

Change-Id: I2ece3a136a5ae97a9acc3069537ed986238b5fd3
/frameworks/base/libs/hwui/ShadowTessellator.cpp
83f7ee8d12df1e8f031a0d23a00084f4fcd0d2f3 10-Jul-2014 ztenghui <ztenghui@google.com> Remove the unnessary log

We still need to investigate the underlying problem and fix it.

bug:16015708

Change-Id: If38b550d5af990d5aaa6633ee129a61e927d66c1
/frameworks/base/libs/hwui/ShadowTessellator.cpp
05f3d6e5111fd08df5cd9aae2c3d28399dc0e7f5 03-Jun-2014 Chris Craik <ccraik@google.com> Tessellate on worker threads

Tessellate and cache (where possible) shadow and round rect
tessellation tasks.

Change-Id: I2cfda8e11d83d51ea74af871235cf26e8f831d40
/frameworks/base/libs/hwui/ShadowTessellator.cpp
797b95b26bbb7557678af78b9a2a61830158920f 21-May-2014 Chris Craik <ccraik@google.com> Define light position (using new lighting spec) in Java

Also updates the relative shadow strengths.

Change-Id: I6cac7275d38df98aea9f0dda463cd7207102986a
/frameworks/base/libs/hwui/ShadowTessellator.cpp
f11310f395a135ac7ef204ced5b3d3facf491422 14-May-2014 ztenghui <ztenghui@google.com> Check the array before accessing it

TODO: Figure out why the path is generating empty polygon.

bug: 14615368

Change-Id: If116e34388b7c6a71bf5ddd36e0c9716d7450732
/frameworks/base/libs/hwui/ShadowTessellator.cpp
64ab917e5eb3269c72c795781a512d4ee7d9d7a4 01-May-2014 Chris Craik <ccraik@google.com> Merge "Add more shadow control knobs"
f5be3ca5cc5b3a10747b577f60059a99862bb9a8 01-May-2014 Chris Craik <ccraik@google.com> Add more shadow control knobs

Change-Id: I1ff500bf429029a97b681ced9df652f4ee9f1332
/frameworks/base/libs/hwui/ShadowTessellator.cpp
2e023f3827dfc0dfc1ed7c3dd54d02b4a993f0b4 29-Apr-2014 ztenghui <ztenghui@google.com> Make sure the theta is correctly represented and incoming polygon is CW for shadow.

Now the theta = 0 should be on +x axis.
And cos(theta) should correctly represent x value.
Without this fix, the poly theta (from atan2) can be wrongly rotated 90 degrees.

Also, make sure the incoming polygon is CW for the shadow system.
This fix visual artifacts in recent regression for spot shadows.

bug:13553955

Change-Id: I9bbf54db094e7f133326da4dae4610962da849c1
/frameworks/base/libs/hwui/ShadowTessellator.cpp
af6f7ed8dd4288a41d0a07a1f0f0be7d6d035b33 19-Mar-2014 ztenghui <ztenghui@google.com> Early rejection on shadows which are outside of the clip bound.

All the computations are estimated using bounding box.
TODO: Spot shadow could have more accurate but also more expensive methods, we need
more experiments to decide.

Change-Id: I9c10c419576cee55daf0f9f278b0db78cb847447
/frameworks/base/libs/hwui/ShadowTessellator.cpp
50ecf849cb7ccc3482517b74d2214b347927791e 12-Mar-2014 ztenghui <ztenghui@google.com> Create one hole inside the umbra area to avoid overdraw.

bug:13439450

Change-Id: I859575196bd5a3029f447883025a6ec3a1f1face
/frameworks/base/libs/hwui/ShadowTessellator.cpp
726118b35240957710d4d85fb5747e2ba8b934f7 08-Mar-2014 Chris Craik <ccraik@google.com> Improve shadow tessellation performance

- Tune and simplify shadow parameters
- Remove additional inner rings
- Improve polygon ray casting algorithm

Change-Id: If0f28b2d66ae0480b675942bb65e8fcd2864425d
/frameworks/base/libs/hwui/ShadowTessellator.cpp
87f9df880e4a5bfba65d2ed413b3ead649595129 07-Mar-2014 Chris Craik <ccraik@google.com> Update tessellation tracing

Change-Id: I6c73f2467817412d9936dde217df9938a6884003
/frameworks/base/libs/hwui/ShadowTessellator.cpp
63d41abb40b3ce40d8b9bccb1cf186e8158a3687 14-Feb-2014 ztenghui <ztenghui@google.com> Use pre-computed index to draw the shadow.

Also draw the umbra part as triangle fans instead of zig zag fashion.

b/12840179

Change-Id: Iaa5d15e77351acdd71f076bd8f9bb2d4d2b92faf
/frameworks/base/libs/hwui/ShadowTessellator.cpp
15a07a21eb33e8ca1c7444944fe0541a53380c0c 26-Jan-2014 Chris Craik <ccraik@google.com> Use path outlines to define shadow shapes

Fixes the simplifying assumption that shadow casters were always
rectangular.

Java side APIs + plumbing to pass down correct shapes still need to be added.

Change-Id: Ic4fee90af15679951a44bb5cc6ae454b98c4c194
/frameworks/base/libs/hwui/ShadowTessellator.cpp
cc3c25622c731d14a6f01bce684330eccba7db5a 17-Jan-2014 ztenghui <ztenghui@google.com> Property support for light positioning.

Tune up the light size to make it look better.

Change-Id: I139a05f3dd53dacbe55759b91188f0e1cc2c7f80
/frameworks/base/libs/hwui/ShadowTessellator.cpp
8191effc83b3ec4cfc8647a6eb16ee641fa85a2f 17-Jan-2014 Chris Craik <ccraik@google.com> Merge "Map shadow light position globally"
7b3dfa4d13ca79404f8b0be6e47002cf8daff0a2 17-Jan-2014 Chris Craik <ccraik@google.com> Transform shadow casters correctly in 3d

Change-Id: I11067c5aa8c749089b6ee163ddafa91865cc0d9f
/frameworks/base/libs/hwui/ShadowTessellator.cpp
3197cded4e265bc99dc82d695bbb7163fe134ed4 16-Jan-2014 Chris Craik <ccraik@google.com> Map shadow light position globally

Change-Id: Ic3201cecdf5d2a1dd628e7e40aee912ef516d3b2
/frameworks/base/libs/hwui/ShadowTessellator.cpp
7b4516e7ea552ad08d6e7277d311ef11bd8f12e8 07-Jan-2014 ztenghui <ztenghui@google.com> Calculate and show the shadow from a spot light.

Change-Id: Ia558852e8cde5d33866b22875eb501e4c6858819
/frameworks/base/libs/hwui/ShadowTessellator.cpp
55bfb4e728fe1db619af5d2c287f4abe711b3343 03-Dec-2013 ztenghui <ztenghui@google.com> Calculate and show Ambient shadow.

Basically we compute the shadow as a strip of triangles, whose alpha value
is the strength of the shadow.
We use the normal to extend the geometry.
And we use static function and try to avoid new/malloc in the computation.

Change-Id: I382286f1cad351bd5ff983f76f446c075819dcaf
/frameworks/base/libs/hwui/ShadowTessellator.cpp