Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8088013

Bleeding Edges - Background Bleeding on Shared Edges for 3D Multi-Polygon Configurations

    Details

    • Subcomponent:
    • Understanding:
      Cause Known

      Description

      For a set of 3D Polygons configured through attached sets of transformations such that they have shared edges, as in the case of a regular polyhedron, the background color of either the Scene, Stage or Screen, which ever is topmost opaque, bleeds or appears as to be stitching through the shared edges. This appears to be an artifact of the applied transformations, Translate & Rotate, as this has not occurred for 2D polygons with distinct point sets excepting a common pair of consecutive points, i. e. a shared edge.

      This is best illustrated with a test case app which I can provide and is as follows:

      The app consists of 3 buttons and 2 groups of polygons:

      Group 1:
      This is a pair of 2D triangles (solid fills, 1 black & 1 yellow) which have 2 points in common, i. e. a shared edge, and no transforms applied.
      This is visible in the top left of the scene, and does not exhibit the bleeding artifact and is shown for this purpose.

      Group 2:
      This is a set of 20 3D polygons (equilateral triangles) configured via applied transformations to each polygon, to form a 3D icosahedron. This 'polyhedron group' has 2 axes of rotation X and Y both with a pivot at the polyhedrons centre. Each polygon can be set with same base color or a distinct color. Each fill is a LinearGradient, and although this app doesn't use solid fills for the polyhedron, if it did the bleeding would occur, but less markedly.
      This is visible in the center of the scene, and exhibits the bleeding artifact to varying degrees on all edges.

      All polygons for both groups have null strokes and zero stroke widths.

      The buttons are as follows:
      Start/Stop Rotation: starts and stops polyhedron rotations about both X and Y axes.
      Multi Color on/off: switches between a single or multiple colors for the polyhedron faces.
      Switch Background: switches the Scene fill initially from TRANSPARENT to RED, and from RED to WHITE thereafter & vice versa.

      Steps to reproduce the bug:
      1. Launch the app and observe the bleeding effect, this should be quite obvious.
      2. Press the 'Switch Background' button more than once, observe & confirm the effect for the different background colors & background source.
      3. Optionally press the 'Start/Stop Rotation' and/or 'Multi Color on/off' to demonstrate the erroneous behavior for multiple circumstances.

      The app jars:
      There are 2 executable jars to be provided BleedingEdgesEA.jar (8u20 compiled) and BleedingEdges.jar (7u65 compiled), both also contain the identical source files. The jdk7 jar exhibits the correct behavior without artifacts under jdk7 and both jars exhibit erroneous behavior under jdk8
      versions even with the fix applied for the resolved RT-38005 bug.

      The source packages:
      bleedingedges, This has the main class BleedingEdge.java, tezzerfx.polyhedra , tezzerfx.vecmath.utils and the javax.vecmath package.

      Since these are all necessary components, placing the main class code in the comments is pointless without at least the non javax code and this is impractical, thus to whomever is assigned to handle this issue, I will gladly email the aforementioned jars.

        Attachments

        1. BleedingEdges.jar
          448 kB
        2. OpenPiscesAA.patch
          3 kB
        3. Polyhedron-fx2.png
          Polyhedron-fx2.png
          136 kB
        4. Polyhedron-fx8.png
          Polyhedron-fx8.png
          138 kB

          Issue Links

            Activity

              People

              • Assignee:
                Unassigned
                Reporter:
                ttaylorjfx Terry Taylor (Inactive)
              • Votes:
                1 Vote for this issue
                Watchers:
                8 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Imported: