JDK-8091509 : Need to understand and document clip behavior
  • Type: Enhancement
  • Component: javafx
  • Sub-Component: graphics
  • Affected Version: 8
  • Priority: P3
  • Status: Open
  • Resolution: Unresolved
  • Submitted: 2013-10-14
  • Updated: 2018-09-05
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
Other
tbdUnresolved
Related Reports
Blocks :  
Description
Defining 3D clip behavior (RT-28510) has been deferred to Van Ness, so I need to rework picking to comply to the current rendering behavior so that it picks what is visible (RT-33297). I tried that but unfortunately I don't understand the current semantics. So far I figured:

*2D clip on 2D node*
- works normally with arbitrary 3D transform on node and arbitrary 2D transform on clip
- nothing is rendered if the clip is translated along Z axis
- don't understand the behavior when the clip is rotated in 3D. Please run the RotatedClip test and explain the behavior

*2D clip on 3D node*
- don't understand, looks like the entire node is rendered if there is any intersection with the clip (don't know on what basis). Please run the ClippedBox test with either of the two commented lines uncommented and explain the behavior. Also note RT-33549.

*3D clip*
- seems to be completely ignored

Comments
I just closed RT-33297 with the partial fix that makes picking ignore 3D clipping. Still, the issues mentioned here should be sorted out and addressed.
25-11-2013

I just tried to apply a clip on a group with 3D-transformed children and I can't see the mentioned limitation. I tried rectangles with both 3D rotation and Z translation and never saw depth-buffer turned off when setting a clip on their parent group. Moreover, it seems that depth-buffering doesn't work at all with parallel camera. It starts to look like too big task to align picking with all this unexpected behavior of rendering.
18-11-2013

No, I think both of these work fine (I just think we'll need to "implement this limitation" to picking). Actually, I'm talking about 3) 3D transformed 2D clip on a 2D node without 3D transform Please see the RotatedClip sample and explain the behavior.
15-11-2013

1) Is it a 2D clip on 2D Node without 3D transform? If yes, we need to file a JIRA and fix it. 2) Is it a 2D clip on a 3D transformed 2D Node? If yes, we have stated limitation in the javadoc of Node: There is a known limitation of mixing Clip with a 3D Transform. Clipping is essentially a 2D image operation. The result of a Clip set on a Group node with 3D transformed children will cause its children to be rendered in order without Z-buffering applied between those children. We recommend pushing the clipping operation down to the leaf node only.
11-11-2013

I confirm this is how it works right now. There is still the issue with 2D clip on 2D node.
11-11-2013

Any form of clip applies to a 3d shape is completely ignored in FX 8.
08-11-2013

Promoting to major to reflect that another major issue is dependent on this and also the fact that it needs to be resolved for Lombard.
14-10-2013