RFR: 8260013: Snapshot does not work for nodes in a subscene [v2]

Lukasz Kostyra lkostyra at openjdk.org
Thu Jan 18 15:33:49 UTC 2024


> Originally this issue showed the problem of Node being incorrectly rendered (clipped) when snapshotting, compared to a snapshot of the whole Scene. Later on there was another problem added - lights not being taken into account if they are added to a SubScene.
> 
> As it later turned out, the original problem from this bug report is a problem with ParallelCamera incorrectly estimating near/far clipping planes, which just happened to reveal itself while snapshotting a Node. During testing I found out you can make the Node clip regardless of snapshot mechanism. Clipping issue was moved to a separate bug report and this PR only fixes the inconsistency in lights being gathered for a snapshot.
> 
> `Scene.doSnapshot()` was expanded to also check if SubScene provided to it is non-null and to fetch lights assigned to it. Scenario was tested with added SnapshotLightsTest.
> 
> Rest of the tests were checked and don't produce any noticeable regressions.

Lukasz Kostyra has updated the pull request incrementally with one additional commit since the last revision:

  doSnapshot: Replace light accumulation code
  
  Uses suggested simpler implementation using Java's Streams.
  
  Needed an additional check in NGShape3D, otherwise IndexOutOfBounds was
  thrown

-------------

Changes:
  - all: https://git.openjdk.org/jfx/pull/1332/files
  - new: https://git.openjdk.org/jfx/pull/1332/files/2a2da5ec..49782ee8

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jfx&pr=1332&range=01
 - incr: https://webrevs.openjdk.org/?repo=jfx&pr=1332&range=00-01

  Stats: 44 lines in 2 files changed: 3 ins; 37 del; 4 mod
  Patch: https://git.openjdk.org/jfx/pull/1332.diff
  Fetch: git fetch https://git.openjdk.org/jfx.git pull/1332/head:pull/1332

PR: https://git.openjdk.org/jfx/pull/1332


More information about the openjfx-dev mailing list