-
Enhancement
-
Resolution: Unresolved
-
P4
-
fx2.0
A new mechanism was added in 1.3.2 to supply an output clip for the effects so that they could reduce the amount of work that they perform. Unfortunately the Displacement effect does not yet calculate the appropriate input bounds for the indicated output clip and so it forces its input to render its full size even if only part of it will appear on the screen.
This problem is mitigated by the fact that the DisplacementMap effect performs its work in user space so the amount of memory required will not be affected by large scale factors on the transform of the node being reflected. There may still be problems with really large inputs that have not been clipped elsewhere, though.
Note that calculating the required input bounds would involving scanning the displacement map for the entire output region and calculating the bounds of data from the input that it can access which may be more costly than it is worth in most cases given the mitigating fact above (that it works in user space).
(Note that, in addition, because of RT-9223 the DisplacementMap also does not clip its output to the indicated bounds either and both combine to cause it to behave poorly under large scale factors.)
This problem is mitigated by the fact that the DisplacementMap effect performs its work in user space so the amount of memory required will not be affected by large scale factors on the transform of the node being reflected. There may still be problems with really large inputs that have not been clipped elsewhere, though.
Note that calculating the required input bounds would involving scanning the displacement map for the entire output region and calculating the bounds of data from the input that it can access which may be more costly than it is worth in most cases given the mitigating fact above (that it works in user space).
(Note that, in addition, because of RT-9223 the DisplacementMap also does not clip its output to the indicated bounds either and both combine to cause it to behave poorly under large scale factors.)
- blocks
-
JDK-8090539 DisplacementMap operates only on untransformed input images
-
- Open
-
- duplicates
-
JDK-8110300 DisplacementMap effect does not optimize clipped results
-
- Closed
-
- relates to
-
JDK-8106719 NullPointerException when filter effect needs an image that is too large
-
- Closed
-