On Thu, 7 Sep 2023 10:17:28 GMT, Jayathirth D V <[email protected]> wrote:

> Out of 62 3D tests, 26 tests fail because of minute color differences in edge 
> pixels.
> These tests are used to verify 3D rendering with different parameters like 
> translation, rotation.
> 
> So adding little color tolerance will not change the test behavior and allows 
> us to use these tests to automatically verify any regression introduced in 3D 
> rendering.
> 
> Added 5% color tolerance and with this change 23 of these tests pass.
> 
> Some sub-tests under below 3 tests continue to fail because of other reasons:
> [test/scenegraph/fx3d/camera/fixedeye/PerspectiveCameraFixedEyeIsolateTest.java](file:///Users/jdv/dev/workspace/jfx/jfx-tests/functional/3DTests/build/test.workdir/test/scenegraph/fx3d/camera/fixedeye/PerspectiveCameraFixedEyeIsolateTest.jtr)
> [test/scenegraph/fx3d/camera/parallel/ParallelCameraIsolateTest.java](file:///Users/jdv/dev/workspace/jfx/jfx-tests/functional/3DTests/build/test.workdir/test/scenegraph/fx3d/camera/parallel/ParallelCameraIsolateTest.jtr)
> [test/scenegraph/fx3d/camera/perspective/PerspectiveCameraIsolateTest.java](file:///Users/jdv/dev/workspace/jfx/jfx-tests/functional/3DTests/build/test.workdir/test/scenegraph/fx3d/camera/perspective/PerspectiveCameraIsolateTest.jtr)
> 
> Also i see that some of the camera tests just draw white images, this also 
> needs to be verified.
> With this change 41 out of 62 3D tests will run properly.

A static constant can be added to `test.scenegraph.fx3d.utils.FX3DAbstractApp`
public static final float COLOR_TOLERANCE = 0.05f;

This can easily be accessed in test classes without FX3DAbstractApp instance as 
- 
`Root.ROOT.getEnvironment().setProperty(ImageComparator.class,
            new GlassPixelImageComparator(new 
PixelEqualityRasterComparator(FX3DAbstractApp.COLOR_TOLERANCE)));`

This will allow us to tweak the tolerance value at a single place in future and 
not in all the 26 files.

This change is pretty safe as and just a sanity check would be needed.
If a test does not use FX3DAbstractApp, then you can keep the hard-coded 
constant.

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

PR Comment: https://git.openjdk.org/jfx-tests/pull/5#issuecomment-1711576867

Reply via email to