Skip to main content
DrPepperJo
Participant
November 25, 2021
Question

Force re-rendering of smart filters

  • November 25, 2021
  • 2 replies
  • 945 views

When working with smart objects and filters, Photoshop renders the layer data produced by the filter once and then uses the result for further processing. However, for some geometric filters (e.g. Polar Coordinates or Perspective Warp), the results of the filter pass would be different, given a different x/y displacement or canvas size. Sometimes results are not rendered at all outside the current canvas, so when moving the layer data, artefacts or empty areas might come into view.

Is there some prefered way (e.g. a shortcut or a script command) to force re-render of all or selected smart filters in a smart object layer to fill those areas with properly filtered data?

 

This topic has been closed for replies.

2 replies

Legend
November 26, 2021

Can you give a sequence of actions and a screenshot explaining your problem using the example of PolarCoordinates? I cannot reproduce the bug.

 

In order to recalculate the filter, it is enough to turn it off and on.

 

Code for one filter with index 1.

var d = new ActionDescriptor();
var r = new ActionReference();
r.putIndex(stringIDToTypeID("filterFX"), 1);
r.putEnumerated(stringIDToTypeID("layer"), stringIDToTypeID("ordinal"), stringIDToTypeID("targetEnum"));
d.putReference(stringIDToTypeID("null"), r);
executeAction(stringIDToTypeID("hide"), d, DialogModes.NO);
executeAction(stringIDToTypeID("show"), d, DialogModes.NO);

 

DrPepperJo
Participant
November 26, 2021

I did not want to imply, that there was a bug in PolarCoordinates, I think this is expected behavior. The source of the problem might have even been with the rendering of another geometric smart filter in the processing chain. I've attached a visualization of the problem with the Perspective Warp filter. It shows

1) The original application of the warp.

2) Changing the x/y translation and thereby moving the layer data towards the top left corner. Note the  "empty", "unrendered" area on the bottom right.

3) Result after turing the filter off and on again. This solution seems to work for a single filter only. Turning the "Smart Filters" entry off and on again didn't have an effect. 
I was hoping for some kind of  built in "re-render" or "refresh" command, but solving it with a script using the "off/on" approach works as well.

Legend
November 26, 2021

There is such a bug / feature in Photoshop (I don’t know how in the latest version, I can’t check it). If you change the resolution of a file without resampling (as before, some tried to zoom the document in this way), then in this case all smart filters were recalculated. This greatly slowed down the process.

You can change the resolution (without rasampling) to some, and then return it back. All smart filters will be updated (twice).

 

I think so. Check ....

c.pfaffenbichler
Community Expert
Community Expert
November 26, 2021

cmd-T, enter would seem like an option, doubleclicking any Smart Filter and hitting OK another. 

DrPepperJo
Participant
November 26, 2021

Thank you for the answer. I should have been more clear. What you suggest, is exactly what I'm doing right now. However, I would like to to just re-render all (selected) layers without revisiting any input or preview windows.