> Adds a directional light as a subclass of `LightBase`. I think that this is > the correct hierarchy for it. > > I tried to simulate a directional light by putting a point light far away, > but I got artifacts when the distance was large. Instead, I added an on/off > attenuation flag as the 4th component of the attenuation 4-vector. When it is > 0, a simpler computation is used in the pixel/fragment shader that calculates > the illumination based on the light direction only (making the position > variables meaningless). When it is 1, the point/spot light computation is > used. It's possible that the vertex shader can also be simplified in this > case since it does not need to transform the position vectors, but I left > this optimization avenue for another time. > > I noticed a drop of ~1 fps in the stress test of 5000 meshes. > > I added a system test that verifies the correct color result from a few > directions. I also updated the lighting sample application to include 3 > directional lights and tested them on all the models visually. The lights > seem to behave the way I would expect.
Nir Lisker has updated the pull request incrementally with two additional commits since the last revision: - Fixed indentation - Added comments about floating point comparison ------------- Changes: - all: https://git.openjdk.java.net/jfx/pull/548/files - new: https://git.openjdk.java.net/jfx/pull/548/files/452e5672..7b3709d7 Webrevs: - full: https://webrevs.openjdk.java.net/?repo=jfx&pr=548&range=04 - incr: https://webrevs.openjdk.java.net/?repo=jfx&pr=548&range=03-04 Stats: 6 lines in 6 files changed: 6 ins; 0 del; 0 mod Patch: https://git.openjdk.java.net/jfx/pull/548.diff Fetch: git fetch https://git.openjdk.java.net/jfx pull/548/head:pull/548 PR: https://git.openjdk.java.net/jfx/pull/548